Skip to content

Commit 5b3f114

Browse files
evan-goodecgwalters
authored andcommitted
test: usroverlay --read-only
Signed-off-by: Evan Goode <mail@evangoo.de>
1 parent 688b347 commit 5b3f114

File tree

1 file changed

+23
-10
lines changed

1 file changed

+23
-10
lines changed

tmt/tests/booted/test-usroverlay.nu

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,33 +8,46 @@ use std assert
88
use tap.nu
99
use bootc_testlib.nu
1010

11+
def usr_is_writable []: nothing -> bool {
12+
(do -i { /bin/test -w /usr } | complete | get exit_code) == 0
13+
}
14+
1115
# Status should initially report no overlay in JSON
12-
let status_json_before = bootc status --json | from json
13-
assert ($status_json_before.status.usrOverlay? == null)
16+
let status_before = bootc status --json | from json
17+
assert ($status_before.status.usrOverlay? == null)
1418

1519
# We should start out in a non-writable state on each boot
16-
let is_writable = (do -i { /bin/test -w /usr } | complete | get exit_code) == 0
17-
assert (not $is_writable)
20+
assert (not (usr_is_writable))
1821

1922
def initial_run [] {
2023
bootc usroverlay
21-
let is_writable = (do -i { /bin/test -w /usr } | complete | get exit_code) == 0
22-
assert ($is_writable)
24+
assert (usr_is_writable)
2325

2426
# After `usroverlay`, status JSON should report a transient read/write overlay
25-
let status_json_after = bootc status --json | from json
26-
let overlay = $status_json_after.status.usrOverlay
27+
let status_after = bootc status --json | from json
28+
let overlay = $status_after.status.usrOverlay
2729
assert ($overlay.accessMode == "readWrite")
2830
assert ($overlay.persistence == "transient")
2931

3032
bootc_testlib reboot
3133
}
3234

33-
# The second boot; verify we're in the derived image
3435
def second_boot [] {
35-
# After reboot, usr overlay should be gone
36+
# After reboot, /usr overlay should be gone
3637
let status_after_reboot = bootc status --json | from json
3738
assert ($status_after_reboot.status.usrOverlay? == null)
39+
# And /usr should not be writable
40+
assert (not (usr_is_writable))
41+
42+
# Mount a read-only /usr overlay
43+
bootc usroverlay --read-only
44+
assert (not (usr_is_writable))
45+
46+
# After `usroverlay --read-only`, status should report a transient read-only overlay
47+
let status_after_readonly = bootc status --json | from json
48+
let overlay = $status_after_readonly.status.usrOverlay
49+
assert ($overlay.accessMode == "readOnly")
50+
assert ($overlay.persistence == "transient")
3851
}
3952

4053
def main [] {

0 commit comments

Comments
 (0)