summaryrefslogtreecommitdiff
path: root/csmith-fuzzing/predicate.py
diff options
context:
space:
mode:
authorAdrian Taylor <adetaylor@chromium.org>2020-08-28 15:25:21 -0700
committerEmilio Cobos Álvarez <emilio@crisal.io>2020-08-29 17:11:52 +0200
commit91d9600c33260202f3b438f14ad077be3bdc81e7 (patch)
tree4ba02f8e6caa18709751da8621df07f747b33f98 /csmith-fuzzing/predicate.py
parent4608a11b5cbdcc779bd78c0e14735864a95ed893 (diff)
Allow grepping bindings for multiple patterns.
Diffstat (limited to 'csmith-fuzzing/predicate.py')
-rwxr-xr-xcsmith-fuzzing/predicate.py7
1 files changed, 4 insertions, 3 deletions
diff --git a/csmith-fuzzing/predicate.py b/csmith-fuzzing/predicate.py
index 043a9935..8925755c 100755
--- a/csmith-fuzzing/predicate.py
+++ b/csmith-fuzzing/predicate.py
@@ -80,6 +80,7 @@ reducing.add_argument(
reducing.add_argument(
"--bindings-grep",
type=str,
+ nargs='*',
help="Exit non-zero if the given regexp pattern is not found in the emitted bindings.")
reducing.add_argument(
@@ -218,11 +219,11 @@ def run_bindgen(args, bindings):
if not args.expect_bindgen_fail and child.returncode != 0:
exit_1("Error: running `bindgen` failed", child)
- if args.bindings_grep:
- pattern = regexp(args.bindings_grep)
+ for arg in args.bindings_grep:
+ pattern = regexp(arg)
with open(bindings, mode="r") as f:
if not contains(pattern, f):
- print("Error: expected the emitted bindings to contain '{}', but they didn't".format(args.bindings_grep))
+ print("Error: expected the emitted bindings to contain '{}', but they didn't".format(arg))
print("---------- {} ----------------------------------------------".format(bindings))
f.seek(0)
print(f.read())