import contextlib,json,os,pathlib,shutil,subprocess,sys
os.umask(0o077)
R=pathlib.Path('/evidence');mode=sys.argv[1]
with (R/(mode+'-check.log')).open('x') as log,contextlib.redirect_stdout(log),contextlib.redirect_stderr(log):
    if mode=='source':
        subprocess.run(['make','-C','/source/native/frame_metadata','/evidence/build/libcontextra_rtp_time.so','BUILD_DIR=/evidence/build','PYBIND_INCLUDE=/headers'],stdout=log,stderr=log,check=True,timeout=60)
        shutil.copyfile(R/'build/libcontextra_rtp_time.so','/opt/nvidia/deepstream/deepstream/lib/gst-plugins/libcontextra_rtp_time.so')
    results={}
    for name,args in [('loader',['python3','/source/tests/sdk_rtp_loader_probe.py']),
                      ('sdk_copy',['python3','/source/tests/sdk_rtp_time_probe.py','/rtp-fixture.so'])]:
        result=subprocess.run(args,stdout=log,stderr=log,timeout=50)
        results[name]=result.returncode
        if result.returncode:break
(R/(mode+'-verify.json')).write_text(json.dumps(results))
print(json.dumps(results));sys.exit(any(results.values()))
