build all: erl -pa ../lager/ebin -make clean: -rm ebin/*.beam release: all test ! -f rel/db/treesize || \ test $$(cat rel/db/treesize) = 0 && \ rm -rf rel rm -rf rel mkdir rel ./makerelease.erl (cd rel; \ ln -s ../../plop/test .) cp httpd_props.conf rel cp catlfish.config rel cp storage_node.config rel cp storage_node_httpd.conf rel mkdir rel/catlfish mkdir rel/db mkdir rel/mergedb mkdir rel/mergedb/chains touch rel/mergedb/logorder printf "0" > rel/db/treesize cp -r webroot rel/catlfish test -d rel/catlfish/webroot/log || mkdir rel/catlfish/webroot/log tests-prepare: rm -r rel/known_roots || true mkdir rel/known_roots cp tools/testcerts/roots/* rel/known_roots mkdir -p test/nodes/frontend-1/log mkdir -p test/nodes/storage-1/log mkdir -p test/nodes/storage-2/log mkdir -p test/nodes/signing-1/log cp test/config/frontend-1.config rel cp test/config/storage-1.config rel cp test/config/signing-1.config rel cp -r test/config/privatekeys rel cp -r test/config/publickeys rel rm -r rel/tests || true mkdir -p rel/tests/machine/machine-1/db printf "0" > rel/tests/machine/machine-1/db/treesize mkdir -p rel/tests/machine/machine-2/db printf "0" > rel/tests/machine/machine-2/db/treesize touch rel/tests/machine/machine-1/db/index touch rel/tests/machine/machine-1/db/newentries NODES=frontend-1 storage-1 signing-1 TESTURLS=https://127.0.0.1:8080/ https://127.0.0.1:8081/ https://127.0.0.1:8082/ https://127.0.0.1:8088/ tests-start: @for node in $(NODES); do \ (cd rel ; bin/run_erl -daemon ../test/nodes/$$node/ ../test/nodes/$$node/log/ "exec bin/erl -config $$node") \ done @for i in 1 2 3 4 5 6 7 8 9 10; do \ echo "waiting for system to start" ; \ sleep 0.5 ; \ allstarted=1 ; \ for testurl in $(TESTURLS); do \ if curl -s -k $$testurl > /dev/null ; then : ; else allstarted=0 ; fi ; \ : ; \ done ; \ if [ $$allstarted -eq 1 ]; then break ; fi ; \ done tests-run: @(cd tools ; python testcase1.py ) || echo "Tests failed" @(cd tools ; python fetchallcerts.py https://127.0.0.1:8080/) || echo "Verification failed" @(cd tools ; python submitcert.py --store testcerts/cert1.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/cert2.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/cert3.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/cert4.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/cert5.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/pre1.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python submitcert.py --store testcerts/pre2.txt --check-sct --sct-file=../rel/submittedcerts https://127.0.0.1:8080/) || echo "Submission failed" @(cd tools ; python merge.py --baseurl https://127.0.0.1:8080/ --frontend https://127.0.0.1:8082/ --storage https://127.0.0.1:8081/ --mergedb ../rel/mergedb --signing https://127.0.0.1:8088/ --own-keyname merge-1 --own-keyfile ../rel/privatekeys/merge-1-private.pem) || echo "Merge failed" tests-run2: @(cd tools ; python verifysct.py --sct-file=../rel/submittedcerts --parallel 1 https://127.0.0.1:8080/) || echo "Verification of SCT:s failed" tests-stop: @for node in $(NODES); do \ ./tools/halt.py ./rel/bin/to_erl test/nodes/$$node/ ; \ done tests-wait: sleep 5 tests: @make tests-prepare @make tests-start @make tests-run @make tests-wait @make tests-stop @make tests-wait @make tests-start @make tests-run2 @make tests-wait @make tests-stop # Unit testing. check: all test/check.erl