mirror of
https://github.com/saphid/frame-control.git
synced 2026-10-06 06:00:33 +02:00
Fix the review's findings in the test harness
Headset smoke test: drop the paired key from authorized_keys with a same-mode copy swapped in, so a failed write can't truncate it; check the throwaway key with no ssh_config or agent; clean up idempotently (tracked and leftover titles, their json files, Steam's shortcuts via steamos-delete, and ~/devkit-utils if it wasn't there before), with a failed cleanup a failed step; count a launch only with fresh evidence (the process, Steam's log, or the known missing-runtime line), matching with [d]evkit-game so pgrep doesn't find its own shell. The test programs sleep 10 s. Fake Frame: log a launch before its reaper can look for it. e2e: kill a pairing client's process group when a test ends; accept an aarch64 program running under QEMU on x86 hosts. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
0181071b83
commit
93aebb5019
6 files changed
+173
-66
No files matched your search
@@ -18,8 +18,9 @@ from harness import HOME, ROOT, ctl, exists, install_title, launches, ok, ssh, s
|
||||
harness.require()
|
||||
|
||||
GAMES = f'{HOME}/devkit-game'
|
||||
# The host container shares the fake Frame's kernel, so a native program of this
|
||||
# machine's architecture really runs there; the other one fails to exec.
|
||||
# The host container shares the fake Frame's kernel, so a program of this machine's
|
||||
# architecture really runs there. The other one fails to exec, unless QEMU is
|
||||
# registered with binfmt_misc, which runs it emulated.
|
||||
NATIVE = {'aarch64': 'arm64', 'arm64': 'arm64', 'x86_64': 'x86_64'}.get(platform.machine())
|
||||
|
||||
|
||||
@@ -74,10 +75,8 @@ class Titles(harness.FrameTestCase):
|
||||
if NATIVE == 'arm64':
|
||||
self.assertIsNotNone(run['pid'], run)
|
||||
done = wait_for(lambda: launches('devkit')[-1].get('exit') is not None and launches('devkit')[-1],
|
||||
20, 'the arm64 test program to exit')
|
||||
30, 'the arm64 test program to exit')
|
||||
self.assertEqual(done['exit'], 0)
|
||||
else:
|
||||
self.assertIn('Exec format error', run.get('exec_error', ''), run)
|
||||
|
||||
def test_single_exe_upload_launch_and_remove(self):
|
||||
exe = tiny_programs.write(self.tmp, 'exe')
|
||||
@@ -131,7 +130,7 @@ class Titles(harness.FrameTestCase):
|
||||
self.assertTrue(run['started'])
|
||||
if NATIVE == 'x86_64':
|
||||
done = wait_for(lambda: launches('devkit')[-1].get('exit') is not None and launches('devkit')[-1],
|
||||
20, 'the x86-64 test program to exit')
|
||||
30, 'the x86-64 test program to exit')
|
||||
self.assertEqual(done['exit'], 0)
|
||||
|
||||
def test_reinstall_with_another_runtime_keeps_one_shortcut(self):
|
||||
|
||||
Reference in new issue
Block a user