summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/CMakeLists.txt2
-rwxr-xr-xtest/RegressTests.py2
-rw-r--r--test/baseline/cmd-convert.test2
-rw-r--r--test/baseline/opt-aux-date.test2
-rw-r--r--test/regress/0DDDEBC0.dat3
-rw-r--r--test/regress/0DDDEBC0.test9
-rw-r--r--test/regress/68917252.dat2
-rw-r--r--test/regress/68917252.test5
-rw-r--r--test/regress/A3FA7601.dat3
-rw-r--r--test/regress/A3FA7601.test9
-rw-r--r--test/regress/BF3C1F82-2.test12
-rw-r--r--test/regress/BF3C1F82.test19
-rw-r--r--test/regress/CMakeLists.txt20
-rw-r--r--test/unit/t_amount.cc54
14 files changed, 121 insertions, 23 deletions
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b5d8cf09..94ce0a0a 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -22,7 +22,7 @@ macro(add_ledger_harness_tests _class)
foreach(TestFile ${${_class}_TESTS})
get_filename_component(TestFile_Name ${TestFile} NAME_WE)
string(FIND ${TestFile_Name} "_py" TestFile_IsPythonTest)
- if((NOT TestFile_IsPythonTest) OR HAVE_BOOST_PYTHON)
+ if((TestFile_IsPythonTest EQUAL -1) OR HAVE_BOOST_PYTHON)
add_test(${_class}Test_${TestFile_Name}
${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/RegressTests.py
${LEDGER_LOCATION} ${PROJECT_SOURCE_DIR}
diff --git a/test/RegressTests.py b/test/RegressTests.py
index 1094d0d5..01e14191 100755
--- a/test/RegressTests.py
+++ b/test/RegressTests.py
@@ -100,7 +100,7 @@ class RegressFile(object):
use_stdin = False
if test['command'].find("-f ") != -1:
test['command'] = '$ledger ' + test['command']
- if test['command'].find("-f - ") != -1:
+ if re.search("-f (-|/dev/stdin)(\s|$)", test['command']):
use_stdin = True
else:
test['command'] = (('$ledger -f "%s" ' %
diff --git a/test/baseline/cmd-convert.test b/test/baseline/cmd-convert.test
index 1c36d4bb..d444da52 100644
--- a/test/baseline/cmd-convert.test
+++ b/test/baseline/cmd-convert.test
@@ -4,7 +4,7 @@ test -f /dev/null --input-date-format "%m/%d/%Y" convert test/baseline/cmd-conve
Expenses:Unknown $10
Equity:Unknown $-10 = $20
-2011/12/12=2011/12/12 * ;
+2011/12/12=2011/12/12 *
Expenses:Unknown $10
Equity:Unknown
end test
diff --git a/test/baseline/opt-aux-date.test b/test/baseline/opt-aux-date.test
index 9d1e73d0..495bb7e6 100644
--- a/test/baseline/opt-aux-date.test
+++ b/test/baseline/opt-aux-date.test
@@ -10,7 +10,7 @@
Expenses:Books $20.00
Assets:Cash
-test reg --effective
+test reg --aux-date
08-Jan-01 January Expenses:Books $10.00 $10.00
Assets:Cash $-10.00 0
08-Feb-01 End of January Expenses:Books $10.00 $10.00
diff --git a/test/regress/0DDDEBC0.dat b/test/regress/0DDDEBC0.dat
new file mode 100644
index 00000000..21b6fce1
--- /dev/null
+++ b/test/regress/0DDDEBC0.dat
@@ -0,0 +1,3 @@
+date,posted,amount,
+12/12/2011,12/13/2011,$10,
+12/12/2011,,$20,
diff --git a/test/regress/0DDDEBC0.test b/test/regress/0DDDEBC0.test
new file mode 100644
index 00000000..cccb1b6b
--- /dev/null
+++ b/test/regress/0DDDEBC0.test
@@ -0,0 +1,9 @@
+test -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/0DDDEBC0.dat
+2011/12/12=2011/12/13 *
+ Expenses:Unknown $10
+ Equity:Unknown
+
+2011/12/12 *
+ Expenses:Unknown $20
+ Equity:Unknown
+end test
diff --git a/test/regress/68917252.dat b/test/regress/68917252.dat
new file mode 100644
index 00000000..8857f741
--- /dev/null
+++ b/test/regress/68917252.dat
@@ -0,0 +1,2 @@
+date,amount,
+12/12/2011,10,test,extra,fields
diff --git a/test/regress/68917252.test b/test/regress/68917252.test
new file mode 100644
index 00000000..52fde1d9
--- /dev/null
+++ b/test/regress/68917252.test
@@ -0,0 +1,5 @@
+test -f /dev/null --input-date-format "%m/%d/%Y" convert test/regress/68917252.dat
+2011/12/12 *
+ Expenses:Unknown 10
+ Equity:Unknown
+end test
diff --git a/test/regress/A3FA7601.dat b/test/regress/A3FA7601.dat
new file mode 100644
index 00000000..9a734e67
--- /dev/null
+++ b/test/regress/A3FA7601.dat
@@ -0,0 +1,3 @@
+date,posted,code,payee,amount,total,note,
+12/12/2011,12/13/2011,100,Test,$10,$20,test,
+12/12/2011,12/12/2011,,,$10,$20,
diff --git a/test/regress/A3FA7601.test b/test/regress/A3FA7601.test
new file mode 100644
index 00000000..5029f6d8
--- /dev/null
+++ b/test/regress/A3FA7601.test
@@ -0,0 +1,9 @@
+test -f /dev/null --input-date-format '%m/%d/%Y' convert test/regress/A3FA7601.dat
+2011/12/12=2011/12/13 * (100) Test ;test
+ Expenses:Unknown $10
+ Equity:Unknown $-10 = $20
+
+2011/12/12=2011/12/12 *
+ Expenses:Unknown $10
+ Equity:Unknown $-10 = $20
+end test
diff --git a/test/regress/BF3C1F82-2.test b/test/regress/BF3C1F82-2.test
new file mode 100644
index 00000000..453151ce
--- /dev/null
+++ b/test/regress/BF3C1F82-2.test
@@ -0,0 +1,12 @@
+; Check that include directives are relative for "-f /dev/stdin"
+include non-existent-ledger-file-BF3C1F82
+test -f - reg -> 1
+__ERROR__
+While parsing file "", line 2:
+Error: File to include was not found: "./non-existent-ledger-file-BF3C1F82"
+end test
+test -f /dev/stdin reg -> 1
+__ERROR__
+While parsing file "", line 2:
+Error: File to include was not found: "./non-existent-ledger-file-BF3C1F82"
+end test
diff --git a/test/regress/BF3C1F82.test b/test/regress/BF3C1F82.test
new file mode 100644
index 00000000..50f4106f
--- /dev/null
+++ b/test/regress/BF3C1F82.test
@@ -0,0 +1,19 @@
+; Check that error reporting works for "-f -"
+
+2012/02/30 * Test
+ a 1
+ b
+test -f - reg -> 1
+__ERROR__
+While parsing file "", line 3:
+While parsing transaction:
+<no source context>
+Error: Day of month is not valid for year
+end test
+test -f /dev/stdin reg -> 1
+__ERROR__
+While parsing file "", line 3:
+While parsing transaction:
+<no source context>
+Error: Day of month is not valid for year
+end test
diff --git a/test/regress/CMakeLists.txt b/test/regress/CMakeLists.txt
index 4b6232dd..26f55e84 100644
--- a/test/regress/CMakeLists.txt
+++ b/test/regress/CMakeLists.txt
@@ -1,19 +1 @@
-if(HAVE_BOOST_PYTHON)
- set(TEST_PYTHON_FLAGS "--python")
-endif()
-
-if(PYTHONINTERP_FOUND)
- file(GLOB REGRESSION_TESTS *.test)
- foreach(TestFile ${REGRESSION_TESTS})
- get_filename_component(TestFile_Name ${TestFile} NAME_WE)
- string(FIND ${TestFile_Name} "_py" TestFile_IsPythonTest)
- if((NOT TestFile_IsPythonTest) OR HAVE_BOOST_PYTHON)
- add_test(RegressionTest_${TestFile_Name}
- ${PYTHON_EXECUTABLE} ${PROJECT_SOURCE_DIR}/test/RegressTests.py
- ${LEDGER_LOCATION} ${PROJECT_SOURCE_DIR}
- ${TestFile} ${TEST_PYTHON_FLAGS})
- set_target_properties(check
- PROPERTIES DEPENDS RegressionTest_${TestFile_Name})
- endif()
- endforeach()
-endif()
+add_ledger_harness_tests(Regress)
diff --git a/test/unit/t_amount.cc b/test/unit/t_amount.cc
index 07cde8f3..b82de510 100644
--- a/test/unit/t_amount.cc
+++ b/test/unit/t_amount.cc
@@ -1109,6 +1109,60 @@ BOOST_AUTO_TEST_CASE(testCommodityAbs)
BOOST_CHECK(x2.valid());
}
+BOOST_AUTO_TEST_CASE(testFloor)
+{
+ amount_t x0;
+ amount_t x1("123.123");
+ amount_t x2("-123.123");
+
+ BOOST_CHECK_THROW(x0.floored(), amount_error);
+ BOOST_CHECK_EQUAL(amount_t(123L), x1.floored());
+ BOOST_CHECK_EQUAL(amount_t(-124L), x2.floored());
+
+ BOOST_CHECK(x0.valid());
+ BOOST_CHECK(x1.valid());
+ BOOST_CHECK(x2.valid());
+}
+
+BOOST_AUTO_TEST_CASE(testCommodityFloor)
+{
+ amount_t x1("$1234.56");
+ amount_t x2("$-1234.56");
+
+ BOOST_CHECK_EQUAL(amount_t("$1234"), x1.floored());
+ BOOST_CHECK_EQUAL(amount_t("$-1235"), x2.floored());
+
+ BOOST_CHECK(x1.valid());
+ BOOST_CHECK(x2.valid());
+}
+
+BOOST_AUTO_TEST_CASE(testCeiling)
+{
+ amount_t x0;
+ amount_t x1("123.123");
+ amount_t x2("-123.123");
+
+ BOOST_CHECK_THROW(x0.ceilinged(), amount_error);
+ BOOST_CHECK_EQUAL(amount_t(124L), x1.ceilinged());
+ BOOST_CHECK_EQUAL(amount_t(-123L), x2.ceilinged());
+
+ BOOST_CHECK(x0.valid());
+ BOOST_CHECK(x1.valid());
+ BOOST_CHECK(x2.valid());
+}
+
+BOOST_AUTO_TEST_CASE(testCommodityCeiling)
+{
+ amount_t x1("$1234.56");
+ amount_t x2("$-1234.56");
+
+ BOOST_CHECK_EQUAL(amount_t("$1235"), x1.ceilinged());
+ BOOST_CHECK_EQUAL(amount_t("$-1234"), x2.ceilinged());
+
+ BOOST_CHECK(x1.valid());
+ BOOST_CHECK(x2.valid());
+}
+
#ifndef NOT_FOR_PYTHON
#if 0
BOOST_AUTO_TEST_CASE(testReduction)