13 lines
1 KiB
Python
13 lines
1 KiB
Python
import pathlib,json,subprocess,time
|
|
w=pathlib.Path('/tmp/forgejo-private-work');base=json.loads((w/'sandbox.json').read_text())
|
|
for n in ['race','race-replacement']:
|
|
p=w/'fixtures'/n
|
|
if p.exists():p.chmod(0o600)
|
|
p.write_text('A'*64);p.chmod(0o400)
|
|
i=base.index('--chdir');base[i:i]=['--dir','/run','--ro-bind',str(w/'fixtures'),'/run/forgejo-oidc','--bind',str(w/'fixtures'),'/run/writable-input']
|
|
args=['go','test','-p','4','-tags','sqlite sqlite_unlock_notify','./cmd','./services/auth/source/oauth2','./models/db','-run','TestPrivateSecret|TestReviewer|TestRequiredClaim|TestCurrentUserInfo|TestSensitive','-count=1','-v']
|
|
start=time.monotonic()
|
|
with (w/'packages.log').open('w') as out:p=subprocess.run(base+args,stdout=out,stderr=subprocess.STDOUT)
|
|
(w/'packages-result.json').write_text(json.dumps({'returncode':p.returncode,'seconds':time.monotonic()-start,'argv':args,'actual_packages':True,'network':'disabled by bwrap'},indent=2));print(p.returncode);print((w/'packages.log').read_text()[-6000:])
|
|
|
|
raise SystemExit(p.returncode)
|