Skip to content

Commit a20254e

Browse files
committed
fix(e2e): verify user bus access
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
1 parent db20d5f commit a20254e

2 files changed

Lines changed: 16 additions & 9 deletions

File tree

.github/workflows/e2e.yaml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1509,8 +1509,8 @@ jobs:
15091509
echo "::error::Qualification systemd user bus socket unit is not active" >&2
15101510
exit 1
15111511
}
1512-
[[ -S "$runtime_dir/bus" && ! -L "$runtime_dir/bus" && "$(stat -c '%u' "$runtime_dir/bus")" == "$uid" ]] || {
1513-
echo "::error::Qualification systemd user bus is missing or invalid" >&2
1512+
sudo -u "$account" /usr/bin/test -S "$runtime_dir/bus" || {
1513+
echo "::error::Qualification systemd user bus is not accessible to the execution account" >&2
15141514
exit 1
15151515
}
15161516
storage_config_directory="/run/nemoclaw-native-runtime-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT}-${uid}"
@@ -1965,8 +1965,8 @@ jobs:
19651965
echo "::error::Qualification systemd user bus socket unit did not restart after installer isolation" >&2
19661966
exit 1
19671967
}
1968-
[[ -S "$RUNTIME_DIRECTORY/bus" && ! -L "$RUNTIME_DIRECTORY/bus" && "$(stat -c '%u' "$RUNTIME_DIRECTORY/bus")" == "$ACCOUNT_UID" ]] || {
1969-
echo "::error::Qualification systemd user bus did not restart after installer isolation" >&2
1968+
sudo -u "$ACCOUNT" /usr/bin/test -S "$RUNTIME_DIRECTORY/bus" || {
1969+
echo "::error::Qualification systemd user bus is not accessible after installer isolation" >&2
19701970
exit 1
19711971
}
19721972
sudo test -d "$INSTALLER_RECEIPT_PARENT/receipts" || {

test/e2e/support/native-runtime-qualification-producer-workflow.test.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -307,9 +307,11 @@ describe("native runtime qualification producer workflow", () => {
307307
expect(boundary.run).toContain("/usr/bin/systemctl --user start dbus.socket");
308308
expect(boundary.run).toContain("/usr/bin/systemctl --user is-active --quiet dbus.socket");
309309
expect(boundary.run).toContain("Qualification systemd user bus socket unit is not active");
310-
expect(boundary.run).toContain("stat -c '%u' \"$runtime_dir/bus\"");
311-
expect(boundary.run).not.toContain("stat -c '%u:%g' \"$runtime_dir/bus\"");
312-
expect(boundary.run).toContain("Qualification systemd user bus is missing or invalid");
310+
expect(boundary.run).toContain('sudo -u "$account" /usr/bin/test -S "$runtime_dir/bus"');
311+
expect(boundary.run).not.toContain("stat -c '%u' \"$runtime_dir/bus\"");
312+
expect(boundary.run).toContain(
313+
"Qualification systemd user bus is not accessible to the execution account",
314+
);
313315
expect(boundary.run).toContain('sudo -u "$account" env -i');
314316
expect(boundary.run).toContain('CONTAINERS_CONF="$containers_config"');
315317
expect(boundary.run).toContain('CONTAINERS_STORAGE_CONF="$storage_config"');
@@ -376,8 +378,13 @@ describe("native runtime qualification producer workflow", () => {
376378
expect(installer.run).toContain('sudo chown "$ACCOUNT_UID:$ACCOUNT_GID"');
377379
expect(installer.run).toContain("/usr/bin/systemctl --user start dbus.socket");
378380
expect(installer.run).toContain("Qualification systemd user bus socket unit did not restart");
379-
expect(installer.run).toContain("stat -c '%u' \"$RUNTIME_DIRECTORY/bus\"");
380-
expect(installer.run).not.toContain("stat -c '%u:%g' \"$RUNTIME_DIRECTORY/bus\"");
381+
expect(installer.run).toContain(
382+
'sudo -u "$ACCOUNT" /usr/bin/test -S "$RUNTIME_DIRECTORY/bus"',
383+
);
384+
expect(installer.run).not.toContain("stat -c '%u' \"$RUNTIME_DIRECTORY/bus\"");
385+
expect(installer.run).toContain(
386+
"Qualification systemd user bus is not accessible after installer isolation",
387+
);
381388
expect(installer.env?.CONTAINERS_CONFIG).toBe(
382389
"${{ steps.boundary.outputs.containers_config }}",
383390
);

0 commit comments

Comments
 (0)