@@ -26,12 +26,22 @@ class TestCLIExportCommand: CLITest {
2626 let name = getTestName ( )
2727 try doLongRun ( name: name, autoRemove: false )
2828 defer {
29+ try ? doStop ( name: name)
2930 try ? doRemove ( name: name)
3031 }
3132
3233 let mustBeInImage = " must-be-in-image "
3334 _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " echo \( mustBeInImage) > /foo " ] )
3435
36+ _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " mkdir -p /parent/child " ] )
37+ let hardlinkMustRemain = " hardlink-must-remain "
38+ _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " echo \( hardlinkMustRemain) > /parent/child/bar " ] )
39+ _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " ln /parent/child/bar /bar " ] )
40+
41+ let symlinkMustRemain = " symlink-must-remain "
42+ _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " echo \( symlinkMustRemain) > /parent/child/baz " ] )
43+ _ = try doExec ( name: name, cmd: [ " sh " , " -c " , " ln /parent/child/baz /baz " ] )
44+
3545 try doStop ( name: name)
3646 try doExport ( name: name, image: name)
3747 defer {
@@ -46,5 +56,11 @@ class TestCLIExportCommand: CLITest {
4656
4757 let foo = try doExec ( name: exported, cmd: [ " cat " , " /foo " ] )
4858 #expect( foo == mustBeInImage + " \n " )
59+
60+ let bar = try doExec ( name: exported, cmd: [ " cat " , " /bar " ] )
61+ #expect( bar == hardlinkMustRemain + " \n " )
62+
63+ let baz = try doExec ( name: exported, cmd: [ " cat " , " /baz " ] )
64+ #expect( baz == symlinkMustRemain + " \n " )
4965 }
5066}
0 commit comments