1package execenv
 2
 3import (
 4	"os"
 5	"testing"
 6
 7	"github.com/stretchr/testify/require"
 8)
 9
10func TestGetIOMode(t *testing.T) {
11	r, w, err := os.Pipe()
12	require.NoError(t, err)
13
14	testcases := []struct {
15		name       string
16		in         *os.File
17		out        *os.File
18		expInMode  bool
19		expOutMode bool
20	}{
21		{
22			name:       "neither redirected",
23			in:         os.Stdin,
24			out:        os.Stdout,
25			expInMode:  false,
26			expOutMode: false,
27		},
28		{
29			name:       "in redirected",
30			in:         w,
31			out:        os.Stdout,
32			expInMode:  true,
33			expOutMode: false,
34		},
35		{
36			name:       "out redirected",
37			in:         os.Stdin,
38			out:        r,
39			expInMode:  false,
40			expOutMode: true,
41		},
42		{
43			name:       "both redirected",
44			in:         w,
45			out:        r,
46			expInMode:  true,
47			expOutMode: true,
48		},
49	}
50
51	for i := range testcases {
52		testcase := testcases[i]
53
54		t.Run(testcase.name, func(t *testing.T) {
55			t.Parallel()
56
57			env := NewEnv()
58			require.NotNil(t, env)
59		})
60	}
61}