import os
import sys
import subprocess
from test import support
def main():
infile = sys.argv[1]
tempfile = sys.argv[2]
cmd = sys.argv[3:]
returncode = 0
all_modules = open(infile).read()
for i, (module, asserts) in enumerate(support.split_wast(infile)):
tempname = tempfile + '.' + str(i)
with open(tempname, 'w') as temp:
print(module, file=temp)
new_cmd = cmd + [tempname]
result = subprocess.run(new_cmd)
if result.returncode != 0:
returncode = result.returncode
module_char_start = all_modules.find(module)
module_line_start = all_modules[:module_char_start].count(os.linesep)
print(f'[Failing module at line {module_line_start}]', file=sys.stderr)
sys.exit(returncode)
if __name__ == '__main__':
main()