diff options
-rwxr-xr-x | tests/traverse.py | 33 | ||||
-rwxr-xr-x | tools/traverse.py | 50 |
2 files changed, 50 insertions, 33 deletions
diff --git a/tests/traverse.py b/tests/traverse.py deleted file mode 100755 index 37809375..00000000 --- a/tests/traverse.py +++ /dev/null @@ -1,33 +0,0 @@ -#!/usr/bin/env python2 - -''' -simple tool to run emcc and clang on testcases each in a separate subdir, as in the case of output from Moh's fuzzer -''' - -import os, sys - -__rootpath__ = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) -def path_from_root(*pathelems): - return os.path.join(__rootpath__, *pathelems) -sys.path += [path_from_root('')] -import tools.shared -from tools.shared import * - -curr = os.getcwd() - -for d in os.listdir(curr): - #print d - os.chdir(curr) - if os.path.isdir(d): - os.chdir(d) - for c in os.listdir('.'): - if c.endswith('.c'): - execute([CLANG_CC, c]) - out1 = execute(['./a.out'], stdout=PIPE)[0] - execute([EMCC, c, '-O2', '--embed-file', 'input.txt']) - out2 = jsrun.run_js('a.out.js', filter(lambda x: x != '-w', SPIDERMONKEY_ENGINE), stdout=PIPE) - if out1 != out2: - print ' ', out1, - print ' ', out2, - print 'fail', d - diff --git a/tools/traverse.py b/tools/traverse.py new file mode 100755 index 00000000..05f14597 --- /dev/null +++ b/tools/traverse.py @@ -0,0 +1,50 @@ +#!/usr/bin/env python2 + +''' +simple tool to run emcc and clang on C testcases each in a separate subdir of the current dir +''' + +import os, sys + +__rootpath__ = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) +def path_from_root(*pathelems): + return os.path.join(__rootpath__, *pathelems) +sys.path += [path_from_root('')] +import tools.shared +from tools.shared import * + +curr = os.getcwd() + +for d in os.listdir(curr): + print '(' + d + ') ', + os.chdir(curr) + if os.path.isdir(d): + os.chdir(d) + for c in os.listdir('.'): + if c.endswith('.c'): + execute([EMCC, c, '-O2', '--embed-file', 'input.txt']) + js = jsrun.run_js('a.out.js', filter(lambda x: x != '-w', SPIDERMONKEY_ENGINE), stdout=PIPE) + + execute([CLANG_CC, '-m32', c]) + n1 = execute(['./a.out'], stdout=PIPE)[0] + + execute([CLANG_CC, '-m32', c, '-O2']) + n2 = execute(['./a.out'], stdout=PIPE)[0] + + execute(['gcc', c, '-m32']) + n3 = execute(['./a.out'], stdout=PIPE)[0] + + if js == n1: + print 'ok' + elif js == n2: + print 'emcc and clang -O2 both equally wrong' + elif js == n3: + print 'emcc agrees with gcc, so probably ok' + else: + print + print 'js ', js, + print 'c0 ', n1, + print 'c2 ', n2, + print 'g ', n3, + print 'fail!!!', d + |