From 4a0d599518bc6312e887d1bb4c2b9063c1c78d83 Mon Sep 17 00:00:00 2001 From: Uri Simchoni Date: Tue, 19 May 2015 11:50:41 +0300 Subject: [PATCH] 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 Reviewed-by: Andrew Bartlett Reviewed-by: Alexander Bokovoy --- script/compare_cc_results.py | 40 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100755 script/compare_cc_results.py 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) -- 2.11.4.GIT