[build-path-prefix-map-spec] 10/50: Add more test cases and make the behaviour more uniform

Ximin Luo infinity0 at debian.org
Fri Mar 10 15:17:19 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 4fe4224cb2cbff4e07ff4046697936d96b47cb9e
Author: Ximin Luo <infinity0 at debian.org>
Date:   Mon Jan 23 20:10:44 2017 +0100

    Add more test cases and make the behaviour more uniform
---
 consume/Makefile                                             | 8 ++++----
 consume/hexsplit.js                                          | 6 ++++--
 consume/hexsplit.py                                          | 2 +-
 consume/testcases/{0.0.hexsplit.env => 0.basic.hexsplit.env} | 0
 consume/testcases/{0.0.in => 0.basic.in}                     | 0
 consume/testcases/{0.0.out => 0.basic.out}                   | 0
 consume/testcases/0.empty-ok.hexsplit.env                    | 1 +
 consume/testcases/0.empty-ok.in                              | 1 +
 consume/testcases/0.empty-ok.out                             | 1 +
 consume/testcases/1.many-=-not-ok.hexsplit.env               | 1 +
 consume/testcases/1.many-=-not-ok.in                         | 1 +
 consume/testcases/1.many-=-not-ok.out                        | 0
 consume/testcases/README                                     | 6 +++---
 13 files changed, 17 insertions(+), 10 deletions(-)

diff --git a/consume/Makefile b/consume/Makefile
index 77cdf54..396d614 100644
--- a/consume/Makefile
+++ b/consume/Makefile
@@ -20,12 +20,12 @@ check: $(ALL_FORMATS:%=check-%)
 check-generic = \
 	set -x; for i in $(1); do \
 	  ./$$i $$(cat $(T)$(4).in) | diff -ru - "$(T)$(4).in" || exit 1; \
-	  tmpout=$(T)$(4).$(2).env.tmpout; \
+	  tmpout="$(T)$(4).$(2).env.tmpout"; \
 	  BUILD_PATH_PREFIX_MAP="$$(cat $(T)$(4).$(2).env)" \
 	  ./$$i $$(cat $(T)$(4).in) > "$$tmpout"; \
-	  test $$? = $(3) && diff -ru "$$tmpout" $(T)$(4).out && \
+	  test $$? = $(3) && diff -ru "$$tmpout" "$(T)$(4).out" && \
 	    rm -f "$$tmpout" || { rm -f "$$tmpout"; exit 1; }; \
-	done
+	done;
 
 .PHONY: check-%
 check-%:
@@ -34,7 +34,7 @@ check-%:
 	$(foreach case,$(TESTCASES_1),$(call check-generic,$(ALLCHECK_$*),$*,1,$(case)))
 
 make-afl-test-case = \
-	cat testcases/$(3).$(1).env testcases/$(3).in > afl-in-$(1)/$(3).in
+	cat testcases/$(3).$(1).env testcases/$(3).in > afl-in-$(1)/$(3).in;
 
 afl-in-%: $(wildcard $(T)/*.in) $(wildcard $(T)/*.env)
 	mkdir -p "$@"
diff --git a/consume/hexsplit.js b/consume/hexsplit.js
index 77a1e9d..6ceb3f3 100755
--- a/consume/hexsplit.js
+++ b/consume/hexsplit.js
@@ -1,11 +1,13 @@
 #!/usr/bin/nodejs
 
 var unquote = function(x) {
-    return x.split(/=/g, 2).map(unescape);
+    var parts = x.split(/=/g).map(unescape);
+    if (parts.length !== 2) throw "invalid value: " + x;
+    return parts;
 };
 
 var parse_prefix_map = function(x) {
-    return x ? x.split(/:/g).map(unquote) : [];
+    return x ? x.split(/:+/g).map(unquote) : [];
 }
 
 var map_prefix = function(string, pm) {
diff --git a/consume/hexsplit.py b/consume/hexsplit.py
index 9c07aeb..e4bffba 100755
--- a/consume/hexsplit.py
+++ b/consume/hexsplit.py
@@ -11,7 +11,7 @@ def _dequote(part):
     return subs[0] + "".join(chr(int(sub[0:2], 16)) + sub[2:] for sub in subs[1:])
 
 def decode(prefix_str):
-    tuples = (part.split("=") for part in prefix_str.split(":")) if prefix_str else ()
+    tuples = (part.split("=") for part in prefix_str.split(":") if part) if prefix_str else ()
     # Will raise if any tuple can't be destructured into a pair
     return [(_dequote(src), _dequote(dst)) for src, dst in tuples]
 
diff --git a/consume/testcases/0.0.hexsplit.env b/consume/testcases/0.basic.hexsplit.env
similarity index 100%
rename from consume/testcases/0.0.hexsplit.env
rename to consume/testcases/0.basic.hexsplit.env
diff --git a/consume/testcases/0.0.in b/consume/testcases/0.basic.in
similarity index 100%
rename from consume/testcases/0.0.in
rename to consume/testcases/0.basic.in
diff --git a/consume/testcases/0.0.out b/consume/testcases/0.basic.out
similarity index 100%
rename from consume/testcases/0.0.out
rename to consume/testcases/0.basic.out
diff --git a/consume/testcases/0.empty-ok.hexsplit.env b/consume/testcases/0.empty-ok.hexsplit.env
new file mode 100644
index 0000000..9dc8d42
--- /dev/null
+++ b/consume/testcases/0.empty-ok.hexsplit.env
@@ -0,0 +1 @@
+/a/b%3dyyy=ERROR:/a=lol::/b=foo:/a/b%3dyyy=secreteh
diff --git a/consume/testcases/0.empty-ok.in b/consume/testcases/0.empty-ok.in
new file mode 120000
index 0000000..997afa5
--- /dev/null
+++ b/consume/testcases/0.empty-ok.in
@@ -0,0 +1 @@
+0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/0.empty-ok.out b/consume/testcases/0.empty-ok.out
new file mode 120000
index 0000000..3d3fecb
--- /dev/null
+++ b/consume/testcases/0.empty-ok.out
@@ -0,0 +1 @@
+0.basic.out
\ No newline at end of file
diff --git a/consume/testcases/1.many-=-not-ok.hexsplit.env b/consume/testcases/1.many-=-not-ok.hexsplit.env
new file mode 100644
index 0000000..5c6bb91
--- /dev/null
+++ b/consume/testcases/1.many-=-not-ok.hexsplit.env
@@ -0,0 +1 @@
+/a/b=yyy=ERROR:/a=lol:/b=foo:/a/b%3dyyy=secreteh
diff --git a/consume/testcases/1.many-=-not-ok.in b/consume/testcases/1.many-=-not-ok.in
new file mode 120000
index 0000000..997afa5
--- /dev/null
+++ b/consume/testcases/1.many-=-not-ok.in
@@ -0,0 +1 @@
+0.basic.in
\ No newline at end of file
diff --git a/consume/testcases/1.many-=-not-ok.out b/consume/testcases/1.many-=-not-ok.out
new file mode 100644
index 0000000..e69de29
diff --git a/consume/testcases/README b/consume/testcases/README
index a5beac2..423857e 100644
--- a/consume/testcases/README
+++ b/consume/testcases/README
@@ -1,5 +1,5 @@
 Naming convention is like:
 
-<expected return code>.<unique number>.in
-<expected return code>.<unique number>.out
-<expected return code>.<unique number>.<format-name>.env
+<expected return code>.<unique name>.in
+<expected return code>.<unique name>.out
+<expected return code>.<unique name>.<format-name>.env

-- 
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