@@ -72,17 +72,9 @@ func TestAListenerIsNotInheritedByAProcess(t *testing.T) {
7272
7373 // assert
7474 require .NoError (t , err )
75- var added []int
76- for _ , fd := range sockets (t ) {
77- if ! slices .Contains (before , fd ) {
78- added = append (added , fd )
79- }
80- }
81-
75+ added := opened (t , before )
8276 require .Len (t , added , 1 )
83- flags , err := unix .FcntlInt (uintptr (added [0 ]), unix .F_GETFD , 0 )
84- require .NoError (t , err )
85- assert .NotZero (t , flags & unix .FD_CLOEXEC )
77+ assert .True (t , closedOnExecFD (t , uintptr (added [0 ])))
8678}
8779
8880// sockets are the file descriptors of this process that are sockets. A
@@ -106,14 +98,34 @@ func sockets(t *testing.T) []int {
10698 return fds
10799}
108100
101+ // opened are the sockets of this process that are not among those before.
102+ func opened (t * testing.T , before []int ) []int {
103+ t .Helper ()
104+ var added []int
105+ for _ , fd := range sockets (t ) {
106+ if ! slices .Contains (before , fd ) {
107+ added = append (added , fd )
108+ }
109+ }
110+
111+ return added
112+ }
113+
109114func closedOnExec (t * testing.T , conn syscall.Conn ) bool {
110115 t .Helper ()
111116 raw , err := conn .SyscallConn ()
112117 require .NoError (t , err )
113- var flags int
118+ var closed bool
114119 require .NoError (t , raw .Control (func (fd uintptr ) {
115- flags , err = unix . FcntlInt ( fd , unix . F_GETFD , 0 )
120+ closed = closedOnExecFD ( t , fd )
116121 }))
122+
123+ return closed
124+ }
125+
126+ func closedOnExecFD (t * testing.T , fd uintptr ) bool {
127+ t .Helper ()
128+ flags , err := unix .FcntlInt (fd , unix .F_GETFD , 0 )
117129 require .NoError (t , err )
118130
119131 return flags & unix .FD_CLOEXEC != 0
0 commit comments