-TEST=run checkpoint diff
-run: run-only normalize
-run-only:
- python -u ./TestPeers.py > TestPeers.out 2>&1
-
-normalize: TestPeers.out.nor TestPeers.ref.nor
-TestPeers.out.nor: TestPeers.out
- $(normalize) TestPeers.out > TestPeers.out.nor
-TestPeers.ref.nor: TestPeers.ref
- $(normalize) TestPeers.ref > TestPeers.ref.nor
-
-diff: normalize
- @echo '<< REF OUT>>'
- diff TestPeers.ref.nor TestPeers.out.nor
-
-checkpoint:
- @echo adopting latest run as reference
- cp TestPeers.out TestPeers.ref
- cp TestPeers.out.nor TestPeers.ref.nor
-
-mrun:
- python -u ./TestPeers.py -m > TestPeers.mout 2>&1
-brun:
- python -u ./TestPeers.py -b > TestPeers.bout 2>&1
-prun:
- python -u ./TestPeers.py -p > TestPeers.pout 2>&1
-pbrun:
- python -u ./TestPeers.py -p -b > TestPeers.pbout 2>&1
-phrun:
- python -u ./TestPeers.py -p -H > TestPeers.phout 2>&1
+TEST=run diff ckp
+run: run-en
+diff: diff-en
+ckp: ckp-en
+
+%.nout: %.out
+ $(normalize) $*.out > $@
+%.nref: %.ref
+ $(normalize) $*.ref > $@
+
+# variant runs
+VARIANT-TESTS :=
+
+# run end of test (after it was populated) with mini size
+VARIANT-TESTS += run-em
+run-em:
+ $(PY) ./TestPeers.py -e -m > testpeers-em.out 2>&1
+VARIANT-TESTS += run-en
+run-en:
+ $(PY) ./TestPeers.py -e > testpeers-en.out 2>&1
+# big size
+VARIANT-TESTS += run-eb
+run-eb:
+ $(PY) ./TestPeers.py -e -b > testpeers-eb.out 2>&1
+# huge size
+VARIANT-TESTS += run-eh
+run-eh:
+ $(PY) ./TestPeers.py -e -H > testpeers-eh.out 2>&1
+
+# normal size - performs diff and checkpoint (adopt result)
+VARIANT-TESTS += diff-en
+diff-en: testpeers-en.nref testpeers-en.nout
+ diff testpeers-en.nref testpeers-en.nout
+VARIANT-TESTS += ckp-en
+ckp-en:
+ cp testpeers-en.out testpeers-en.ref
+ rm -f testpeers-en.n???
+
+VARIANT-TESTS += diff-eb
+diff-eb: testpeers-eb.nref testpeers-eb.nout
+ diff testpeers-eb.nref testpeers-eb.nout
+VARIANT-TESTS += ckp-eb
+ckp-eb:
+ cp testpeers-eb.out testpeers-eb.ref
+ rm -f testpeers-eb.n???
+
+VARIANT-TESTS += diff-eh
+diff-eh: testpeers-eh.nref testpeers-eh.nout
+ diff testpeers-eh.nref testpeers-eh.nout
+VARIANT-TESTS += ckp-eh
+ckp-eh:
+ cp testpeers-eh.out testpeers-eh.ref
+ rm -f testpeers-eh.n???
+
+### locally populate, various sizes
+# need to run in installed plc for gaining direct access (psycopg2 broken)
+VARIANT-TESTS += run-lpn-1
+run-lpm-1:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpm-1
+chroot-run-lpm-1:
+ $(PY) TestPeers.py -m -p -l 1 > testpeers-pm-1.out
+VARIANT-TESTS += run-lpm-2
+run-lpm-2:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpm-2
+chroot-run-lpm-2:
+ $(PY) TestPeers.py -m -p -l 2 > testpeers-pm-2.out
+
+VARIANT-TESTS += run-lpn-1
+run-lpn-1:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpn-1
+chroot-run-lpn-1:
+ $(PY) TestPeers.py -p -l 1 > testpeers-pn-1.out
+VARIANT-TESTS += run-lpn-2
+run-lpn-2:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpn-2
+chroot-run-lpn-2:
+ $(PY) TestPeers.py -p -l 2 > testpeers-pn-2.out
+
+VARIANT-TESTS += run-lpb-1
+run-lpb-1:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpb-1
+chroot-run-lpb-1:
+ $(PY) TestPeers.py -b -p -l 1 > testpeers-pb-1.out
+VARIANT-TESTS += run-lpb-2
+run-lpb-2:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lpb-2
+chroot-run-lpb-2:
+ $(PY) TestPeers.py -b -p -l 2 > testpeers-pb-2.out
+
+VARIANT-TESTS += run-lph-1
+run-lph-1:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lph-1
+chroot-run-lph-1:
+ $(PY) TestPeers.py -H -p -l 1 > testpeers-ph-1.out
+VARIANT-TESTS += run-lph-1
+run-lph-2:
+ chroot $(CHROOT) make -C $(APIDIR) -f peers-test.mk chroot-run-lph-2
+chroot-run-lph-2:
+ $(PY) TestPeers.py -H -p -l 2 > testpeers-ph-2.out
+
+
+### old-fashioned all-in-one tests - too slow
+VARIANT-TESTS += run-n
+run-n:
+ $(PY) ./TestPeers.py > testpeers-n.out 2>&1
+VARIANT-TESTS += run-m
+run-m:
+ $(PY) ./TestPeers.py -m > testpeers-m.out 2>&1
+VARIANT-TESTS += diff-m
+diff-m: testpeers-m.nref testpeers-m.nout
+ diff testpeers-m.nref testpeers-m.nout
+VARIANT-TESTS += ckp-m
+ckp-m:
+ cp testpeers-m.out testpeers-m.ref
+ rm -f testpeers-m.n???
+
+### populating only, but remotely - too slow too
+VARIANT-TESTS += run-p run-pn
+run-pn:
+ $(PY) ./TestPeers.py -p > testpeers-pn.out 2>&1
+VARIANT-TESTS += run-pb
+run-pb:
+ $(PY) ./TestPeers.py -p -b > testpeers-pb.out 2>&1
+VARIANT-TESTS += run-ph
+run-ph:
+ $(PY) ./TestPeers.py -p -H > testpeers-ph.out 2>&1
+
+##############################
+VARIANTS-DB :=
+
+DB1=populate-1.sql
+DB2=populate-2.sql
+
+VARIANT-DB += save-n
+save-n: save-n-1 save-n-2
+save-n-1: DB1=populate-n-1.sql
+save-n-1: save1
+save-n-2: DB2=populate-n-2.sql
+save-n-2:save2
+
+VARIANT-DB += save-b
+save-b: save-b-1 save-b-2
+save-b-1: DB1=populate-b-1.sql
+save-b-1: save1
+save-b-2: DB2=populate-b-2.sql
+save-b-2:save2
+
+VARIANT-DB += save-h
+save-h: save-h-1 save-h-2
+save-h-1: DB1=populate-h-1.sql
+save-h-1: save1
+save-h-2: DB2=populate-h-2.sql
+save-h-2:save2
+
+save1:
+ ssh $(PLC1SSH) make -C new_plc_api -f peers-test.mk DBDUMPFILE=$(DB1) db-dump
+ scp $(PLC1SSH):new_plc_api/$(DB1) .
+save2:
+ ssh $(PLC2SSH) make -C new_plc_api -f peers-test.mk DBDUMPFILE=$(DB2) db-dump
+ scp $(PLC2SSH):new_plc_api/$(DB2) .
+
+VARIANT-DB += restore-n
+restore-n: restore-n-1 restore-n-2
+restore-n-1: DB1=populate-n-1.sql
+restore-n-1: restore1
+restore-n-2: DB2=populate-n-2.sql
+restore-n-2:restore2
+
+VARIANT-DB += restore-b
+restore-b: restore-b-1 restore-b-2
+restore-b-1: DB1=populate-b-1.sql
+restore-b-1: restore1
+restore-b-2: DB2=populate-b-2.sql
+restore-b-2:restore2
+
+VARIANT-DB += restore-h
+restore-h: restore-h-1 restore-h-2
+restore-h-1: DB1=populate-h-1.sql
+restore-h-1: restore1
+restore-h-2: DB2=populate-h-2.sql
+restore-h-2:restore2
+
+restore1:
+ scp $(DB1) $(PLC1SSH):new_plc_api/
+ ssh $(PLC1SSH) make -C new_plc_api -f peers-test.mk DBDUMPFILE=$(DB1) dbrestore
+restore2:
+ scp $(DB2) $(PLC2SSH):new_plc_api/
+ ssh $(PLC2SSH) make -C new_plc_api -f peers-test.mk DBDUMPFILE=$(DB2) dbrestore