From ec2a774b18caca32a79d25dfff440a028baf9237 Mon Sep 17 00:00:00 2001 From: Simon Michael Date: Mon, 16 Nov 2020 08:47:41 -0800 Subject: [PATCH] cli, lib: move functional tests into hledger/test/ --- .ctags | 2 +- .github/workflows/linux.yml | 4 +-- .github/workflows/mac.yml | 2 +- .github/workflows/push.yml | 2 +- .github/workflows/windows.yml | 2 +- .gitignore | 2 +- CONTRIBUTING.md | 9 +++-- Makefile | 26 +++++++------- examples/balance-multicol.journal | 2 +- hledger-lib/Hledger/Read/CsvReader.hs | 2 +- hledger-ui/test/uitest.empty | 2 +- hledger/Hledger/Cli/Commands/Close.hs | 2 +- {tests => hledger/test}/0unittests.test | 0 {tests => hledger/test}/README.md | 34 ++++++++++++------- {tests => hledger/test}/account-aliases.test | 0 {tests => hledger/test}/accounts-sorting.test | 0 {tests => hledger/test}/accounts.test | 0 {tests => hledger/test}/add.test | 0 {tests => hledger/test}/addons/addons.test | 0 {tests => hledger/test}/amount-rendering.test | 0 {tests => hledger/test}/balance/219.test | 0 .../test}/balance/373-layout.test | 0 {tests => hledger/test}/balance/87.test | 0 hledger/test/balance/balance-multicol.journal | 1 + {tests => hledger/test}/balance/balance.test | 0 hledger/test/balance/bcexample.hledger | 1 + .../test}/balance/bcexample.test | 0 .../test}/balance/budget-sorting.test | 0 {tests => hledger/test}/balance/budget.test | 0 {tests => hledger/test}/balance/date2.test | 0 {tests => hledger/test}/balance/depth.test | 0 {tests => hledger/test}/balance/drop.test | 0 {tests => hledger/test}/balance/flat.test | 0 {tests => hledger/test}/balance/format.test | 0 .../test}/balance/intervals.test | 0 .../test}/balance/multicommodity.test | 0 .../test}/balance/no-total-no-elide.test | 0 {tests => hledger/test}/balance/percent.test | 0 .../test}/balance/precision.test | 0 {tests => hledger/test}/balance/pretty.test | 0 hledger/test/balance/sample.journal | 1 + {tests => hledger/test}/balance/sorting.test | 0 .../test}/balance/transpose.test | 0 {tests => hledger/test}/balancesheet.test | 0 {tests => hledger/test}/cashflow.test | 0 {tests => hledger/test}/cli/a.j | 0 hledger/test/cli/alias.journal | 1 + {tests => hledger/test}/cli/b.j | 0 hledger/test/cli/business.journal | 1 + {tests => hledger/test}/cli/cli.test | 0 {tests => hledger/test}/cli/date-options.test | 0 .../test}/cli/multiple-files.test | 0 {tests => hledger/test}/cli/no-such-file.test | 0 hledger/test/cli/personal.journal | 1 + {tests => hledger/test}/cli/query-args.test | 0 .../test}/cli/report-interval.test | 0 {tests => hledger/test}/close.test | 0 {tests => hledger/test}/codes.test | 0 {tests => hledger/test}/csv.test | 0 {tests => hledger/test}/csvtest.sh | 0 {tests => hledger/test}/descriptions.test | 0 {tests => hledger/test}/forecast.test | 0 hledger/test/i18n/chinese.journal | 1 + .../test}/i18n/unicode-account-matching.test | 0 .../test}/i18n/unicode-balance.test | 0 .../i18n/unicode-description-matching.test | 0 .../test}/i18n/unicode-error-message.test | 0 .../test}/i18n/unicode-print.test | 0 .../test}/i18n/unicode-register.test | 0 .../test}/i18n/wide-char-layout.test | 0 {tests => hledger/test}/import/a.csv | 0 {tests => hledger/test}/import/a.csv.rules | 0 {tests => hledger/test}/import/a.j | 0 {tests => hledger/test}/import/import.test | 0 {tests => hledger/test}/incomestatement.test | 0 {tests => hledger/test}/journal/a.timeclock | 0 .../test}/journal/account-types.test | 0 .../journal/amounts-and-commodities.test | 0 {tests => hledger/test}/journal/anon.test | 0 .../test}/journal/auto-postings.test | 0 {tests => hledger/test}/journal/b.timedot | 0 .../test}/journal/balance-assertions.test | 0 .../test}/journal/blank-description.test | 0 {tests => hledger/test}/journal/comments.test | 0 {tests => hledger/test}/journal/dates.test | 0 .../test}/journal/default-commodity.test | 0 .../test}/journal/directives-account.test | 0 .../test}/journal/directives.test | 0 {tests => hledger/test}/journal/include.test | 0 {tests => hledger/test}/journal/numbers.test | 0 .../test}/journal/parens-in-account-name.test | 0 .../test}/journal/parse-errors.test | 0 .../test}/journal/parse-sample-journal.test | 0 .../test}/journal/posting-dates.test | 0 .../test}/journal/precision.test | 0 .../test}/journal/scientific.test | 0 hledger/test/journal/status.journal | 1 + {tests => hledger/test}/journal/status.test | 0 .../test}/journal/transaction-prices.test | 0 .../test}/journal/valuation.test | 0 .../test}/journal/valuation2.test | 0 .../test}/journal/virtual-postings.test | 0 {tests => hledger/test}/notes.test | 0 {tests => hledger/test}/payees.test | 0 {tests => hledger/test}/pivot.test | 0 {tests => hledger/test}/prices.test | 0 {tests => hledger/test}/print/date2.test | 0 {tests => hledger/test}/print/explicit.test | 0 .../test}/print/long-account-name.test | 0 {tests => hledger/test}/print/print.test | 0 .../test}/print/query-not-acct.test | 0 {tests => hledger/test}/query-desc.test | 0 {tests => hledger/test}/query-tag.test | 2 +- {tests => hledger/test}/register/average.test | 0 {tests => hledger/test}/register/colour.test | 0 {tests => hledger/test}/register/date2.test | 0 {tests => hledger/test}/register/depth.test | 0 .../test}/register/intervals.test | 0 .../test}/register/unordered-dates.test | 0 {tests => hledger/test}/rewrite.test | 0 {tests => hledger/test}/roi.test | 0 .../balance => hledger/test}/sample.journal | 0 {tests => hledger/test}/stats.test | 0 {tests => hledger/test}/tags.test | 0 {tests => hledger/test}/timeclock.test | 0 {tests => hledger/test}/timedot.test | 0 tests/balance/balance-multicol.journal | 1 - tests/balance/bcexample.hledger | 1 - tests/cli/alias.journal | 1 - tests/cli/business.journal | 1 - tests/cli/personal.journal | 1 - tests/i18n/chinese.journal | 1 - tests/journal/status.journal | 1 - tests/sample.journal | 1 - 134 files changed, 58 insertions(+), 51 deletions(-) rename {tests => hledger/test}/0unittests.test (100%) rename {tests => hledger/test}/README.md (64%) rename {tests => hledger/test}/account-aliases.test (100%) rename {tests => hledger/test}/accounts-sorting.test (100%) rename {tests => hledger/test}/accounts.test (100%) rename {tests => hledger/test}/add.test (100%) rename {tests => hledger/test}/addons/addons.test (100%) rename {tests => hledger/test}/amount-rendering.test (100%) rename {tests => hledger/test}/balance/219.test (100%) rename {tests => hledger/test}/balance/373-layout.test (100%) rename {tests => hledger/test}/balance/87.test (100%) create mode 120000 hledger/test/balance/balance-multicol.journal rename {tests => hledger/test}/balance/balance.test (100%) create mode 120000 hledger/test/balance/bcexample.hledger rename {tests => hledger/test}/balance/bcexample.test (100%) rename {tests => hledger/test}/balance/budget-sorting.test (100%) rename {tests => hledger/test}/balance/budget.test (100%) rename {tests => hledger/test}/balance/date2.test (100%) rename {tests => hledger/test}/balance/depth.test (100%) rename {tests => hledger/test}/balance/drop.test (100%) rename {tests => hledger/test}/balance/flat.test (100%) rename {tests => hledger/test}/balance/format.test (100%) rename {tests => hledger/test}/balance/intervals.test (100%) rename {tests => hledger/test}/balance/multicommodity.test (100%) rename {tests => hledger/test}/balance/no-total-no-elide.test (100%) rename {tests => hledger/test}/balance/percent.test (100%) rename {tests => hledger/test}/balance/precision.test (100%) rename {tests => hledger/test}/balance/pretty.test (100%) create mode 120000 hledger/test/balance/sample.journal rename {tests => hledger/test}/balance/sorting.test (100%) rename {tests => hledger/test}/balance/transpose.test (100%) rename {tests => hledger/test}/balancesheet.test (100%) rename {tests => hledger/test}/cashflow.test (100%) rename {tests => hledger/test}/cli/a.j (100%) create mode 120000 hledger/test/cli/alias.journal rename {tests => hledger/test}/cli/b.j (100%) create mode 120000 hledger/test/cli/business.journal rename {tests => hledger/test}/cli/cli.test (100%) rename {tests => hledger/test}/cli/date-options.test (100%) rename {tests => hledger/test}/cli/multiple-files.test (100%) rename {tests => hledger/test}/cli/no-such-file.test (100%) create mode 120000 hledger/test/cli/personal.journal rename {tests => hledger/test}/cli/query-args.test (100%) rename {tests => hledger/test}/cli/report-interval.test (100%) rename {tests => hledger/test}/close.test (100%) rename {tests => hledger/test}/codes.test (100%) rename {tests => hledger/test}/csv.test (100%) rename {tests => hledger/test}/csvtest.sh (100%) rename {tests => hledger/test}/descriptions.test (100%) rename {tests => hledger/test}/forecast.test (100%) create mode 120000 hledger/test/i18n/chinese.journal rename {tests => hledger/test}/i18n/unicode-account-matching.test (100%) rename {tests => hledger/test}/i18n/unicode-balance.test (100%) rename {tests => hledger/test}/i18n/unicode-description-matching.test (100%) rename {tests => hledger/test}/i18n/unicode-error-message.test (100%) rename {tests => hledger/test}/i18n/unicode-print.test (100%) rename {tests => hledger/test}/i18n/unicode-register.test (100%) rename {tests => hledger/test}/i18n/wide-char-layout.test (100%) rename {tests => hledger/test}/import/a.csv (100%) rename {tests => hledger/test}/import/a.csv.rules (100%) rename {tests => hledger/test}/import/a.j (100%) rename {tests => hledger/test}/import/import.test (100%) rename {tests => hledger/test}/incomestatement.test (100%) rename {tests => hledger/test}/journal/a.timeclock (100%) rename {tests => hledger/test}/journal/account-types.test (100%) rename {tests => hledger/test}/journal/amounts-and-commodities.test (100%) rename {tests => hledger/test}/journal/anon.test (100%) rename {tests => hledger/test}/journal/auto-postings.test (100%) rename {tests => hledger/test}/journal/b.timedot (100%) rename {tests => hledger/test}/journal/balance-assertions.test (100%) rename {tests => hledger/test}/journal/blank-description.test (100%) rename {tests => hledger/test}/journal/comments.test (100%) rename {tests => hledger/test}/journal/dates.test (100%) rename {tests => hledger/test}/journal/default-commodity.test (100%) rename {tests => hledger/test}/journal/directives-account.test (100%) rename {tests => hledger/test}/journal/directives.test (100%) rename {tests => hledger/test}/journal/include.test (100%) rename {tests => hledger/test}/journal/numbers.test (100%) rename {tests => hledger/test}/journal/parens-in-account-name.test (100%) rename {tests => hledger/test}/journal/parse-errors.test (100%) rename {tests => hledger/test}/journal/parse-sample-journal.test (100%) rename {tests => hledger/test}/journal/posting-dates.test (100%) rename {tests => hledger/test}/journal/precision.test (100%) rename {tests => hledger/test}/journal/scientific.test (100%) create mode 120000 hledger/test/journal/status.journal rename {tests => hledger/test}/journal/status.test (100%) rename {tests => hledger/test}/journal/transaction-prices.test (100%) rename {tests => hledger/test}/journal/valuation.test (100%) rename {tests => hledger/test}/journal/valuation2.test (100%) rename {tests => hledger/test}/journal/virtual-postings.test (100%) rename {tests => hledger/test}/notes.test (100%) rename {tests => hledger/test}/payees.test (100%) rename {tests => hledger/test}/pivot.test (100%) rename {tests => hledger/test}/prices.test (100%) rename {tests => hledger/test}/print/date2.test (100%) rename {tests => hledger/test}/print/explicit.test (100%) rename {tests => hledger/test}/print/long-account-name.test (100%) rename {tests => hledger/test}/print/print.test (100%) rename {tests => hledger/test}/print/query-not-acct.test (100%) rename {tests => hledger/test}/query-desc.test (100%) rename {tests => hledger/test}/query-tag.test (97%) rename {tests => hledger/test}/register/average.test (100%) rename {tests => hledger/test}/register/colour.test (100%) rename {tests => hledger/test}/register/date2.test (100%) rename {tests => hledger/test}/register/depth.test (100%) rename {tests => hledger/test}/register/intervals.test (100%) rename {tests => hledger/test}/register/unordered-dates.test (100%) rename {tests => hledger/test}/rewrite.test (100%) rename {tests => hledger/test}/roi.test (100%) rename {tests/balance => hledger/test}/sample.journal (100%) rename {tests => hledger/test}/stats.test (100%) rename {tests => hledger/test}/tags.test (100%) rename {tests => hledger/test}/timeclock.test (100%) rename {tests => hledger/test}/timedot.test (100%) delete mode 120000 tests/balance/balance-multicol.journal delete mode 120000 tests/balance/bcexample.hledger delete mode 120000 tests/cli/alias.journal delete mode 120000 tests/cli/business.journal delete mode 120000 tests/cli/personal.journal delete mode 120000 tests/i18n/chinese.journal delete mode 120000 tests/journal/status.journal delete mode 120000 tests/sample.journal diff --git a/.ctags b/.ctags index 032b430b8..37b54c0a5 100644 --- a/.ctags +++ b/.ctags @@ -18,4 +18,4 @@ --exclude=old --exclude=site/doc --exclude=site/files ---exclude=tests/addons/hledger-* +--exclude=hledger/test/addons/hledger-* diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 73d0a93e1..372d54f45 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -27,7 +27,7 @@ on: - 'hledger/**' - 'hledger-ui/**' - 'hledger-web/**' - - 'tests/**' + - 'hledger/test/**' - '!**.md' - '!**.1' - '!**.5' @@ -43,7 +43,7 @@ on: - 'hledger/**' - 'hledger-ui/**' - 'hledger-web/**' - - 'tests/**' + - 'hledger/test/**' - '!**.md' - '!**.1' - '!**.5' diff --git a/.github/workflows/mac.yml b/.github/workflows/mac.yml index dae9a4139..eda4625cd 100644 --- a/.github/workflows/mac.yml +++ b/.github/workflows/mac.yml @@ -19,7 +19,7 @@ on: - 'hledger/**' - 'hledger-ui/**' - 'hledger-web/**' - - 'tests/**' + - 'hledger/test/**' - '!**.md' - '!**.1' - '!**.5' diff --git a/.github/workflows/push.yml b/.github/workflows/push.yml index eff512661..f54fccff7 100644 --- a/.github/workflows/push.yml +++ b/.github/workflows/push.yml @@ -15,7 +15,7 @@ on: - 'hledger/**' - 'hledger-ui/**' - 'hledger-web/**' - - 'tests/**' + - 'hledger/test/**' - '!**.md' - '!**.1' - '!**.5' diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index e18eae10a..5dd05f108 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -19,7 +19,7 @@ on: - 'hledger/**' - 'hledger-ui/**' - 'hledger-web/**' - # - 'tests/**' + # - 'hledger/test/**' - '!**.md' - '!**.1' - '!**.5' diff --git a/.gitignore b/.gitignore index d9c789d57..2ffe01aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -71,7 +71,7 @@ old !/bin/*.md /.latest.* test.hs -tests/addons/hledger-* +hledger/test/addons/hledger-* tools/generatejournal tools/simplebench /examples/10*.journal diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d744d5117..0e25de244 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -762,8 +762,8 @@ About testing in the hledger project, as of 201809. functionality in the hledger and hledger-lib packages. We do this with [shelltestrunner](http://hackage.haskell.org/package/shelltestrunner). - Tests are defined in files under - [tests/](https://github.com/simonmichael/hledger/tree/master/tests), + Tests are defined in files named `*.test` under + [hledger/test/](https://github.com/simonmichael/hledger/tree/master/hledger/test), grouped by *component* (command or topic name). For more about these, see the README there. @@ -1418,9 +1418,8 @@ Times the end-user commands in `bench.sh` using quickbench. ### Run functional tests -Runs the shelltestrunner tests defined in tests/, which test the hledger CLI. +Runs the shelltestrunner tests defined in hledger/test/, which test the hledger CLI. - stack build hledger make functest ### Run haddock tests @@ -1559,4 +1558,4 @@ If you find that adding --fast makes this any faster, please update this. #### Rerun a single functional test as you change it: - ls tests/budget/budget.test | entr bash -c 'clear; COLUMNS=80 stack exec -- shelltest --execdir tests/budget/budget.test -i12' + ls hledger/test/budget/budget.test | entr bash -c 'clear; COLUMNS=80 stack exec -- shelltest --execdir hledger/test/budget/budget.test -i12' diff --git a/Makefile b/Makefile index 841fb0cab..4782db291 100644 --- a/Makefile +++ b/Makefile @@ -483,32 +483,32 @@ unittest: $(call def-help,unittest, run the unit tests in hledger-lib ) builtintest: $(call def-help,builtintest, run hledgers built in test command) @($(STACK) exec hledger test && echo $@ PASSED) || (echo $@ FAILED; false) -#functest: addons tests/addons/hledger-addon -functest: tests/addons/hledger-addon \ +#functest: addons hledger/test/addons/hledger-addon +functest: hledger/test/addons/hledger-addon \ $(call def-help,functest, build hledger quickly and run the functional tests (and some unit tests) ) @$(STACK) build --fast hledger - @($(SHELLTESTSTK) -w `$(STACK) exec -- which hledger` tests \ + @($(SHELLTESTSTK) -w `$(STACK) exec -- which hledger` hledger/test/ \ && echo $@ PASSED) || (echo $@ FAILED; false) -functest-%: tests/addons/hledger-addon \ +functest-%: hledger/test/addons/hledger-addon \ $(call def-help,functest-PAT, build hledger quickly and run just the functional tests matching PAT ) @stack build --fast hledger - @($(SHELLTESTSTK) -w `stack exec -- which hledger` tests -i "$*" \ + @($(SHELLTESTSTK) -w `stack exec -- which hledger` hledger/test/ -i "$*" \ && echo $@ PASSED) || (echo $@ FAILED; false) ADDONEXTS=pl py rb sh hs lhs rkt exe com bat -tests/addons/hledger-addon: \ - $(call def-help,tests/addons/hledger-addon,\ +hledger/test/addons/hledger-addon: \ + $(call def-help,hledger/test/addons/hledger-addon,\ generate dummy add-ons for testing (hledger-addon the rest)\ ) - rm -rf tests/addons/hledger-* - printf '#!/bin/sh\necho add-on: $$0\necho args: $$*\n' >tests/addons/hledger-addon + rm -rf hledger/test/addons/hledger-* + printf '#!/bin/sh\necho add-on: $$0\necho args: $$*\n' >hledger/test/addons/hledger-addon for E in '' $(ADDONEXTS); do \ - cp tests/addons/hledger-addon tests/addons/hledger-addon.$$E; done + cp hledger/test/addons/hledger-addon hledger/test/addons/hledger-addon.$$E; done for F in addon. addon2 addon2.hs addon3.exe addon3.lhs addon4.exe add reg; do \ - cp tests/addons/hledger-addon tests/addons/hledger-$$F; done - mkdir tests/addons/hledger-addondir - chmod +x tests/addons/hledger-* + cp hledger/test/addons/hledger-addon hledger/test/addons/hledger-$$F; done + mkdir hledger/test/addons/hledger-addondir + chmod +x hledger/test/addons/hledger-* # hlinttest hlint: $(call def-help,hlinttest (or hlint),generate a hlint report) # hlint --hint=hlint --report=hlint.html $(SOURCEFILES) diff --git a/examples/balance-multicol.journal b/examples/balance-multicol.journal index ca3787293..9491bda0a 100644 --- a/examples/balance-multicol.journal +++ b/examples/balance-multicol.journal @@ -1,4 +1,4 @@ -; A sample journal for testing multi-column balance report. See tests/balance-multicol.test. +; A sample journal for testing multi-column balance report. See hledger/test/r/test/balance-multicol.test. 2012/12/31 (assets:checking) 10 diff --git a/hledger-lib/Hledger/Read/CsvReader.hs b/hledger-lib/Hledger/Read/CsvReader.hs index 4b24aa734..08461e6e8 100644 --- a/hledger-lib/Hledger/Read/CsvReader.hs +++ b/hledger-lib/Hledger/Read/CsvReader.hs @@ -980,7 +980,7 @@ getAmount :: CsvRules -> CsvRecord -> String -> Bool -> Int -> Maybe MixedAmount getAmount rules record currency p1IsVirtual n = -- Warning, many tricky corner cases here. -- docs: hledger_csv.m4.md #### amount - -- tests: tests/csv.test ~ 13, 31-34 + -- tests: hledger/test/csv.test ~ 13, 31-34 let unnumberedfieldnames = ["amount","amount-in","amount-out"] diff --git a/hledger-ui/test/uitest.empty b/hledger-ui/test/uitest.empty index 7b33f79dc..2a055c5ea 100755 --- a/hledger-ui/test/uitest.empty +++ b/hledger-ui/test/uitest.empty @@ -6,7 +6,7 @@ # capture its output. # * Or, all output from inputs hard-coded below. # -# Here's some sample output for "tests/hledgeruicapture -f examples/sample.journal" +# Here's some sample output for "test/hledgeruicapture -f examples/sample.journal" # showing the initial output (accounts screen) then the outputs from four inputs: # RIGHT (draws register screen) # UP (moves selection up one row; only the heading and old/new rows are redrawn) diff --git a/hledger/Hledger/Cli/Commands/Close.hs b/hledger/Hledger/Cli/Commands/Close.hs index 82edfe84b..fdba83dda 100755 --- a/hledger/Hledger/Cli/Commands/Close.hs +++ b/hledger/Hledger/Cli/Commands/Close.hs @@ -46,7 +46,7 @@ closemode = hledgerCommandMode ([], Just $ argsFlag "[QUERY]") -- debugger, beware: close is incredibly devious. simple rules combine to make a horrid maze. --- tests are in tests/close.test. +-- tests are in hledger/test/close.test. close CliOpts{rawopts_=rawopts, reportspec_=rspec} j = do today <- getCurrentDay let diff --git a/tests/0unittests.test b/hledger/test/0unittests.test similarity index 100% rename from tests/0unittests.test rename to hledger/test/0unittests.test diff --git a/tests/README.md b/hledger/test/README.md similarity index 64% rename from tests/README.md rename to hledger/test/README.md index 87ad0c45c..fc60f7852 100644 --- a/tests/README.md +++ b/hledger/test/README.md @@ -1,11 +1,19 @@ -hledger's functional tests. -See also [Contributor Guide: Tests]. +hledger test-related files. See also [Contributor Guide: Tests]. -These mainly test the hledger CLI and (indirectly) hledger-lib. +unittest.hs - main file for a cabal test suite in the hledger package +(run by "cabal test" or "stack test"). Runs the unit tests built in to +all hledger modules. Not used much, we usually run them via hledger's +builtin "test" command instead. + +doctest.hs - main file for another cabal test suite. Runs the doctests +embedded in haddock comments in some hledger modules. + +The rest of the files here are functional tests, run with [shelltestrunner]. +These test the hledger CLI and (indirectly) the hledger-lib package. They are organised roughly by [component]. -Running these requires [shelltestrunner]. -Older test files are in [format 1]; newer ones use [format 3] (preferred). +Older test files are in shelltestrunner's [format 1]; +newer ones use [format 3] (preferred). Some tests invoke unix commands so will not run in a Windows CMD shell. [Contributor Guide: Tests]: https://hledger.org/CONTRIBUTING.html#tests @@ -36,7 +44,7 @@ These are the most important: Run only the tests matching a regular expression: $ COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests -i balance-assertions.*19 - :tests/journal/balance-assertions.test:19: [OK] + :hledger/test/journal/balance-assertions.test:19: [OK] Test Cases Total Passed 1 1 @@ -45,10 +53,10 @@ Run only the tests matching a regular expression: Run only the tests in one file: - $ COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests/cli/query-args.test - :tests/cli/query-args.test:1: [OK] - :tests/cli/query-args.test:2: [OK] - :tests/cli/query-args.test:3: [OK] + $ COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` hledger/test/cli/query-args.test + :hledger/test/cli/query-args.test:1: [OK] + :hledger/test/cli/query-args.test:2: [OK] + :hledger/test/cli/query-args.test:3: [OK] Test Cases Total Passed 3 3 @@ -57,14 +65,14 @@ Run only the tests in one file: Run a test [repeatedly](http://eradman.com/entrproject/) as its file is changed: - $ ls tests/cli/query-args.test | entr bash -c "COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` tests/cli/query-args.test -i1" - :tests/cli/query-args.test:1: [OK] + $ ls hledger/test/cli/query-args.test | entr bash -c "COLUMNS=80 shelltest --execdir -w `stack exec -- which hledger` hledger/test/cli/query-args.test -i1" + :hledger/test/cli/query-args.test:1: [OK] Test Cases Total Passed 1 1 Failed 0 0 Total 1 1 - :tests/cli/query-args.test:1: [OK] + :hledger/test/cli/query-args.test:1: [OK] Test Cases Total Passed 1 1 diff --git a/tests/account-aliases.test b/hledger/test/account-aliases.test similarity index 100% rename from tests/account-aliases.test rename to hledger/test/account-aliases.test diff --git a/tests/accounts-sorting.test b/hledger/test/accounts-sorting.test similarity index 100% rename from tests/accounts-sorting.test rename to hledger/test/accounts-sorting.test diff --git a/tests/accounts.test b/hledger/test/accounts.test similarity index 100% rename from tests/accounts.test rename to hledger/test/accounts.test diff --git a/tests/add.test b/hledger/test/add.test similarity index 100% rename from tests/add.test rename to hledger/test/add.test diff --git a/tests/addons/addons.test b/hledger/test/addons/addons.test similarity index 100% rename from tests/addons/addons.test rename to hledger/test/addons/addons.test diff --git a/tests/amount-rendering.test b/hledger/test/amount-rendering.test similarity index 100% rename from tests/amount-rendering.test rename to hledger/test/amount-rendering.test diff --git a/tests/balance/219.test b/hledger/test/balance/219.test similarity index 100% rename from tests/balance/219.test rename to hledger/test/balance/219.test diff --git a/tests/balance/373-layout.test b/hledger/test/balance/373-layout.test similarity index 100% rename from tests/balance/373-layout.test rename to hledger/test/balance/373-layout.test diff --git a/tests/balance/87.test b/hledger/test/balance/87.test similarity index 100% rename from tests/balance/87.test rename to hledger/test/balance/87.test diff --git a/hledger/test/balance/balance-multicol.journal b/hledger/test/balance/balance-multicol.journal new file mode 120000 index 000000000..ac5c8abad --- /dev/null +++ b/hledger/test/balance/balance-multicol.journal @@ -0,0 +1 @@ +../../../examples/balance-multicol.journal \ No newline at end of file diff --git a/tests/balance/balance.test b/hledger/test/balance/balance.test similarity index 100% rename from tests/balance/balance.test rename to hledger/test/balance/balance.test diff --git a/hledger/test/balance/bcexample.hledger b/hledger/test/balance/bcexample.hledger new file mode 120000 index 000000000..72a427f6a --- /dev/null +++ b/hledger/test/balance/bcexample.hledger @@ -0,0 +1 @@ +../../../examples/bcexample.hledger \ No newline at end of file diff --git a/tests/balance/bcexample.test b/hledger/test/balance/bcexample.test similarity index 100% rename from tests/balance/bcexample.test rename to hledger/test/balance/bcexample.test diff --git a/tests/balance/budget-sorting.test b/hledger/test/balance/budget-sorting.test similarity index 100% rename from tests/balance/budget-sorting.test rename to hledger/test/balance/budget-sorting.test diff --git a/tests/balance/budget.test b/hledger/test/balance/budget.test similarity index 100% rename from tests/balance/budget.test rename to hledger/test/balance/budget.test diff --git a/tests/balance/date2.test b/hledger/test/balance/date2.test similarity index 100% rename from tests/balance/date2.test rename to hledger/test/balance/date2.test diff --git a/tests/balance/depth.test b/hledger/test/balance/depth.test similarity index 100% rename from tests/balance/depth.test rename to hledger/test/balance/depth.test diff --git a/tests/balance/drop.test b/hledger/test/balance/drop.test similarity index 100% rename from tests/balance/drop.test rename to hledger/test/balance/drop.test diff --git a/tests/balance/flat.test b/hledger/test/balance/flat.test similarity index 100% rename from tests/balance/flat.test rename to hledger/test/balance/flat.test diff --git a/tests/balance/format.test b/hledger/test/balance/format.test similarity index 100% rename from tests/balance/format.test rename to hledger/test/balance/format.test diff --git a/tests/balance/intervals.test b/hledger/test/balance/intervals.test similarity index 100% rename from tests/balance/intervals.test rename to hledger/test/balance/intervals.test diff --git a/tests/balance/multicommodity.test b/hledger/test/balance/multicommodity.test similarity index 100% rename from tests/balance/multicommodity.test rename to hledger/test/balance/multicommodity.test diff --git a/tests/balance/no-total-no-elide.test b/hledger/test/balance/no-total-no-elide.test similarity index 100% rename from tests/balance/no-total-no-elide.test rename to hledger/test/balance/no-total-no-elide.test diff --git a/tests/balance/percent.test b/hledger/test/balance/percent.test similarity index 100% rename from tests/balance/percent.test rename to hledger/test/balance/percent.test diff --git a/tests/balance/precision.test b/hledger/test/balance/precision.test similarity index 100% rename from tests/balance/precision.test rename to hledger/test/balance/precision.test diff --git a/tests/balance/pretty.test b/hledger/test/balance/pretty.test similarity index 100% rename from tests/balance/pretty.test rename to hledger/test/balance/pretty.test diff --git a/hledger/test/balance/sample.journal b/hledger/test/balance/sample.journal new file mode 120000 index 000000000..c365e5b59 --- /dev/null +++ b/hledger/test/balance/sample.journal @@ -0,0 +1 @@ +../../../examples/sample.journal \ No newline at end of file diff --git a/tests/balance/sorting.test b/hledger/test/balance/sorting.test similarity index 100% rename from tests/balance/sorting.test rename to hledger/test/balance/sorting.test diff --git a/tests/balance/transpose.test b/hledger/test/balance/transpose.test similarity index 100% rename from tests/balance/transpose.test rename to hledger/test/balance/transpose.test diff --git a/tests/balancesheet.test b/hledger/test/balancesheet.test similarity index 100% rename from tests/balancesheet.test rename to hledger/test/balancesheet.test diff --git a/tests/cashflow.test b/hledger/test/cashflow.test similarity index 100% rename from tests/cashflow.test rename to hledger/test/cashflow.test diff --git a/tests/cli/a.j b/hledger/test/cli/a.j similarity index 100% rename from tests/cli/a.j rename to hledger/test/cli/a.j diff --git a/hledger/test/cli/alias.journal b/hledger/test/cli/alias.journal new file mode 120000 index 000000000..6a6b833fe --- /dev/null +++ b/hledger/test/cli/alias.journal @@ -0,0 +1 @@ +../../../examples/alias.journal \ No newline at end of file diff --git a/tests/cli/b.j b/hledger/test/cli/b.j similarity index 100% rename from tests/cli/b.j rename to hledger/test/cli/b.j diff --git a/hledger/test/cli/business.journal b/hledger/test/cli/business.journal new file mode 120000 index 000000000..6adc4714c --- /dev/null +++ b/hledger/test/cli/business.journal @@ -0,0 +1 @@ +../../../examples/business.journal \ No newline at end of file diff --git a/tests/cli/cli.test b/hledger/test/cli/cli.test similarity index 100% rename from tests/cli/cli.test rename to hledger/test/cli/cli.test diff --git a/tests/cli/date-options.test b/hledger/test/cli/date-options.test similarity index 100% rename from tests/cli/date-options.test rename to hledger/test/cli/date-options.test diff --git a/tests/cli/multiple-files.test b/hledger/test/cli/multiple-files.test similarity index 100% rename from tests/cli/multiple-files.test rename to hledger/test/cli/multiple-files.test diff --git a/tests/cli/no-such-file.test b/hledger/test/cli/no-such-file.test similarity index 100% rename from tests/cli/no-such-file.test rename to hledger/test/cli/no-such-file.test diff --git a/hledger/test/cli/personal.journal b/hledger/test/cli/personal.journal new file mode 120000 index 000000000..80d674c60 --- /dev/null +++ b/hledger/test/cli/personal.journal @@ -0,0 +1 @@ +../../../examples/personal.journal \ No newline at end of file diff --git a/tests/cli/query-args.test b/hledger/test/cli/query-args.test similarity index 100% rename from tests/cli/query-args.test rename to hledger/test/cli/query-args.test diff --git a/tests/cli/report-interval.test b/hledger/test/cli/report-interval.test similarity index 100% rename from tests/cli/report-interval.test rename to hledger/test/cli/report-interval.test diff --git a/tests/close.test b/hledger/test/close.test similarity index 100% rename from tests/close.test rename to hledger/test/close.test diff --git a/tests/codes.test b/hledger/test/codes.test similarity index 100% rename from tests/codes.test rename to hledger/test/codes.test diff --git a/tests/csv.test b/hledger/test/csv.test similarity index 100% rename from tests/csv.test rename to hledger/test/csv.test diff --git a/tests/csvtest.sh b/hledger/test/csvtest.sh similarity index 100% rename from tests/csvtest.sh rename to hledger/test/csvtest.sh diff --git a/tests/descriptions.test b/hledger/test/descriptions.test similarity index 100% rename from tests/descriptions.test rename to hledger/test/descriptions.test diff --git a/tests/forecast.test b/hledger/test/forecast.test similarity index 100% rename from tests/forecast.test rename to hledger/test/forecast.test diff --git a/hledger/test/i18n/chinese.journal b/hledger/test/i18n/chinese.journal new file mode 120000 index 000000000..8912f612e --- /dev/null +++ b/hledger/test/i18n/chinese.journal @@ -0,0 +1 @@ +../../../examples/chinese.journal \ No newline at end of file diff --git a/tests/i18n/unicode-account-matching.test b/hledger/test/i18n/unicode-account-matching.test similarity index 100% rename from tests/i18n/unicode-account-matching.test rename to hledger/test/i18n/unicode-account-matching.test diff --git a/tests/i18n/unicode-balance.test b/hledger/test/i18n/unicode-balance.test similarity index 100% rename from tests/i18n/unicode-balance.test rename to hledger/test/i18n/unicode-balance.test diff --git a/tests/i18n/unicode-description-matching.test b/hledger/test/i18n/unicode-description-matching.test similarity index 100% rename from tests/i18n/unicode-description-matching.test rename to hledger/test/i18n/unicode-description-matching.test diff --git a/tests/i18n/unicode-error-message.test b/hledger/test/i18n/unicode-error-message.test similarity index 100% rename from tests/i18n/unicode-error-message.test rename to hledger/test/i18n/unicode-error-message.test diff --git a/tests/i18n/unicode-print.test b/hledger/test/i18n/unicode-print.test similarity index 100% rename from tests/i18n/unicode-print.test rename to hledger/test/i18n/unicode-print.test diff --git a/tests/i18n/unicode-register.test b/hledger/test/i18n/unicode-register.test similarity index 100% rename from tests/i18n/unicode-register.test rename to hledger/test/i18n/unicode-register.test diff --git a/tests/i18n/wide-char-layout.test b/hledger/test/i18n/wide-char-layout.test similarity index 100% rename from tests/i18n/wide-char-layout.test rename to hledger/test/i18n/wide-char-layout.test diff --git a/tests/import/a.csv b/hledger/test/import/a.csv similarity index 100% rename from tests/import/a.csv rename to hledger/test/import/a.csv diff --git a/tests/import/a.csv.rules b/hledger/test/import/a.csv.rules similarity index 100% rename from tests/import/a.csv.rules rename to hledger/test/import/a.csv.rules diff --git a/tests/import/a.j b/hledger/test/import/a.j similarity index 100% rename from tests/import/a.j rename to hledger/test/import/a.j diff --git a/tests/import/import.test b/hledger/test/import/import.test similarity index 100% rename from tests/import/import.test rename to hledger/test/import/import.test diff --git a/tests/incomestatement.test b/hledger/test/incomestatement.test similarity index 100% rename from tests/incomestatement.test rename to hledger/test/incomestatement.test diff --git a/tests/journal/a.timeclock b/hledger/test/journal/a.timeclock similarity index 100% rename from tests/journal/a.timeclock rename to hledger/test/journal/a.timeclock diff --git a/tests/journal/account-types.test b/hledger/test/journal/account-types.test similarity index 100% rename from tests/journal/account-types.test rename to hledger/test/journal/account-types.test diff --git a/tests/journal/amounts-and-commodities.test b/hledger/test/journal/amounts-and-commodities.test similarity index 100% rename from tests/journal/amounts-and-commodities.test rename to hledger/test/journal/amounts-and-commodities.test diff --git a/tests/journal/anon.test b/hledger/test/journal/anon.test similarity index 100% rename from tests/journal/anon.test rename to hledger/test/journal/anon.test diff --git a/tests/journal/auto-postings.test b/hledger/test/journal/auto-postings.test similarity index 100% rename from tests/journal/auto-postings.test rename to hledger/test/journal/auto-postings.test diff --git a/tests/journal/b.timedot b/hledger/test/journal/b.timedot similarity index 100% rename from tests/journal/b.timedot rename to hledger/test/journal/b.timedot diff --git a/tests/journal/balance-assertions.test b/hledger/test/journal/balance-assertions.test similarity index 100% rename from tests/journal/balance-assertions.test rename to hledger/test/journal/balance-assertions.test diff --git a/tests/journal/blank-description.test b/hledger/test/journal/blank-description.test similarity index 100% rename from tests/journal/blank-description.test rename to hledger/test/journal/blank-description.test diff --git a/tests/journal/comments.test b/hledger/test/journal/comments.test similarity index 100% rename from tests/journal/comments.test rename to hledger/test/journal/comments.test diff --git a/tests/journal/dates.test b/hledger/test/journal/dates.test similarity index 100% rename from tests/journal/dates.test rename to hledger/test/journal/dates.test diff --git a/tests/journal/default-commodity.test b/hledger/test/journal/default-commodity.test similarity index 100% rename from tests/journal/default-commodity.test rename to hledger/test/journal/default-commodity.test diff --git a/tests/journal/directives-account.test b/hledger/test/journal/directives-account.test similarity index 100% rename from tests/journal/directives-account.test rename to hledger/test/journal/directives-account.test diff --git a/tests/journal/directives.test b/hledger/test/journal/directives.test similarity index 100% rename from tests/journal/directives.test rename to hledger/test/journal/directives.test diff --git a/tests/journal/include.test b/hledger/test/journal/include.test similarity index 100% rename from tests/journal/include.test rename to hledger/test/journal/include.test diff --git a/tests/journal/numbers.test b/hledger/test/journal/numbers.test similarity index 100% rename from tests/journal/numbers.test rename to hledger/test/journal/numbers.test diff --git a/tests/journal/parens-in-account-name.test b/hledger/test/journal/parens-in-account-name.test similarity index 100% rename from tests/journal/parens-in-account-name.test rename to hledger/test/journal/parens-in-account-name.test diff --git a/tests/journal/parse-errors.test b/hledger/test/journal/parse-errors.test similarity index 100% rename from tests/journal/parse-errors.test rename to hledger/test/journal/parse-errors.test diff --git a/tests/journal/parse-sample-journal.test b/hledger/test/journal/parse-sample-journal.test similarity index 100% rename from tests/journal/parse-sample-journal.test rename to hledger/test/journal/parse-sample-journal.test diff --git a/tests/journal/posting-dates.test b/hledger/test/journal/posting-dates.test similarity index 100% rename from tests/journal/posting-dates.test rename to hledger/test/journal/posting-dates.test diff --git a/tests/journal/precision.test b/hledger/test/journal/precision.test similarity index 100% rename from tests/journal/precision.test rename to hledger/test/journal/precision.test diff --git a/tests/journal/scientific.test b/hledger/test/journal/scientific.test similarity index 100% rename from tests/journal/scientific.test rename to hledger/test/journal/scientific.test diff --git a/hledger/test/journal/status.journal b/hledger/test/journal/status.journal new file mode 120000 index 000000000..a610f10ba --- /dev/null +++ b/hledger/test/journal/status.journal @@ -0,0 +1 @@ +../../../examples/status.journal \ No newline at end of file diff --git a/tests/journal/status.test b/hledger/test/journal/status.test similarity index 100% rename from tests/journal/status.test rename to hledger/test/journal/status.test diff --git a/tests/journal/transaction-prices.test b/hledger/test/journal/transaction-prices.test similarity index 100% rename from tests/journal/transaction-prices.test rename to hledger/test/journal/transaction-prices.test diff --git a/tests/journal/valuation.test b/hledger/test/journal/valuation.test similarity index 100% rename from tests/journal/valuation.test rename to hledger/test/journal/valuation.test diff --git a/tests/journal/valuation2.test b/hledger/test/journal/valuation2.test similarity index 100% rename from tests/journal/valuation2.test rename to hledger/test/journal/valuation2.test diff --git a/tests/journal/virtual-postings.test b/hledger/test/journal/virtual-postings.test similarity index 100% rename from tests/journal/virtual-postings.test rename to hledger/test/journal/virtual-postings.test diff --git a/tests/notes.test b/hledger/test/notes.test similarity index 100% rename from tests/notes.test rename to hledger/test/notes.test diff --git a/tests/payees.test b/hledger/test/payees.test similarity index 100% rename from tests/payees.test rename to hledger/test/payees.test diff --git a/tests/pivot.test b/hledger/test/pivot.test similarity index 100% rename from tests/pivot.test rename to hledger/test/pivot.test diff --git a/tests/prices.test b/hledger/test/prices.test similarity index 100% rename from tests/prices.test rename to hledger/test/prices.test diff --git a/tests/print/date2.test b/hledger/test/print/date2.test similarity index 100% rename from tests/print/date2.test rename to hledger/test/print/date2.test diff --git a/tests/print/explicit.test b/hledger/test/print/explicit.test similarity index 100% rename from tests/print/explicit.test rename to hledger/test/print/explicit.test diff --git a/tests/print/long-account-name.test b/hledger/test/print/long-account-name.test similarity index 100% rename from tests/print/long-account-name.test rename to hledger/test/print/long-account-name.test diff --git a/tests/print/print.test b/hledger/test/print/print.test similarity index 100% rename from tests/print/print.test rename to hledger/test/print/print.test diff --git a/tests/print/query-not-acct.test b/hledger/test/print/query-not-acct.test similarity index 100% rename from tests/print/query-not-acct.test rename to hledger/test/print/query-not-acct.test diff --git a/tests/query-desc.test b/hledger/test/query-desc.test similarity index 100% rename from tests/query-desc.test rename to hledger/test/query-desc.test diff --git a/tests/query-tag.test b/hledger/test/query-tag.test similarity index 97% rename from tests/query-tag.test rename to hledger/test/query-tag.test index 2a410fe60..6173020f5 100644 --- a/tests/query-tag.test +++ b/hledger/test/query-tag.test @@ -128,7 +128,7 @@ hledger -f - print not:tag:. >>>=0 # 6. query is not affected by implicit tags -hledger -f ../examples/sample.journal reg tag:d +hledger -f ../../examples/sample.journal reg tag:d >>> >>>2 >>>=0 diff --git a/tests/register/average.test b/hledger/test/register/average.test similarity index 100% rename from tests/register/average.test rename to hledger/test/register/average.test diff --git a/tests/register/colour.test b/hledger/test/register/colour.test similarity index 100% rename from tests/register/colour.test rename to hledger/test/register/colour.test diff --git a/tests/register/date2.test b/hledger/test/register/date2.test similarity index 100% rename from tests/register/date2.test rename to hledger/test/register/date2.test diff --git a/tests/register/depth.test b/hledger/test/register/depth.test similarity index 100% rename from tests/register/depth.test rename to hledger/test/register/depth.test diff --git a/tests/register/intervals.test b/hledger/test/register/intervals.test similarity index 100% rename from tests/register/intervals.test rename to hledger/test/register/intervals.test diff --git a/tests/register/unordered-dates.test b/hledger/test/register/unordered-dates.test similarity index 100% rename from tests/register/unordered-dates.test rename to hledger/test/register/unordered-dates.test diff --git a/tests/rewrite.test b/hledger/test/rewrite.test similarity index 100% rename from tests/rewrite.test rename to hledger/test/rewrite.test diff --git a/tests/roi.test b/hledger/test/roi.test similarity index 100% rename from tests/roi.test rename to hledger/test/roi.test diff --git a/tests/balance/sample.journal b/hledger/test/sample.journal similarity index 100% rename from tests/balance/sample.journal rename to hledger/test/sample.journal diff --git a/tests/stats.test b/hledger/test/stats.test similarity index 100% rename from tests/stats.test rename to hledger/test/stats.test diff --git a/tests/tags.test b/hledger/test/tags.test similarity index 100% rename from tests/tags.test rename to hledger/test/tags.test diff --git a/tests/timeclock.test b/hledger/test/timeclock.test similarity index 100% rename from tests/timeclock.test rename to hledger/test/timeclock.test diff --git a/tests/timedot.test b/hledger/test/timedot.test similarity index 100% rename from tests/timedot.test rename to hledger/test/timedot.test diff --git a/tests/balance/balance-multicol.journal b/tests/balance/balance-multicol.journal deleted file mode 120000 index 2778dab4c..000000000 --- a/tests/balance/balance-multicol.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/balance-multicol.journal \ No newline at end of file diff --git a/tests/balance/bcexample.hledger b/tests/balance/bcexample.hledger deleted file mode 120000 index cacd51edf..000000000 --- a/tests/balance/bcexample.hledger +++ /dev/null @@ -1 +0,0 @@ -../../examples/bcexample.hledger \ No newline at end of file diff --git a/tests/cli/alias.journal b/tests/cli/alias.journal deleted file mode 120000 index 68aaf3749..000000000 --- a/tests/cli/alias.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/alias.journal \ No newline at end of file diff --git a/tests/cli/business.journal b/tests/cli/business.journal deleted file mode 120000 index 4c0fd57ac..000000000 --- a/tests/cli/business.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/business.journal \ No newline at end of file diff --git a/tests/cli/personal.journal b/tests/cli/personal.journal deleted file mode 120000 index 0cce22bf9..000000000 --- a/tests/cli/personal.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/personal.journal \ No newline at end of file diff --git a/tests/i18n/chinese.journal b/tests/i18n/chinese.journal deleted file mode 120000 index 72539a882..000000000 --- a/tests/i18n/chinese.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/chinese.journal \ No newline at end of file diff --git a/tests/journal/status.journal b/tests/journal/status.journal deleted file mode 120000 index 588a79686..000000000 --- a/tests/journal/status.journal +++ /dev/null @@ -1 +0,0 @@ -../../examples/status.journal \ No newline at end of file diff --git a/tests/sample.journal b/tests/sample.journal deleted file mode 120000 index 620947e07..000000000 --- a/tests/sample.journal +++ /dev/null @@ -1 +0,0 @@ -../examples/sample.journal \ No newline at end of file