mirror of
https://github.com/simonmichael/hledger.git
synced 2024-11-07 21:15:19 +03:00
makefile: clean up tests, add warningstest, committest, releasetest targets
This commit is contained in:
parent
8d28850580
commit
1bc8f8430f
58
Makefile
58
Makefile
@ -37,6 +37,9 @@ default: tag hledger
|
||||
hledger: setversion
|
||||
ghc --make hledger.hs -o hledger $(BUILDFLAGS) # -O
|
||||
|
||||
hledgernowarnings: setversion
|
||||
ghc --make hledger.hs -o hledger $(BUILDFLAGS) -Werror -v0
|
||||
|
||||
# build the profiling-enabled binary. You may need to cabal install
|
||||
# --reinstall -p some libs.
|
||||
hledgerp: setversion
|
||||
@ -88,33 +91,56 @@ tools/generateledger: tools/generateledger.hs
|
||||
######################################################################
|
||||
# TESTING
|
||||
|
||||
# run all tests
|
||||
# quick code tests - run all the time
|
||||
test: unittest doctest haddocktest
|
||||
|
||||
# moderate pre-commit tests
|
||||
# run before recording or before send/pushing, your choice
|
||||
committest: unittest doctest haddocktest warningstest
|
||||
@(cabal configure -fvty -fhapps \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# thorough, pre-release tests - run before release
|
||||
releasetest: unittest doctest haddocktest warningstest cabaltest
|
||||
@dist/build/hledger/hledger test 2>&1 | tail -1 | grep -q 'Errors: 0 Failures: 0'
|
||||
|
||||
# run unit tests, without waiting for compilation
|
||||
unittest:
|
||||
runghc hledger.hs test
|
||||
@(runghc hledger.hs test \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# run doc tests
|
||||
doctest: tools/doctest
|
||||
@tools/doctest Commands/Add.hs
|
||||
@tools/doctest Tests.hs
|
||||
@(tools/doctest Commands/Add.hs \
|
||||
&& tools/doctest Tests.hs \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# make sure we have no haddock errors
|
||||
haddocktest:
|
||||
@make --quiet haddock
|
||||
@(make --quiet haddock \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# make sure the normal build has no warnings
|
||||
warningstest:
|
||||
@(make -s clean \
|
||||
&& make --no-print-directory -s hledgernowarnings \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# make sure cabal is happy in all ways
|
||||
cabaltest: setversion
|
||||
@(cabal clean \
|
||||
&& cabal check \
|
||||
&& cabal configure -fvty -fhapps \
|
||||
&& cabal build \
|
||||
&& echo $@ passed) || echo $@ FAILED
|
||||
|
||||
# run performance tests and save results in profs/.
|
||||
# Requires some tests defined in bench.tests and some executables defined above.
|
||||
# Requires some commands defined in bench.tests and some executables defined above.
|
||||
benchmark: sampleledgers bench.tests tools/bench
|
||||
tools/bench -fbench.tests $(BENCHEXES) | tee profs/$(TIME).bench
|
||||
@rm -f benchresults.*
|
||||
@(cd profs; rm -f latest.bench; ln -s $(TIME).bench latest.bench)
|
||||
|
||||
# get a debug prompt
|
||||
ghci:
|
||||
ghci hledger.hs
|
||||
|
||||
# generate, save and display a standard profile
|
||||
prof: sampleledgers hledgerp
|
||||
@echo "Profiling $(PROFCMD)"
|
||||
@ -140,6 +166,10 @@ coverage: sampleledgers hledgercov
|
||||
cd profs/coverage; rm -f index.html; ln -s hpc_index.html index.html
|
||||
$(VIEWHTMLCMD) profs/coverage/index.html
|
||||
|
||||
# get a debug prompt
|
||||
ghci:
|
||||
ghci hledger.hs
|
||||
|
||||
# generate standard sample ledgers
|
||||
sampleledgers: sample.ledger 100x100x10.ledger 1000x1000x10.ledger 10000x1000x10.ledger 100000x1000x10.ledger
|
||||
|
||||
@ -271,14 +301,6 @@ hoogleindex: $(MAIN)
|
||||
# - The cabal package uses the release version
|
||||
# - The release tag is the non-elided release version.
|
||||
|
||||
# run pre-release checks: cabal is happy, the code builds, tests pass..
|
||||
check: setversion test
|
||||
cabal clean
|
||||
cabal check
|
||||
cabal configure -fvty -fhapps
|
||||
cabal build
|
||||
dist/build/hledger/hledger test 2>&1 | tail -1 | grep -q 'Errors: 0 Failures: 0'
|
||||
|
||||
# Build a cabal release, tag the repo and maybe upload to hackage.
|
||||
# Don't forget to update VERSION if needed. Examples:
|
||||
# releasing 0.5: set VERSION to 0.5, make release hackageupload
|
||||
|
Loading…
Reference in New Issue
Block a user