[build-path-prefix-map-spec] 27/50: More systematic test cases

Ximin Luo infinity0 at debian.org
Fri Mar 10 15:17:20 UTC 2017


This is an automated email from the git hooks/post-receive script.

infinity0 pushed a commit to branch master
in repository build-path-prefix-map-spec.

commit bd03eb13b272467a527b3af267510eacd58802b5
Author: Ximin Luo <infinity0 at debian.org>
Date:   Mon Feb 13 16:58:37 2017 +0100

    More systematic test cases
---
 consume/Makefile                                   | 34 +++++++++++++---------
 consume/testcases/0.basic.in                       |  2 +-
 consume/testcases/0.basic.out                      |  2 +-
 consume/testcases/0.basic.pecsplit.env             |  2 +-
 consume/testcases/{0.basic.in => 0.ordering.in}    |  0
 consume/testcases/0.ordering.out                   |  3 ++
 consume/testcases/0.ordering.pecsplit.env          |  1 +
 consume/testcases/pecsplit.0.allbytes-ok.in        |  2 +-
 consume/testcases/pecsplit.0.allbytes-ok.out       |  2 +-
 consume/testcases/pecsplit.0.empty-ok.env          |  2 +-
 consume/testcases/pecsplit.0.empty-ok.in           |  2 +-
 consume/testcases/pecsplit.0.empty-ok.out          |  2 +-
 .../{pecsplit.1.long-pc.in => pecsplit.1.in}       |  0
 consume/testcases/pecsplit.1.long-pc-1.env         |  1 +
 consume/testcases/pecsplit.1.long-pc-2.env         |  1 +
 consume/testcases/pecsplit.1.long-pc-3.env         |  1 +
 consume/testcases/pecsplit.1.long-pc-4.env         |  1 +
 consume/testcases/pecsplit.1.long-pc-5.env         |  1 +
 consume/testcases/pecsplit.1.long-pc.env           |  1 -
 consume/testcases/pecsplit.1.many-=-not-ok.env     |  2 +-
 consume/testcases/pecsplit.1.many-=-not-ok.in      |  1 -
 consume/testcases/pecsplit.1.many-=-not-ok.out     |  0
 .../{pecsplit.1.long-pc.out => pecsplit.1.out}     |  0
 consume/testcases/pecsplit.1.plain-pc-1.env        |  1 +
 consume/testcases/pecsplit.1.plain-pc-2.env        |  1 +
 consume/testcases/pecsplit.1.plain-pc-3.env        |  1 +
 consume/testcases/pecsplit.1.plain-pc-4.env        |  1 +
 consume/testcases/pecsplit.1.plain-pc-5.env        |  1 +
 consume/testcases/pecsplit.1.plain-pc.env          |  1 -
 consume/testcases/pecsplit.1.plain-pc.in           |  1 -
 consume/testcases/pecsplit.1.plain-pc.out          |  0
 consume/testcases/pecsplit.1.short-pc-2.env        |  1 +
 consume/testcases/pecsplit.1.short-pc-4.env        |  1 +
 consume/testcases/pecsplit.1.short-pc-5.env        |  1 +
 consume/testcases/pecsplit.1.short-pc.env          |  1 -
 consume/testcases/pecsplit.1.short-pc.in           |  1 -
 consume/testcases/pecsplit.1.short-pc.out          |  0
 consume/testcases/pecsplit.1.zero-=-not-ok.env     |  2 +-
 consume/testcases/pecsplit.1.zero-=-not-ok.in      |  1 -
 consume/testcases/pecsplit.1.zero-=-not-ok.out     |  0
 40 files changed, 47 insertions(+), 31 deletions(-)

diff --git a/consume/Makefile b/consume/Makefile
index 4d5ec71..a313ca4 100644
--- a/consume/Makefile
+++ b/consume/Makefile
@@ -16,12 +16,14 @@ AFL_MEMLIM = none
 CC ?= cc
 RUSTC ?= rustc
 
+# 1 key, e.g. "0" or "pecsplit.0"
+# 2 suffix that indicates a test, e.g. "in" or "env"
 find_testcases = \
