[build-path-prefix-map-spec] 05/50: Split tree into producers vs consumers

Ximin Luo infinity0 at debian.org
Fri Mar 10 15:17:18 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 bf09addcedc30f339ab270afa2ddf041ac248158
Author: Ximin Luo <infinity0 at debian.org>
Date:   Tue Jan 17 19:41:12 2017 +0100

    Split tree into producers vs consumers
---
 .gitignore                                         |   5 +-
 Makefile => consume/Makefile                       |   0
 {afl-in-split => consume/afl-in-split}/1.in        | Bin
 apply.out.1 => consume/apply.out.1                 |   0
 apply.out.2 => consume/apply.out.2                 |   0
 source_prefix_map.h => consume/source_prefix_map.h |   0
 split.c => consume/split.c                         |   0
 split.py => consume/split.py                       |   4 +-
 split.py => consume/urlencode.py                   |   6 +-
 2sep.mk => produce/split_2sep.mk                   |   0
 2sep.sh => produce/split_2sep.sh                   |   0
 char.mk => produce/split_char.mk                   |   0
 char.sh => produce/split_char.sh                   |   0
 newline.mk => produce/split_newline.mk             |   0
 newline.sh => produce/split_newline.sh             |   0
 test-all.sh => produce/split_test-all.sh           |   4 +-
 char.mk => produce/urlencode.mk                    |  13 ++-
 results.html                                       |  98 ---------------------
 18 files changed, 23 insertions(+), 107 deletions(-)

