Skip to content

Commit ff86c79

Browse files
committed
switch to use blackbox testing, move tests to separate module
This allows us to remove the test-dependencies from the module itself Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent 6c1b69f commit ff86c79

File tree

8 files changed

+98
-67
lines changed

8 files changed

+98
-67
lines changed

.github/workflows/test.yml

+8-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030
- name: Checkout code
3131
uses: actions/checkout@v4
3232
- name: Test
33-
run: go test -v ./...
33+
run: cd test && go test -v .
3434
lint:
3535
runs-on: ubuntu-latest
3636
steps:
@@ -47,3 +47,10 @@ jobs:
4747
-E gofmt \
4848
-E misspell \
4949
-E revive
50+
- name: Lint tests
51+
run: |
52+
docker run --rm -v ./:/go/src/github.com/moby/term -w /go/src/github.com/moby/term/test \
53+
golangci/golangci-lint:v1.62.2 golangci-lint run -v \
54+
-E gofmt \
55+
-E misspell \
56+
-E revive

ascii_test.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
1-
package term
1+
package term_test
22

33
import (
44
"bytes"
55
"testing"
6+
7+
"github.com/moby/term"
68
)
79

810
func TestToBytes(t *testing.T) {
9-
codes, err := ToBytes("ctrl-a,a")
11+
codes, err := term.ToBytes("ctrl-a,a")
1012
if err != nil {
1113
t.Error(err)
1214
}
@@ -15,12 +17,12 @@ func TestToBytes(t *testing.T) {
1517
t.Errorf("expected: %+v, got: %+v", expected, codes)
1618
}
1719

18-
_, err = ToBytes("shift-z")
20+
_, err = term.ToBytes("shift-z")
1921
if err == nil {
2022
t.Error("expected and error")
2123
}
2224

23-
codes, err = ToBytes("ctrl-@,ctrl-[,~,ctrl-o")
25+
codes, err = term.ToBytes("ctrl-@,ctrl-[,~,ctrl-o")
2426
if err != nil {
2527
t.Error(err)
2628
}
@@ -29,7 +31,7 @@ func TestToBytes(t *testing.T) {
2931
t.Errorf("expected: %+v, got: %+v", expected, codes)
3032
}
3133

32-
codes, err = ToBytes("DEL,+")
34+
codes, err = term.ToBytes("DEL,+")
3335
if err != nil {
3436
t.Error(err)
3537
}

go.mod

-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,5 @@ go 1.18
44

55
require (
66
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c
7-
github.com/creack/pty v1.1.18
87
golang.org/x/sys v0.1.0
98
)

go.sum

-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
22
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
3-
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
4-
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
53
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
64
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
75
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

test/go.mod

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
module github.com/moby/term/test
2+
3+
go 1.18
4+
5+
require (
6+
github.com/creack/pty v1.1.18
7+
github.com/moby/term v0.0.0-00010101000000-000000000000 // replaced
8+
)
9+
10+
require (
11+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect
12+
golang.org/x/sys v0.1.0 // indirect
13+
)
14+
15+
replace github.com/moby/term => ../

test/go.sum

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg=
2+
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
3+
github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY=
4+
github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4=
5+
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
6+
golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U=
7+
golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

proxy_test.go test/proxy_test.go

+42-40
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,17 @@
1-
package term
1+
package test
22

33
import (
44
"bytes"
55
"testing"
6+
7+
"github.com/moby/term"
68
)
79

810
func TestEscapeProxyRead(t *testing.T) {
911
t.Run("no escape keys, keys [a]", func(t *testing.T) {
10-
escapeKeys, _ := ToBytes("")
11-
keys, _ := ToBytes("a")
12-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
12+
escapeKeys, _ := term.ToBytes("")
13+
keys, _ := term.ToBytes("a")
14+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
1315

1416
buf := make([]byte, len(keys))
1517
nr, err := reader.Read(buf)
@@ -25,9 +27,9 @@ func TestEscapeProxyRead(t *testing.T) {
2527
})
2628

2729
t.Run("no escape keys, keys [a,b,c]", func(t *testing.T) {
28-
escapeKeys, _ := ToBytes("")
29-
keys, _ := ToBytes("a,b,c")
30-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
30+
escapeKeys, _ := term.ToBytes("")
31+
keys, _ := term.ToBytes("a,b,c")
32+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
3133

3234
buf := make([]byte, len(keys))
3335
nr, err := reader.Read(buf)
@@ -43,9 +45,9 @@ func TestEscapeProxyRead(t *testing.T) {
4345
})
4446

4547
t.Run("no escape keys, no keys", func(t *testing.T) {
46-
escapeKeys, _ := ToBytes("")
47-
keys, _ := ToBytes("")
48-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
48+
escapeKeys, _ := term.ToBytes("")
49+
keys, _ := term.ToBytes("")
50+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
4951

5052
buf := make([]byte, len(keys))
5153
nr, err := reader.Read(buf)
@@ -64,9 +66,9 @@ func TestEscapeProxyRead(t *testing.T) {
6466
})
6567

6668
t.Run("DEL escape key, keys [a,b,c,+]", func(t *testing.T) {
67-
escapeKeys, _ := ToBytes("DEL")
68-
keys, _ := ToBytes("a,b,c,+")
69-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
69+
escapeKeys, _ := term.ToBytes("DEL")
70+
keys, _ := term.ToBytes("a,b,c,+")
71+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
7072

7173
buf := make([]byte, len(keys))
7274
nr, err := reader.Read(buf)
@@ -82,9 +84,9 @@ func TestEscapeProxyRead(t *testing.T) {
8284
})
8385

8486
t.Run("DEL escape key, no keys", func(t *testing.T) {
85-
escapeKeys, _ := ToBytes("DEL")
86-
keys, _ := ToBytes("")
87-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
87+
escapeKeys, _ := term.ToBytes("DEL")
88+
keys, _ := term.ToBytes("")
89+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
8890

8991
buf := make([]byte, len(keys))
9092
nr, err := reader.Read(buf)
@@ -103,9 +105,9 @@ func TestEscapeProxyRead(t *testing.T) {
103105
})
104106

105107
t.Run("ctrl-x,ctrl-@ escape key, keys [DEL]", func(t *testing.T) {
106-
escapeKeys, _ := ToBytes("ctrl-x,ctrl-@")
107-
keys, _ := ToBytes("DEL")
108-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
108+
escapeKeys, _ := term.ToBytes("ctrl-x,ctrl-@")
109+
keys, _ := term.ToBytes("DEL")
110+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
109111

110112
buf := make([]byte, len(keys))
111113
nr, err := reader.Read(buf)
@@ -121,9 +123,9 @@ func TestEscapeProxyRead(t *testing.T) {
121123
})
122124

123125
t.Run("ctrl-c escape key, keys [ctrl-c]", func(t *testing.T) {
124-
escapeKeys, _ := ToBytes("ctrl-c")
125-
keys, _ := ToBytes("ctrl-c")
126-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
126+
escapeKeys, _ := term.ToBytes("ctrl-c")
127+
keys, _ := term.ToBytes("ctrl-c")
128+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
127129

128130
buf := make([]byte, len(keys))
129131
nr, err := reader.Read(buf)
@@ -139,9 +141,9 @@ func TestEscapeProxyRead(t *testing.T) {
139141
})
140142

141143
t.Run("ctrl-c,ctrl-z escape key, keys [ctrl-c],[ctrl-z]", func(t *testing.T) {
142-
escapeKeys, _ := ToBytes("ctrl-c,ctrl-z")
143-
keys, _ := ToBytes("ctrl-c,ctrl-z")
144-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
144+
escapeKeys, _ := term.ToBytes("ctrl-c,ctrl-z")
145+
keys, _ := term.ToBytes("ctrl-c,ctrl-z")
146+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
145147

146148
buf := make([]byte, 1)
147149
nr, err := reader.Read(buf)
@@ -168,9 +170,9 @@ func TestEscapeProxyRead(t *testing.T) {
168170
})
169171

170172
t.Run("ctrl-c,ctrl-z escape key, keys [ctrl-c,ctrl-z]", func(t *testing.T) {
171-
escapeKeys, _ := ToBytes("ctrl-c,ctrl-z")
172-
keys, _ := ToBytes("ctrl-c,ctrl-z")
173-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
173+
escapeKeys, _ := term.ToBytes("ctrl-c,ctrl-z")
174+
keys, _ := term.ToBytes("ctrl-c,ctrl-z")
175+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
174176

175177
buf := make([]byte, 2)
176178
nr, err := reader.Read(buf)
@@ -186,9 +188,9 @@ func TestEscapeProxyRead(t *testing.T) {
186188
})
187189

188190
t.Run("ctrl-c,ctrl-z escape key, keys [ctrl-c],[DEL,+]", func(t *testing.T) {
189-
escapeKeys, _ := ToBytes("ctrl-c,ctrl-z")
190-
keys, _ := ToBytes("ctrl-c,DEL,+")
191-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
191+
escapeKeys, _ := term.ToBytes("ctrl-c,ctrl-z")
192+
keys, _ := term.ToBytes("ctrl-c,DEL,+")
193+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
192194

193195
buf := make([]byte, 1)
194196
nr, err := reader.Read(buf)
@@ -216,9 +218,9 @@ func TestEscapeProxyRead(t *testing.T) {
216218
})
217219

218220
t.Run("ctrl-c,ctrl-z escape key, keys [ctrl-c],[DEL]", func(t *testing.T) {
219-
escapeKeys, _ := ToBytes("ctrl-c,ctrl-z")
220-
keys, _ := ToBytes("ctrl-c,DEL")
221-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
221+
escapeKeys, _ := term.ToBytes("ctrl-c,ctrl-z")
222+
keys, _ := term.ToBytes("ctrl-c,DEL")
223+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
222224

223225
buf := make([]byte, 1)
224226
nr, err := reader.Read(buf)
@@ -246,9 +248,9 @@ func TestEscapeProxyRead(t *testing.T) {
246248
})
247249

248250
t.Run("a,b,c,d escape key, keys [a,b],[c,d]", func(t *testing.T) {
249-
escapeKeys, _ := ToBytes("a,b,c,d")
250-
keys, _ := ToBytes("a,b,c,d")
251-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
251+
escapeKeys, _ := term.ToBytes("a,b,c,d")
252+
keys, _ := term.ToBytes("a,b,c,d")
253+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
252254

253255
buf := make([]byte, 2)
254256
nr, err := reader.Read(buf)
@@ -276,9 +278,9 @@ func TestEscapeProxyRead(t *testing.T) {
276278
})
277279

278280
t.Run("ctrl-p,ctrl-q escape key, keys [ctrl-p],[a],[ctrl-p,ctrl-q]", func(t *testing.T) {
279-
escapeKeys, _ := ToBytes("ctrl-p,ctrl-q")
280-
keys, _ := ToBytes("ctrl-p,a,ctrl-p,ctrl-q")
281-
reader := NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
281+
escapeKeys, _ := term.ToBytes("ctrl-p,ctrl-q")
282+
keys, _ := term.ToBytes("ctrl-p,a,ctrl-p,ctrl-q")
283+
reader := term.NewEscapeProxy(bytes.NewReader(keys), escapeKeys)
282284

283285
buf := make([]byte, 1)
284286
nr, err := reader.Read(buf)

0 commit comments

Comments
 (0)