-	TESTCASES_$(1) = $(patsubst $(T)$(1).%.in,$(1).%,$(wildcard $(T)$(1).*.in))
-$(eval $(call find_testcases,0))
-$(eval $(call find_testcases,1))
-$(foreach format,$(ALL_FORMATS),$(eval $(call find_testcases,$(format).0)))
-$(foreach format,$(ALL_FORMATS),$(eval $(call find_testcases,$(format).1)))
+	TESTCASES_$(1) = $(patsubst $(T)$(1).%.$(2),$(1).%,$(wildcard $(T)$(1).*.$(2)))
+$(eval $(call find_testcases,0,in))
+$(eval $(call find_testcases,1,in))
+$(foreach format,$(ALL_FORMATS),$(eval $(call find_testcases,$(format).0,env)))
+$(foreach format,$(ALL_FORMATS),$(eval $(call find_testcases,$(format).1,env)))
 
 .PHONY: all
 all: $(ALL_SOURCE:%=%.out)
@@ -38,11 +40,11 @@ check: $(ALL_FORMATS:%=check-%)
 # 1 progname
 # 2 format
 # 3 expected exit code
-# 4 input
-# 5 env
-# 6 output
+# 4 prefix for .in, .out
+# 5 prefix for .env
+# 6 prefix for .in, .out if $(4) doesn't exist
 check-generic = \
-	set -x; for i in $(1); do \
+	for i in $(1); do \
 	  if test -f "$(T)$(4).in.ignore-$$i"; then \
 	    set +x; \
 	    printf >&2 "\033[1;31m================================================================\033[0m\n"; \
@@ -53,12 +55,16 @@ check-generic = \
 	    set -x; \
 	    continue; \
 	  fi; \
-	  ./$$i $$(cat $(T)$(4).in) | diff -ru - "$(T)$(4).in" || exit 1; \
+	  if [ -f "$(T)$(4).in" ]; then input="$(T)$(4).in"; else input="$(T)$(6).in"; fi; \
+	  if [ -f "$(T)$(4).out" ]; then output="$(T)$(4).out"; else output="$(T)$(6).out"; fi; \
+	  set -x; \
+	  ./$$i $$(cat "$$input") | diff -ru - "$$input" || exit 1; \
 	  tmpout="$(T)$(5).env.tmpout"; \
 	  BUILD_PATH_PREFIX_MAP="$$(cat $(T)$(5).env)" \
-	  ./$$i $$(cat $(T)$(4).in) > "$$tmpout"; \
-	  test $$? = $(3) && diff -ru "$$tmpout" "$(T)$(6).out" && \
+	  ./$$i $$(cat "$$input") > "$$tmpout"; \
+	  test $$? = $(3) && diff -ru "$$tmpout" "$$output" && \
 	    rm -f "$$tmpout" || { rm -f "$$tmpout"; exit 1; }; \
+	  set +x 2>/dev/null; \
 	done;
 
 .PHONY: check-%
@@ -66,8 +72,8 @@ check-%:
 	$(MAKE) $(ALLCHECK_$*)
 	$(foreach case,$(TESTCASES_0),$(call check-generic,$(ALLCHECK_$*),$*,0,$(case),$(case).$*,$(case)))
 	$(foreach case,$(TESTCASES_1),$(call check-generic,$(ALLCHECK_$*),$*,1,$(case),$(case).$*,$(case)))
-	$(foreach case,$(TESTCASES_$*.0),$(call check-generic,$(ALLCHECK_$*),$*,0,$(case),$(case),$(case)))
-	$(foreach case,$(TESTCASES_$*.1),$(call check-generic,$(ALLCHECK_$*),$*,1,$(case),$(case),$(case)))
+	$(foreach case,$(TESTCASES_$*.0),$(call check-generic,$(ALLCHECK_$*),$*,0,$(case),$(case),$*.0))
+	$(foreach case,$(TESTCASES_$*.1),$(call check-generic,$(ALLCHECK_$*),$*,1,$(case),$(case),$*.1))
 
 make-afl-test-case = \
 	cat testcases/$(3).$(1).env testcases/$(3).in > afl-in-$(1)/$(3).in;
diff --git a/consume/testcases/0.basic.in b/consume/testcases/0.basic.in
index 2021286..abb46d4 100644
--- a/consume/testcases/0.basic.in
+++ b/consume/testcases/0.basic.in
@@ -1,3 +1,3 @@
 /a/d
 /b/1234
