improve test traversal tool
This commit is contained in:
Родитель
ca8d5a649c
Коммит
aa8cd95995
|
@ -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
|
||||
|
|
@ -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
|
||||
|
Загрузка…
Ссылка в новой задаче