23 lines
1.6 KiB
Python
23 lines
1.6 KiB
Python
import datetime,importlib.util,json,os,pathlib,re,subprocess,sys,time
|
|
sys.dont_write_bytecode=True
|
|
r=pathlib.Path(__file__).resolve().parent;p=r.parent.parent
|
|
spec=importlib.util.spec_from_file_location('row276_driver',p/'driver.py');d=importlib.util.module_from_spec(spec);spec.loader.exec_module(d)
|
|
root=pathlib.Path('/mnt/storage/scratch/gander276-measure-kp71qj')
|
|
rows=[]
|
|
for n in range(1,6):
|
|
for label,sha in [('before','804a854dc'),('after','f3a55ddf7')]:
|
|
d.REPO=root/label
|
|
actual=subprocess.check_output(['git','rev-parse','HEAD'],cwd=d.REPO,text=True).strip();assert actual.startswith(sha)
|
|
original=subprocess.check_output(['git','status','--porcelain','--untracked-files=no'],cwd=d.REPO)
|
|
tmp=subprocess.check_output(['mktemp','-d','/mnt/storage/scratch/tmp/gXXX'],text=True).strip();os.environ['TMPDIR']=tmp
|
|
name=f'{n}-{label}'
|
|
print('START',name,actual,tmp,flush=True)
|
|
v=d.run(['node','--test','--test-reporter=tap','--test-name-pattern','row253 C4 P10 inner reason','packages/cli/tests/case1-accept.test.mjs'],r/(name+'.log'))
|
|
text=(r/(name+'.log')).read_text()
|
|
v.update(repetition=n,label=label,sha=actual,tmpdir=tmp,duration_ms=float(re.search(r'duration_ms: ([0-9.]+)',text)[1]),reported_mode_seconds=dict(re.findall(r'(exec|hop): ([0-9.]+)s',text)))
|
|
rows.append(v);(r/'results.json').write_text(json.dumps(rows,indent=2)+'\n')
|
|
assert subprocess.check_output(['git','status','--porcelain','--untracked-files=no'],cwd=d.REPO)==original
|
|
if v['timeout']:raise RuntimeError('measurement timeout, stop')
|
|
print('END',name,json.dumps(v),flush=True)
|
|
print('MEASUREMENTS COMPLETE',flush=True)
|