@@ -8,33 +8,46 @@ use std assert
88use tap .nu
99use 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
1922def 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
3435def 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
4053def main [] {
0 commit comments