# client_trampoline
#
# This control file is used to install and re-exec the actual client test
# control file on the host.
#
# This control file relies on a trampoline_testname global variable that
# is inserted at the top of this file by server_job.run().

def _client_trampoline():
    path = job.stage_control_file(trampoline_testname)
    with open(path, "r") as fh:

        code_obj = compile(
                fh.read(),
                path,
                mode="exec",
                flags=0,
                dont_inherit=1,
        )
        exec(code_obj, globals(), globals())

_client_trampoline()
