summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Wojciech Staszkiewicz <staszkiewicz@google.com> 2016-09-27 13:09:34 -0700
committer Wojciech Staszkiewicz <staszkiewicz@google.com> 2016-09-28 11:41:14 -0700
commitf2cad3f0cc95c9e15732ea86524aeb24dbdd985f (patch)
treefa3fc0ea5d15a811da4a3ba95d6b6bd14cd4911b
parent7f7fb9c0dcb5fc0ed251b3f9bb775de5278534a7 (diff)
Gather divergences in single directory
Gather all divergences in a single directory to make investigating them easier. Test: ./run_jfuzz_test_nightly.py Change-Id: I0fcdfb2f99e33d8bce444e5d5bf5092f282f03b1
-rwxr-xr-xtools/jfuzz/run_jfuzz_test_nightly.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/jfuzz/run_jfuzz_test_nightly.py b/tools/jfuzz/run_jfuzz_test_nightly.py
index cd338fb136..29595f2886 100755
--- a/tools/jfuzz/run_jfuzz_test_nightly.py
+++ b/tools/jfuzz/run_jfuzz_test_nightly.py
@@ -16,9 +16,14 @@
import argparse
import os
+import re
+import shutil
import subprocess
import sys
+from glob import glob
+
+from tempfile import mkdtemp
from tempfile import TemporaryFile
# Default arguments for run_jfuzz_test.py.
@@ -51,15 +56,29 @@ def main(argv):
for proc in processes:
proc.kill()
# Output results.
+ output_dirs = []
for i, output_file in enumerate(output_files):
output_file.seek(0)
output_str = output_file.read().decode('ascii')
output_file.close()
+ # Extract output directory. Example match: 'Directory : /tmp/tmp8ltpfjng'.
+ directory_match = re.search(r'Directory[^:]*: ([^\n]+)\n', output_str)
+ if directory_match:
+ output_dirs.append(directory_match.group(1))
print('Tester', i)
if output_str.find(SUCCESS_STRING) == NOT_FOUND:
print(output_str)
else:
print(SUCCESS_STRING)
+ # Gather divergences.
+ global_out_dir = mkdtemp('jfuzz_nightly')
+ divergence_nr = 1
+ for out_dir in output_dirs:
+ for divergence_dir in glob(out_dir + '/divergence*/'):
+ shutil.copytree(divergence_dir,
+ global_out_dir + '/divergence' + str(divergence_nr))
+ divergence_nr += 1
+ print('Global output directory:', global_out_dir)
if __name__ == '__main__':
main(sys.argv)