Skip to content

Commit 73dead0

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

File tree

1 file changed

+16
-3
lines changed

1 file changed

+16
-3
lines changed

runtests.py

Lines changed: 16 additions & 3 deletions
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
@@ -412,10 +413,22 @@ def jsRefArgBuilder(filename):
412413
test_runner = lambda filename : [args.interp_path, filename]
413414
elif args.lambdaS5:
414415
current_dir = os.getcwd()
415-
setup = lambda : os.chdir(os.path.dirname(args.interp_path))
416+
interp_path = os.path.abspath(args.interp_path)
417+
def setup():
418+
os.chdir(os.path.dirname(args.interp_path))
419+
init_heap = tempfile.NamedTemporaryFile('w', prefix='init-', suffix='.heap')
420+
with tempfile.NamedTemporaryFile('w', prefix='snapshot', suffix='.ljs') as fd:
421+
fd.write('___takeS5Snapshot()')
422+
fd.seek(0)
423+
print('Building LambdaS5\'s heap file...')
424+
subprocess.call([os.path.join(os.path.dirname(interp_path), '..', 'tests', 's5'),
425+
fd.name, '-eval-s5', '-save', init_heap.name])
426+
print('done.')
416427
teardown = lambda : os.chdir(current_dir)
417-
test_runner = lambda filename: [os.path.abspath(args.interp_path),
418-
filename]
428+
test_runner = lambda filename: [interp_path,
429+
'-load', init_heap.name,
430+
'-desugar', filename,
431+
'-continue-s5-eval']
419432
else:
420433
test_runner = jsRefArgBuilder
421434

0 commit comments

Comments
 (0)