diff --git a/.gitignore b/.gitignore
index c48c113..90cdd76 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,3 @@
-/split
-/afl-out-*
+/consume/split
+/consume/afl-out-*
+/produce/*.html
diff --git a/Makefile b/consume/Makefile
similarity index 100%
rename from Makefile
rename to consume/Makefile
diff --git a/afl-in-split/1.in b/consume/afl-in-split/1.in
similarity index 100%
rename from afl-in-split/1.in
rename to consume/afl-in-split/1.in
diff --git a/apply.out.1 b/consume/apply.out.1
similarity index 100%
rename from apply.out.1
rename to consume/apply.out.1
diff --git a/apply.out.2 b/consume/apply.out.2
similarity index 100%
rename from apply.out.2
rename to consume/apply.out.2
diff --git a/source_prefix_map.h b/consume/source_prefix_map.h
similarity index 100%
rename from source_prefix_map.h
rename to consume/source_prefix_map.h
diff --git a/split.c b/consume/split.c
similarity index 100%
rename from split.c
rename to consume/split.c
diff --git a/split.py b/consume/split.py
similarity index 74%
copy from split.py
copy to consume/split.py
index 041375e..7ab19fa 100755
--- a/split.py
+++ b/consume/split.py
@@ -6,12 +6,12 @@ import sys
 # Parsing the variable
 
 val = os.getenv("SOURCE_PREFIX_MAP", "")
-pm = [r.rsplit("=", 1) for r in reversed(list(filter(None, val.split('\t'))))]
+pm = [r.rsplit("=", 1) for r in filter(None, val.split('\t'))]
 
 # Applying the variable
 
 def normprefix(string):
-    for src, dst in pm:
+    for src, dst in reversed(pm):
         if string.startswith(src):
             return dst + string[len(src):]
     return string
diff --git a/split.py b/consume/urlencode.py
similarity index 74%
rename from split.py
rename to consume/urlencode.py
index 041375e..1b4dcd7 100755
--- a/split.py
+++ b/consume/urlencode.py
@@ -1,17 +1,19 @@
 #!/usr/bin/python3
 
 import os
+import re
 import sys
+from urllib.parse import parse_qsl
 
 # Parsing the variable
 
 val = os.getenv("SOURCE_PREFIX_MAP", "")
-pm = [r.rsplit("=", 1) for r in reversed(list(filter(None, val.split('\t'))))]
+pm = parse_qsl(val)
 
 # Applying the variable
 
 def normprefix(string):
-    for src, dst in pm:
+    for src, dst in reversed(pm):
         if string.startswith(src):
             return dst + string[len(src):]
     return string
diff --git a/2sep.mk b/produce/split_2sep.mk
similarity index 100%
rename from 2sep.mk
rename to produce/split_2sep.mk
diff --git a/2sep.sh b/produce/split_2sep.sh
similarity index 100%
rename from 2sep.sh
rename to produce/split_2sep.sh
diff --git a/char.mk b/produce/split_char.mk
similarity index 100%
copy from char.mk
copy to produce/split_char.mk
diff --git a/char.sh b/produce/split_char.sh
similarity index 100%
rename from char.sh
rename to produce/split_char.sh
diff --git a/newline.mk b/produce/split_newline.mk
similarity index 100%
rename from newline.mk
rename to produce/split_newline.mk
diff --git a/newline.sh b/produce/split_newline.sh
similarity index 100%
rename from newline.sh
rename to produce/split_newline.sh
diff --git a/test-all.sh b/produce/split_test-all.sh
similarity index 94%
rename from test-all.sh
rename to produce/split_test-all.sh
index a7efab5..b90b116 100755
--- a/test-all.sh
+++ b/produce/split_test-all.sh
@@ -69,7 +69,7 @@ SEP="
" checkall "vtab" "
" char
 # It is acceptable in XML 1.0/1.1
 SEP="
" checkall "next-line 0x85" "
" char
 
-} 2>&1 | tee /dev/stderr | to_html > results.html
+} 2>&1 | tee /dev/stderr | to_html > split_results.html
 
 echo >&2 "===="
-echo >&2 "tests succeeded, html log available in results.html"
+echo >&2 "tests succeeded, html log available in split_results.html"
diff --git a/char.mk b/produce/urlencode.mk
similarity index 53%
rename from char.mk
rename to produce/urlencode.mk
index 4f24e74..af898f3 100755
--- a/char.mk
+++ b/produce/urlencode.mk
@@ -2,7 +2,18 @@
 
 # Setting the variable
 
-export override SOURCE_PREFIX_MAP := $(if $(SOURCE_PREFIX_MAP),$(SOURCE_PREFIX_MAP)$(SEP),)a=b
+spm_encode = $(subst\
+$(empty) $(empty),+,$(subst\
+=,%3D,$(subst\
+;,%3B,$(subst\
++,%2B,$(subst\
+&,%26,$(subst\
+%,%25,$(1)))))))
+
+export override SOURCE_PREFIX_MAP := $(if $(SOURCE_PREFIX_MAP),$(SOURCE_PREFIX_MAP)&,)$(call\
+spm_encode,a a=xxx)=$(call\
+spm_encode,b b)
+
 print-%:; @echo "$($*)"
 default: print-SOURCE_PREFIX_MAP
 
diff --git a/results.html b/results.html
deleted file mode 100644
index aa348ed..0000000
--- a/results.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-<title>results</title><style>pre { border:1px solid black; }</style></head><body><p>Try c+p the below into a text editor and/ or into <a href="https://validator.w3.org/#validate_by_input">W3C Markup Validator</a>.</p><div>
-testing newline
-<pre>
-++ ./newline.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./newline.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
-a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
-a=b'
-++ ./newline.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./newline.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
-a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
-a=b'
-</pre>
-testing tab
-<pre>
-++ ./char.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y	a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y	a=b'
-++ ./char.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y	a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y	a=b'
-</pre>
-testing record-separator 0x1E
-<pre>
-++ ./char.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-++ ./char.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-</pre>
-testing 2-separators 0x1E and 0x1F
-<pre>
-++ ./2sep.sh
-+ test $'a\037b' = $'a\037b'
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}y'
-++ ./2sep.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}y
ab' = '/lol/wtf=bbq/project std::ftw???\latex{evil}y
ab'
-++ ./2sep.mk
-+ test $'a\037b' = $'a\037b'
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}y'
-++ ./2sep.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}y
ab' = '/lol/wtf=bbq/project std::ftw???\latex{evil}y
ab'
-</pre>
-testing form-feed
-<pre>
-++ ./char.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-++ ./char.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-</pre>
-testing vtab
-<pre>
-++ ./char.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-++ ./char.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-</pre>
-testing next-line 0x85
-<pre>
-++ ./char.sh
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.sh
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-++ ./char.mk
-+ test a=b = a=b
-++ SOURCE_PREFIX_MAP='/lol/wtf=bbq/project std::ftw???\latex{evil}=y'
-++ ./char.mk
-+ test '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b' = '/lol/wtf=bbq/project std::ftw???\latex{evil}=y
a=b'
-</pre>
-</div></body></html>

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