Commit d373bd7
committed
test(e2e): generalize cases for cloud profile + runtime supportedImages probe
Make every case in scripts/test/e2e/cases/ runnable against any
profile pointing at any deployed stack (local boxlite serve, Tokyo
e2e-ci, Singapore dev), removing the hard-codes that only worked
against a local boxlite serve.
(1) Profile name. Every per-file _profile() helper used to hardcode
"p1"; now reads BOXLITE_E2E_PROFILE env (default "p1" for
backwards compat). 8 case files updated (test_c_entry,
test_go_entry, test_node_entry, test_error_code_mapping,
test_errors, test_quota_enforcement, test_runner_concurrency,
test_shutdown).
(2) Box id format. UUID_RE only accepted the 36-char UUID form, but
the local runtime mints 12-char Base62 and a REST server may
return a ULID. Replace with BOX_ID_RE matching all three
(UUID / ULID / 12-char Base62). 4 case files updated
(test_c_entry, test_cli_entry, test_cli_detach_recovery,
test_go_entry, test_node_entry).
(3) Image allowlist. The previous design relied on the workflow yml
injecting BOXLITE_E2E_IMAGE at the value the deployed API
accepted — every supportedImages allowlist update (#758 →
digest-pinned; #800 → tag-pinned :20260605-p0-r3) required a
workflow update to keep create_box from cascading 38 4xx FAILs.
conftest now probes the deployed API at session start (POST
/boxes with a sentinel out-of-allowlist image; parse the 400
body's "Supported images: a, b, c" list; pick the first) and
pins the discovered value back to os.environ so the C / Go /
Node entry-driver subprocesses inherit it.
BOXLITE_E2E_IMAGE remains as an override for reproducibility
audits.
(4) Whoami assertion. test_cli_whoami_against_local_api hard-coded
"boxlite-admin" + "http://localhost:3000" — only ever passed
against a local boxlite serve. Now reads the active profile's
URL from credentials.toml and asserts it appears in whoami
output + "Not logged in" doesn't.
(5) Path-bypass guard gating. The C / Go / Node / CLI entry smokes
all ended with a runner_hits_for_box assert that requires
journalctl access to the host running boxlite-runner. On the
cloud profiles that runner lives on a remote EC2; the autouse
Python fixture already bypasses via BOXLITE_E2E_SKIP_PATH_VERIFY
but the subprocess smokes did not. conftest exposes
path_verify_skipped() (single truthy reading of the env) and
the 4 entry tests + detach_recovery gate their hits-check on
it. Box id / driver output assertions still run.
(6) Image / drain robustness in test_exec_timeout: drain(ex) is
moved behind a short asyncio.wait_for and reordered after
ex.wait() — the REST runner's stream pumps don't reliably
observe stream closure when the workload terminates via SIGKILL,
so the previous shape blocked indefinitely on cloud.1 parent d83526c commit d373bd7
12 files changed
Lines changed: 296 additions & 72 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
| 17 | + | |
16 | 18 | | |
17 | 19 | | |
18 | 20 | | |
| 21 | + | |
| 22 | + | |
19 | 23 | | |
20 | 24 | | |
21 | 25 | | |
| |||
27 | 31 | | |
28 | 32 | | |
29 | 33 | | |
30 | | - | |
31 | 34 | | |
32 | 35 | | |
33 | 36 | | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
| 109 | + | |
| 110 | + | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
34 | 153 | | |
35 | 154 | | |
36 | 155 | | |
| |||
105 | 224 | | |
106 | 225 | | |
107 | 226 | | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
108 | 234 | | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
109 | 242 | | |
110 | 243 | | |
111 | 244 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
| 21 | + | |
| 22 | + | |
21 | 23 | | |
22 | 24 | | |
23 | 25 | | |
24 | 26 | | |
25 | 27 | | |
26 | 28 | | |
27 | 29 | | |
28 | | - | |
29 | | - | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
30 | 39 | | |
31 | 40 | | |
32 | 41 | | |
33 | 42 | | |
| 43 | + | |
34 | 44 | | |
35 | 45 | | |
36 | | - | |
| 46 | + | |
37 | 47 | | |
38 | 48 | | |
39 | 49 | | |
40 | 50 | | |
41 | 51 | | |
42 | | - | |
| 52 | + | |
43 | 53 | | |
44 | | - | |
| 54 | + | |
45 | 55 | | |
46 | 56 | | |
47 | | - | |
| 57 | + | |
48 | 58 | | |
49 | 59 | | |
50 | 60 | | |
| |||
60 | 70 | | |
61 | 71 | | |
62 | 72 | | |
63 | | - | |
| 73 | + | |
64 | 74 | | |
65 | 75 | | |
66 | 76 | | |
| |||
73 | 83 | | |
74 | 84 | | |
75 | 85 | | |
76 | | - | |
| 86 | + | |
77 | 87 | | |
78 | 88 | | |
79 | 89 | | |
| |||
84 | 94 | | |
85 | 95 | | |
86 | 96 | | |
87 | | - | |
| 97 | + | |
88 | 98 | | |
89 | 99 | | |
90 | 100 | | |
91 | 101 | | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
| 102 | + | |
| 103 | + | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
30 | 30 | | |
31 | 31 | | |
32 | 32 | | |
| 33 | + | |
| 34 | + | |
33 | 35 | | |
34 | 36 | | |
35 | 37 | | |
| |||
38 | 40 | | |
39 | 41 | | |
40 | 42 | | |
41 | | - | |
42 | | - | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
43 | 52 | | |
44 | 53 | | |
45 | 54 | | |
46 | 55 | | |
47 | 56 | | |
48 | 57 | | |
49 | | - | |
| 58 | + | |
50 | 59 | | |
51 | 60 | | |
52 | 61 | | |
| |||
80 | 89 | | |
81 | 90 | | |
82 | 91 | | |
83 | | - | |
| 92 | + | |
84 | 93 | | |
85 | 94 | | |
86 | 95 | | |
| |||
113 | 122 | | |
114 | 123 | | |
115 | 124 | | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
121 | 131 | | |
122 | 132 | | |
123 | 133 | | |
| |||
127 | 137 | | |
128 | 138 | | |
129 | 139 | | |
130 | | - | |
| 140 | + | |
131 | 141 | | |
132 | 142 | | |
133 | 143 | | |
| |||
0 commit comments