@@ -40,6 +40,7 @@ import (
40
40
"github.com/containerd/nerdctl/mod/tigron/tig"
41
41
42
42
"github.com/containerd/nerdctl/v2/cmd/nerdctl/helpers"
43
+ "github.com/containerd/nerdctl/v2/pkg/rootlessutil"
43
44
"github.com/containerd/nerdctl/v2/pkg/testutil"
44
45
"github.com/containerd/nerdctl/v2/pkg/testutil/nerdtest"
45
46
)
@@ -1058,3 +1059,47 @@ HEALTHCHECK --interval=30s --timeout=10s CMD wget -q --spider http://localhost:8
1058
1059
1059
1060
testCase .Run (t )
1060
1061
}
1062
+
1063
+ func countFIFOFiles (root string ) (int , error ) {
1064
+ count := 0
1065
+ err := filepath .Walk (root , func (path string , info os.FileInfo , err error ) error {
1066
+ if err != nil {
1067
+ return err
1068
+ }
1069
+ if info .Mode ()& os .ModeNamedPipe != 0 {
1070
+ count ++
1071
+ }
1072
+ return nil
1073
+ })
1074
+ return count , err
1075
+ }
1076
+ func TestCleanupFIFOs (t * testing.T ) {
1077
+ if rootlessutil .IsRootless () {
1078
+ t .Skip ("/run/containerd/fifo/ doesn't exist on rootless" )
1079
+ }
1080
+ if runtime .GOOS == "windows" {
1081
+ t .Skip ("test is not compatible with windows" )
1082
+ }
1083
+ testutil .DockerIncompatible (t )
1084
+ testCase := nerdtest .Setup ()
1085
+ testCase .NoParallel = true
1086
+ testCase .Setup = func (data test.Data , helpers test.Helpers ) {
1087
+ cmd := helpers .Command ("run" , "-it" , "--rm" , testutil .CommonImage , "date" )
1088
+ cmd .WithPseudoTTY ()
1089
+ cmd .Run (& test.Expected {
1090
+ ExitCode : 0 ,
1091
+ })
1092
+ oldNumFifos , err := countFIFOFiles ("/run/containerd/fifo/" )
1093
+ assert .NilError (t , err )
1094
+
1095
+ cmd = helpers .Command ("run" , "-it" , "--rm" , testutil .CommonImage , "date" )
1096
+ cmd .WithPseudoTTY ()
1097
+ cmd .Run (& test.Expected {
1098
+ ExitCode : 0 ,
1099
+ })
1100
+ newNumFifos , err := countFIFOFiles ("/run/containerd/fifo/" )
1101
+ assert .NilError (t , err )
1102
+ assert .Equal (t , oldNumFifos , newNumFifos )
1103
+ }
1104
+ testCase .Run (t )
1105
+ }
0 commit comments