-/a/b=yyy/xxx
+/a/yyy/xxx
diff --git a/consume/testcases/0.basic.out b/consume/testcases/0.basic.out
index bca0b1d..dd5e8d6 100644
--- a/consume/testcases/0.basic.out
+++ b/consume/testcases/0.basic.out
@@ -1,3 +1,3 @@
 lol/d
 foo/1234
-secreteh/xxx
+bar/xxx
diff --git a/consume/testcases/0.basic.pecsplit.env b/consume/testcases/0.basic.pecsplit.env
index d42f184..2655c72 100644
--- a/consume/testcases/0.basic.pecsplit.env
+++ b/consume/testcases/0.basic.pecsplit.env
@@ -1 +1 @@
-/a/b%eyyy=ERROR:/a=lol:/b=foo:/a/b%eyyy=secreteh
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/0.basic.in b/consume/testcases/0.ordering.in
similarity index 100%
copy from consume/testcases/0.basic.in
copy to consume/testcases/0.ordering.in
diff --git a/consume/testcases/0.ordering.out b/consume/testcases/0.ordering.out
new file mode 100644
index 0000000..6d7c660
--- /dev/null
+++ b/consume/testcases/0.ordering.out
@@ -0,0 +1,3 @@
+lol/d
+foo/1234
+libbar-3-bison++_41:10.5-3~rc1pre3+dfsg1.1-3nmu1+b4/xxx
diff --git a/consume/testcases/0.ordering.pecsplit.env b/consume/testcases/0.ordering.pecsplit.env
new file mode 100644
index 0000000..cac1660
--- /dev/null
+++ b/consume/testcases/0.ordering.pecsplit.env
@@ -0,0 +1 @@
+/a/b%eyyy=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/b%eyyy=libbar-3-bison++_41%c10.5-3~rc1pre3+dfsg1.1-3nmu1+b4
diff --git a/consume/testcases/pecsplit.0.allbytes-ok.in b/consume/testcases/pecsplit.0.allbytes-ok.in
index 997afa5..b3bad72 120000
--- a/consume/testcases/pecsplit.0.allbytes-ok.in
+++ b/consume/testcases/pecsplit.0.allbytes-ok.in
@@ -1 +1 @@
-0.basic.in
\ No newline at end of file
+0.ordering.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.0.allbytes-ok.out b/consume/testcases/pecsplit.0.allbytes-ok.out
index 997afa5..b3bad72 120000
--- a/consume/testcases/pecsplit.0.allbytes-ok.out
+++ b/consume/testcases/pecsplit.0.allbytes-ok.out
@@ -1 +1 @@
-0.basic.in
\ No newline at end of file
+0.ordering.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.0.empty-ok.env b/consume/testcases/pecsplit.0.empty-ok.env
index 97701db..11e575a 100644
--- a/consume/testcases/pecsplit.0.empty-ok.env
+++ b/consume/testcases/pecsplit.0.empty-ok.env
@@ -1 +1 @@
-:/a/b%eyyy=ERROR:/a=lol::/b=foo:/a/b%eyyy=secreteh:
+:/a/b%eyyy=ERROR:/a=lol::/b=foo:/a/b%eyyy=libbar-3-bison++_41%c10.5-3~rc1pre3+dfsg1.1-3nmu1+b4:
diff --git a/consume/testcases/pecsplit.0.empty-ok.in b/consume/testcases/pecsplit.0.empty-ok.in
index 997afa5..b3bad72 120000
--- a/consume/testcases/pecsplit.0.empty-ok.in
+++ b/consume/testcases/pecsplit.0.empty-ok.in
@@ -1 +1 @@
-0.basic.in
\ No newline at end of file
+0.ordering.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.0.empty-ok.out b/consume/testcases/pecsplit.0.empty-ok.out
index 3d3fecb..eca9d4c 120000
--- a/consume/testcases/pecsplit.0.empty-ok.out
+++ b/consume/testcases/pecsplit.0.empty-ok.out
@@ -1 +1 @@
-0.basic.out
\ No newline at end of file
+0.ordering.out
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.1.long-pc.in b/consume/testcases/pecsplit.1.in
similarity index 100%
rename from consume/testcases/pecsplit.1.long-pc.in
rename to consume/testcases/pecsplit.1.in
diff --git a/consume/testcases/pecsplit.1.long-pc-1.env b/consume/testcases/pecsplit.1.long-pc-1.env
new file mode 100644
index 0000000..1498a1b
--- /dev/null
+++ b/consume/testcases/pecsplit.1.long-pc-1.env
@@ -0,0 +1 @@
+%%p/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.long-pc-2.env b/consume/testcases/pecsplit.1.long-pc-2.env
new file mode 100644
index 0000000..bffaf74
--- /dev/null
+++ b/consume/testcases/pecsplit.1.long-pc-2.env
@@ -0,0 +1 @@
+/a/zzz%%p=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.long-pc-3.env b/consume/testcases/pecsplit.1.long-pc-3.env
new file mode 100644
index 0000000..89026b6
--- /dev/null
+++ b/consume/testcases/pecsplit.1.long-pc-3.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=%%plol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.long-pc-4.env b/consume/testcases/pecsplit.1.long-pc-4.env
new file mode 100644
index 0000000..343bec5
--- /dev/null
+++ b/consume/testcases/pecsplit.1.long-pc-4.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo%%p:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.long-pc-5.env b/consume/testcases/pecsplit.1.long-pc-5.env
new file mode 100644
index 0000000..1b712bd
--- /dev/null
+++ b/consume/testcases/pecsplit.1.long-pc-5.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar%%p
diff --git a/consume/testcases/pecsplit.1.long-pc.env b/consume/testcases/pecsplit.1.long-pc.env
deleted file mode 100644
index c77c65e..0000000
--- a/consume/testcases/pecsplit.1.long-pc.env
+++ /dev/null
@@ -1 +0,0 @@
-/a/b%eyyy=ERROR:/a=lol%p:/b%p=foo%%%%p+:/a/b%eyyy=secreteh
diff --git a/consume/testcases/pecsplit.1.many-=-not-ok.env b/consume/testcases/pecsplit.1.many-=-not-ok.env
index 74cdfce..6622f25 100644
--- a/consume/testcases/pecsplit.1.many-=-not-ok.env
+++ b/consume/testcases/pecsplit.1.many-=-not-ok.env
@@ -1 +1 @@
-/a/b=yyy=ERROR:/a=lol:/b=foo:/a/b%eyyy=secreteh
+/a/b=yyy=ERROR:/a=lol:/b=foo:/a/byyy=bar
diff --git a/consume/testcases/pecsplit.1.many-=-not-ok.in b/consume/testcases/pecsplit.1.many-=-not-ok.in
deleted file mode 120000
index 997afa5..0000000
--- a/consume/testcases/pecsplit.1.many-=-not-ok.in
+++ /dev/null
@@ -1 +0,0 @@
-0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.1.many-=-not-ok.out b/consume/testcases/pecsplit.1.many-=-not-ok.out
deleted file mode 100644
index e69de29..0000000
diff --git a/consume/testcases/pecsplit.1.long-pc.out b/consume/testcases/pecsplit.1.out
similarity index 100%
rename from consume/testcases/pecsplit.1.long-pc.out
rename to consume/testcases/pecsplit.1.out
diff --git a/consume/testcases/pecsplit.1.plain-pc-1.env b/consume/testcases/pecsplit.1.plain-pc-1.env
new file mode 100644
index 0000000..96878de
--- /dev/null
+++ b/consume/testcases/pecsplit.1.plain-pc-1.env
@@ -0,0 +1 @@
+%s/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.plain-pc-2.env b/consume/testcases/pecsplit.1.plain-pc-2.env
new file mode 100644
index 0000000..662bc27
--- /dev/null
+++ b/consume/testcases/pecsplit.1.plain-pc-2.env
@@ -0,0 +1 @@
+/a/zzz%s=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.plain-pc-3.env b/consume/testcases/pecsplit.1.plain-pc-3.env
new file mode 100644
index 0000000..0445b2b
--- /dev/null
+++ b/consume/testcases/pecsplit.1.plain-pc-3.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=%slol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.plain-pc-4.env b/consume/testcases/pecsplit.1.plain-pc-4.env
new file mode 100644
index 0000000..857db17
--- /dev/null
+++ b/consume/testcases/pecsplit.1.plain-pc-4.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo%s:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.plain-pc-5.env b/consume/testcases/pecsplit.1.plain-pc-5.env
new file mode 100644
index 0000000..be65c2d
--- /dev/null
+++ b/consume/testcases/pecsplit.1.plain-pc-5.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar%s
diff --git a/consume/testcases/pecsplit.1.plain-pc.env b/consume/testcases/pecsplit.1.plain-pc.env
deleted file mode 100644
index af03b7f..0000000
--- a/consume/testcases/pecsplit.1.plain-pc.env
+++ /dev/null
@@ -1 +0,0 @@
-/a/b%?yyy=ERROR:/a=lol:/b=foo:/a/b%?yyy=secrete%h
diff --git a/consume/testcases/pecsplit.1.plain-pc.in b/consume/testcases/pecsplit.1.plain-pc.in
deleted file mode 120000
index 997afa5..0000000
--- a/consume/testcases/pecsplit.1.plain-pc.in
+++ /dev/null
@@ -1 +0,0 @@
-0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.1.plain-pc.out b/consume/testcases/pecsplit.1.plain-pc.out
deleted file mode 100644
index e69de29..0000000
diff --git a/consume/testcases/pecsplit.1.short-pc-2.env b/consume/testcases/pecsplit.1.short-pc-2.env
new file mode 100644
index 0000000..a67f3a9
--- /dev/null
+++ b/consume/testcases/pecsplit.1.short-pc-2.env
@@ -0,0 +1 @@
+/a/zzz%=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.short-pc-4.env b/consume/testcases/pecsplit.1.short-pc-4.env
new file mode 100644
index 0000000..f0428f4
--- /dev/null
+++ b/consume/testcases/pecsplit.1.short-pc-4.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo%:/a/yyy=bar
diff --git a/consume/testcases/pecsplit.1.short-pc-5.env b/consume/testcases/pecsplit.1.short-pc-5.env
new file mode 100644
index 0000000..57b60b4
--- /dev/null
+++ b/consume/testcases/pecsplit.1.short-pc-5.env
@@ -0,0 +1 @@
+/a/zzz=ERROR:/a=lol:/b/1234=ERROR:/b=foo:/a/yyy=bar%
diff --git a/consume/testcases/pecsplit.1.short-pc.env b/consume/testcases/pecsplit.1.short-pc.env
deleted file mode 100644
index 530c204..0000000
--- a/consume/testcases/pecsplit.1.short-pc.env
+++ /dev/null
@@ -1 +0,0 @@
-/a/b%eyyy=ERROR%:/a=lol%p%:/b%p=foo%p%p:/a/b%eyyy%=sec%creteh
diff --git a/consume/testcases/pecsplit.1.short-pc.in b/consume/testcases/pecsplit.1.short-pc.in
deleted file mode 120000
index 997afa5..0000000
--- a/consume/testcases/pecsplit.1.short-pc.in
+++ /dev/null
@@ -1 +0,0 @@
-0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.1.short-pc.out b/consume/testcases/pecsplit.1.short-pc.out
deleted file mode 100644
index e69de29..0000000
diff --git a/consume/testcases/pecsplit.1.zero-=-not-ok.env b/consume/testcases/pecsplit.1.zero-=-not-ok.env
index cbe9a44..0603429 100644
--- a/consume/testcases/pecsplit.1.zero-=-not-ok.env
+++ b/consume/testcases/pecsplit.1.zero-=-not-ok.env
@@ -1 +1 @@
-/a/byyyERROR:/a=lol:/b=foo:/a/b%+yyy=secreteh
+/a/byyyERROR:/a=lol:/b=foo:/a/byyy=bar
diff --git a/consume/testcases/pecsplit.1.zero-=-not-ok.in b/consume/testcases/pecsplit.1.zero-=-not-ok.in
deleted file mode 120000
index 997afa5..0000000
--- a/consume/testcases/pecsplit.1.zero-=-not-ok.in
+++ /dev/null
@@ -1 +0,0 @@
-0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/pecsplit.1.zero-=-not-ok.out b/consume/testcases/pecsplit.1.zero-=-not-ok.out
deleted file mode 100644
index e69de29..0000000

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/build-path-prefix-map-spec.git



More information about the Reproducible-commits mailing list