diff options
author | Uri Simchoni <urisimchoni@gmail.com> | 2015-05-19 11:50:41 +0300 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2015-05-20 11:19:11 +0200 |
commit | 4a0d599518bc6312e887d1bb4c2b9063c1c78d83 (patch) | |
tree | 4be21e5c18233997e75d45839d2ac9401e11952f | |
parent | 13ce285b24d4f1a3e9e1e2f6eb45a53ff9f2d642 (diff) | |
download | samba-4a0d599518bc6312e887d1bb4c2b9063c1c78d83.tar.gz |
waf: add a script that compares configurations
This script is intended for use with the cross-build infrastructure
self-test during autobuild.
The script takes two or more "default.cache.py" files which are the
result of the waf configure process, and performs an intelligent
comparison - allowing for a limited set of variables to be different.
If the configurations are identical (apart from allowed differences) then
the script exit with 0 code.
If there are differences, the script outputs them to standard output
in unified diff format.
Signed-off-by: Uri Simchoni <urisimchoni@gmail.com>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
Reviewed-by: Alexander Bokovoy <ab@samba.org>
-rwxr-xr-x | script/compare_cc_results.py | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/script/compare_cc_results.py b/script/compare_cc_results.py new file mode 100755 index 00000000000..b8ed3994c04 --- /dev/null +++ b/script/compare_cc_results.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python + +# +# Compare the results of native and cross-compiled configure tests +# + +import sys +import difflib + +exceptions = ['BUILD_DIRECTORY', 'CROSS_COMPILE', 'CROSS_ANSWERS', + 'CROSS_EXECUTE', 'SELFTEST_PREFIX'] + +base_lines = list() +base_fname = '' + +found_diff = False + +for fname in sys.argv[1:]: + lines = list() + f = open(fname, 'r') + for line in f: + if len(line.split('=', 1)) == 2: + key = line.split('=', 1)[0].strip() + if key in exceptions: + continue + lines.append(line) + f.close() + if base_fname: + diff = list(difflib.unified_diff(base_lines,lines,base_fname,fname)) + if diff: + print 'configuration files %s and %s do not match' % (base_fname, fname) + for l in diff: + sys.stdout.write(l) + found_diff = True + else: + base_fname = fname + base_lines = lines + +if found_diff: + sys.exit(1) |