Skip to content

Commit b1e1d3e

Browse files
committed
Fix runtests.py to work with LambdaS5.
Note: this patch depends on brownplt/LambdaS5#41
1 parent bef25ee commit b1e1d3e

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

runtests.py

+20-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import sqlite3 as db
1515
import time
1616
import re
17+
import tempfile
1718

1819

1920
# Our command-line interface
@@ -104,6 +105,10 @@ def __init__(self,filename,result,stdout,stderr):
104105
if args.spidermonkey:
105106
self.fail_code = 3
106107

108+
print('=========='*10)
109+
print(repr(result))
110+
print(repr(stdout))
111+
print(repr(stderr))
107112
self.filename = filename
108113
self.testname = os.path.basename(filename)
109114
self.result = result
@@ -412,10 +417,22 @@ def jsRefArgBuilder(filename):
412417
test_runner = lambda filename : [args.interp_path, filename]
413418
elif args.lambdaS5:
414419
current_dir = os.getcwd()
415-
setup = lambda : os.chdir(os.path.dirname(args.interp_path))
420+
interp_path = os.path.abspath(args.interp_path)
421+
def setup():
422+
os.chdir(os.path.dirname(args.interp_path))
423+
init_heap = tempfile.NamedTemporaryFile('w', prefix='init-', suffix='.heap')
424+
with tempfile.NamedTemporaryFile('w', prefix='snapshot', suffix='.ljs') as fd:
425+
fd.write('___takeS5Snapshot()')
426+
fd.seek(0)
427+
print('Building LambdaS5\'s heap file...')
428+
subprocess.call([os.path.join(os.path.dirname(interp_path), '..', 'tests', 's5'),
429+
fd.name, '-eval-s5', '-save', init_heap.name])
430+
print('done.')
416431
teardown = lambda : os.chdir(current_dir)
417-
test_runner = lambda filename: [os.path.abspath(args.interp_path),
418-
filename]
432+
test_runner = lambda filename: [interp_path,
433+
'-load', init_heap.name,
434+
'-desugar', filename,
435+
'-continue-s5-eval']
419436
else:
420437
test_runner = jsRefArgBuilder
421438

0 commit comments

Comments
 (0)