blob: 0b98f451b8ebe01c90979336b5bef258cdc916ad [file] [log] [blame]
#!/usr/bin/env python3
# Copyright (c) 2023, the Dart project authors. Please see the AUTHORS file
# for details. All rights reserved. Use of this source code is governed by a
# BSD-style license that can be found in the LICENSE file.
import os
import platform
import subprocess
import sys
sys.path.insert(
0,
os.path.abspath(
os.path.join(os.path.dirname(__file__),
'../../third_party/fuchsia/test_scripts/test/')))
from common import catch_sigterm, wait_for_sigterm
def Main():
"""
Execute the test-scripts with required environment variables. It acts like
/usr/bin/env, but provides some extra functionality to dynamically set up
the environment variables.
"""
# Ensures the signals can be correctly forwarded to the subprocesses.
catch_sigterm()
os.environ['SRC_ROOT'] = os.path.abspath(
os.path.join(os.path.dirname(__file__), os.pardir, os.pardir))
os.environ['FUCHSIA_IMAGES_ROOT'] = os.path.join(os.environ['SRC_ROOT'],
'third_party', 'fuchsia',
'images')
sdk_dir = ''
if platform.system() == 'Linux':
sdk_dir = 'linux'
elif platform.system() == 'Darwin':
sdk_dir = 'mac'
else:
assert False, 'Unsupported OS'
os.environ['FUCHSIA_SDK_ROOT'] = os.path.join(os.environ['SRC_ROOT'],
'third_party', 'fuchsia',
'sdk', sdk_dir)
os.environ['FUCHSIA_GN_SDK_ROOT'] = os.path.join(os.environ['SRC_ROOT'],
'third_party', 'fuchsia',
'gn-sdk', 'src')
with subprocess.Popen(sys.argv[1:]) as proc:
try:
proc.wait()
except:
# Use terminate / SIGTERM to allow the subprocess exiting cleanly.
proc.terminate()
return proc.returncode
if __name__ == '__main__':
sys.exit(Main())