874b6f20c2
Основа — Horizon (MIT). История апстрима не переносится: этот репозиторий ведёт свою.
35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
#!/usr/bin/env python3
|
|
"""FireworkRocketEntity event 17 renders the configured burst before tracked removal.
|
|
|
|
Exercise both hosting paths and subsequent trail/fade frames through real clients.
|
|
"""
|
|
import json
|
|
import subprocess
|
|
|
|
import lab
|
|
import lan_e2e as lan
|
|
|
|
|
|
def main():
|
|
subprocess.run(['cargo', 'build', '--locked', '--profile', 'fast', '-p', 'horizon-client',
|
|
'--bin', 'horizon-client', '--bin', 'horizon-ctl'], cwd=lab.ROOT, check=True)
|
|
metadata = json.loads(subprocess.check_output(
|
|
['cargo', 'metadata', '--format-version', '1', '--no-deps'], cwd=lab.ROOT, text=True))
|
|
ctl = lab.ROOT / metadata['target_directory'] / 'fast' / 'horizon-ctl'
|
|
# CI supplies the display; each game still gets fresh scratch homes.
|
|
lan.game_env = lambda _screen, home: lab.game_env(
|
|
HORIZON_HOME=home, HORIZON_TELEMETRY_URL='off')
|
|
reports = {}
|
|
for threaded in (True, False):
|
|
lan.SERVER_THREAD = threaded
|
|
mode = 'server-thread' if threaded else 'in-frame'
|
|
out = lab.LOCAL / 'remote-fireworks-parity' / mode
|
|
out.mkdir(parents=True, exist_ok=True)
|
|
reports[mode] = lan.run(ctl, out, lab.RESOURCES.resolve(), ['fireworks'])
|
|
lab.write_json(lab.LOCAL / 'remote-fireworks-parity' / 'report.json', reports)
|
|
assert all(r['pass'] for mode in reports.values() for r in mode.values()), reports
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|