diff --git a/hledger/test/journal/a.timeclock b/hledger/test/cli/a.timeclock similarity index 100% rename from hledger/test/journal/a.timeclock rename to hledger/test/cli/a.timeclock diff --git a/hledger/test/journal/b.timedot b/hledger/test/cli/b.timedot similarity index 100% rename from hledger/test/journal/b.timedot rename to hledger/test/cli/b.timedot diff --git a/hledger/test/cli/multiple-files.test b/hledger/test/cli/multiple-files.test index e89c905f7..4b7523efa 100644 --- a/hledger/test/cli/multiple-files.test +++ b/hledger/test/cli/multiple-files.test @@ -41,7 +41,7 @@ $ hledger print -f personal.journal -f business.journal -f alias.journal -f pers # ** 3. files can be of different formats -$ hledger print -f personal.journal -f ../journal/a.timeclock -f ../journal/b.timedot +$ hledger print -f personal.journal -f a.timeclock -f b.timedot 2014-01-02 expenses:food $1 assets:cash diff --git a/hledger/test/journal/include.test b/hledger/test/journal/include.test deleted file mode 100644 index 134673164..000000000 --- a/hledger/test/journal/include.test +++ /dev/null @@ -1,105 +0,0 @@ -# * include directive - -# ** 1. nested includes in subdirectories -$ mkdir -p b/c/d ; printf '2010/1/1\n (D) 1\n' >b/c/d/d.journal ; printf '2010/1/1\n (C) 1\ninclude d/d.journal\n' >b/c/c.journal ; printf '2010/1/1\n (B) 1\ninclude c/c.journal\n' >b/b.journal ; printf '2010/1/1\n (A) 1\ninclude b/b.journal\n' >a.journal ; hledger -f a.journal print; rm -rf a.journal bG -2010-01-01 - (A) 1 - -2010-01-01 - (B) 1 - -2010-01-01 - (C) 1 - -2010-01-01 - (D) 1 - ->= 0 - -# ** 2. Including other formats. -< -2016/1/1 - (x) 1 - -include a.timeclock -include b.timedot -$ hledger -f - print -2016-01-01 - (x) 1 - -2016-01-01 * 12:00-16:00 - (a:aa) 4.00h - -2016-01-01 * - (b.bb) 1.00 - ->= - -# ** 3. include glob patterns -< -include *b.journal -$ printf '2018/01/01\n (A) 1\n' >ab.journal; printf '2018/01/01\n (B) 1' >bb.journal; hledger -f - print; rm -f ab.journal bb.journal -2018-01-01 - (A) 1 - -2018-01-01 - (B) 1 - ->= - -# ** 4. include invalid glob patterns -< -include [.journal -$ hledger -f - print ->2 // ->= 1 - -# ** 5. include nonexistent file -< -include doesnotexist.journal -$ hledger -f - print ->2 // ->= 1 - -# ** 6. trailing whitespace after the filename is ignored -< -include a.timeclock -$ hledger -f - check - -# ** 7. a same-line or multi-line following comment is ignored -< -include a.timeclock ; comment - ; comment - ; comment -$ hledger -f - check - -# ** 8. include relative to home -< -include ~/included.journal -$ printf '2018/01/01\n (A) 1\n' >included.journal; HOME="$PWD" hledger -f - print; rm -rf included.journal -2018-01-01 - (A) 1 - ->= 0 - -# The next tests require hard coded file names, so are not concurrent-safe. -# They use different file names so a single concurrent shelltest invocation will be fine. - -# ** 9. test that order of include files is maintained -$ printf 'include _b\n' >_a; touch _b; hledger -f _a stats -v | grep _ | sed -e 's%.*/%%'; rm -rf _a _b -_a -_b - -# ** 10. and with --auto code path -$ printf 'include _d\n=\n' >_c; touch _d; hledger -f _c stats -v --auto | grep _ | sed -e 's%.*/%%'; rm -rf _c _d -_c -_d - -# ** 11. include using old !include directive -< -!include f.journal -$ printf '2018/01/01\n (A) 1\n' >f.journal; hledger -f - print; rm -f f.journal -2018-01-01 - (A) 1 - ->= diff --git a/hledger/test/journal/include/.cycle/cycle.j b/hledger/test/journal/include/.cycle/cycle.j new file mode 100644 index 000000000..91b75d85d --- /dev/null +++ b/hledger/test/journal/include/.cycle/cycle.j @@ -0,0 +1 @@ +include cycle2/cycle2.j diff --git a/hledger/test/journal/include/.cycle/cycle2/cycle2.j b/hledger/test/journal/include/.cycle/cycle2/cycle2.j new file mode 100644 index 000000000..b22e22c1f --- /dev/null +++ b/hledger/test/journal/include/.cycle/cycle2/cycle2.j @@ -0,0 +1 @@ +include ../cycle.j diff --git a/hledger/test/journal/include/.dota.j b/hledger/test/journal/include/.dota.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/a.j b/hledger/test/journal/include/a.j new file mode 100644 index 000000000..c9dcfaff5 --- /dev/null +++ b/hledger/test/journal/include/a.j @@ -0,0 +1,2 @@ +2016-01-01 + (a) 1 diff --git a/hledger/test/journal/include/a.timeclock b/hledger/test/journal/include/a.timeclock new file mode 100644 index 000000000..394258589 --- /dev/null +++ b/hledger/test/journal/include/a.timeclock @@ -0,0 +1,2 @@ +i 2016-01-01 12:00:00 a:aa +o 2016-01-01 16:00:00 diff --git a/hledger/test/journal/include/a2.j b/hledger/test/journal/include/a2.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/b.timedot b/hledger/test/journal/include/b.timedot new file mode 100644 index 000000000..ccbea9760 --- /dev/null +++ b/hledger/test/journal/include/b.timedot @@ -0,0 +1,3 @@ +2016/1/1 +b.bb .... + diff --git a/hledger/test/journal/include/b/.dotdir/dotdirb.j b/hledger/test/journal/include/b/.dotdir/dotdirb.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/b/b.j b/hledger/test/journal/include/b/b.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/b/bb/.dotdir/dotdirbb.j b/hledger/test/journal/include/b/bb/.dotdir/dotdirbb.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/b/bb/bb.j b/hledger/test/journal/include/b/bb/bb.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/c/c.j b/hledger/test/journal/include/c/c.j new file mode 100644 index 000000000..e69de29bb diff --git a/hledger/test/journal/include/glob1.j b/hledger/test/journal/include/glob1.j new file mode 100644 index 000000000..00a8d6018 --- /dev/null +++ b/hledger/test/journal/include/glob1.j @@ -0,0 +1 @@ +include ** diff --git a/hledger/test/journal/include/glob2.j b/hledger/test/journal/include/glob2.j new file mode 100644 index 000000000..5058debd5 --- /dev/null +++ b/hledger/test/journal/include/glob2.j @@ -0,0 +1 @@ +include **.j diff --git a/hledger/test/journal/include/glob3.j b/hledger/test/journal/include/glob3.j new file mode 100644 index 000000000..794c875ba --- /dev/null +++ b/hledger/test/journal/include/glob3.j @@ -0,0 +1 @@ +include */**.j diff --git a/hledger/test/journal/include/glob4.j b/hledger/test/journal/include/glob4.j new file mode 100644 index 000000000..c296029da --- /dev/null +++ b/hledger/test/journal/include/glob4.j @@ -0,0 +1 @@ +include **/*.j diff --git a/hledger/test/journal/include/glob5.j b/hledger/test/journal/include/glob5.j new file mode 100644 index 000000000..f3a2c1b93 --- /dev/null +++ b/hledger/test/journal/include/glob5.j @@ -0,0 +1 @@ +include */**/*.j diff --git a/hledger/test/journal/include/include.test b/hledger/test/journal/include/include.test new file mode 100644 index 000000000..182998455 --- /dev/null +++ b/hledger/test/journal/include/include.test @@ -0,0 +1,98 @@ +# * include directive + +# ** 1. journal, timeclock, and timedot files can be included. +# Trailing whitespace or comments are ignored. +# The order of includes is respected. +include a.j +include b.timedot ; comment +include a.timeclock + ; comment + +$ hledger -f - print +2016-01-01 + (a) 1 + +2016-01-01 * + (b.bb) 1.00 + +2016-01-01 * 12:00-16:00 + (a:aa) 4.00h + +>= + +# ** 2. The old !include spelling still works. +< +!include f.journal +$ printf '2018/01/01\n (A) 1\n' >f.journal; hledger -f - print; rm -f f.journal +2018-01-01 + (A) 1 + +>= + +# ** 3. include with no argument: argument error +< +include +$ hledger -f- files +>2 /include needs a.*argument/ +>=1 + +# ** 4. include a nonexistent file: no files matched error +< +include nosuchfile +$ hledger -f- files +>2 /No files were matched/ +>=1 + +# # ** 5. include a directory: no files matched error +# < +# include b +# $ hledger -f- files +# >2 /No files were matched/ +# >=1 + +# ** 6. Including the current file is harmless, it's ignored automatically. +$ hledger -f self.j files +> /self\.j$/ + +# # ** 7. Including a cycle is harmless, the cycle is pruned automatically. +# $ hledger -f .cycle/cycle.j files +# > /cyc/ +# >=1 + +# ** 8. A leading tilde is expanded to $HOME. +< +include ~/included.journal +$ printf '2018/01/01\n (A) 1\n' >included.journal; HOME="$PWD" hledger -f - print; rm -rf included.journal +2018-01-01 + (A) 1 + +>= 0 + +# # ** 9. Glob patterns. Include a malformed glob -> glob error +# < +# include *** +# $ hledger -f- files +# >2 /malformed/ +# >=1 + +# ** 10. Include invalid glob patterns +< +include [.journal +$ hledger -f - print +>2 // +>= 1 + +# # ** 11. Include ** -> all files +# $ hledger -f glob1.j files + +# # ** 12. Include **.EXT -> ? +# $ hledger -f glob2.j files + +# # ** 13. Include */**.EXT -> ? +# $ hledger -f glob3.j files + +# # ** 14. Include **/*.EXT -> all files in or below cwd with .EXT +# $ hledger -f glob4.j files + +# # ** 15. Include */**/*.EXT -> all files below cwd with .EXT +# $ hledger -f glob5.j files diff --git a/hledger/test/journal/include/self.j b/hledger/test/journal/include/self.j new file mode 100644 index 000000000..428713f5d --- /dev/null +++ b/hledger/test/journal/include/self.j @@ -0,0 +1 @@ +include self.j