Skip to content

Commit ee23f7a

Browse files
authored
Merge pull request #155 from docker/refactor/test-logger
refactor(tests): allow re-using the test logger across all packages
2 parents eff1218 + 3e73fb6 commit ee23f7a

File tree

6 files changed

+38
-32
lines changed

6 files changed

+38
-32
lines changed

engine/engine_test.go

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -109,11 +109,6 @@ func testLoggerCtx(t *testing.T) context.Context {
109109
return logging.WithLogger(t.Context(), logging.NewDefaultLogger(t.Name()))
110110
}
111111

112-
func testLogger(t *testing.T) logging.Logger {
113-
t.Helper()
114-
return logging.NewDefaultLogger(t.Name())
115-
}
116-
117112
func Test_Register(t *testing.T) {
118113
t.Parallel()
119114
t.Run("nothing gets registered when launch returns an error", func(t *testing.T) {
@@ -174,20 +169,20 @@ func Test_discoverPlugins(t *testing.T) {
174169
assert.NoError(t, os.WriteFile(filepath.Join(dir, "text-file"), []byte(""), 0o644))
175170
assert.NoError(t, createFakeExecutable(filepath.Join(dir, "binary-file")))
176171
assert.NoError(t, createFakeExecutable(filepath.Join(dir, "my-plugin")))
177-
plugins, err := scanPluginDir(testLogger(t), dir)
172+
plugins, err := scanPluginDir(testhelper.TestLogger(t), dir)
178173
assert.NoError(t, err)
179174
assert.Len(t, plugins, 2)
180175
assert.Contains(t, plugins, "binary-file"+suffix)
181176
assert.Contains(t, plugins, "my-plugin"+suffix)
182177
})
183178
t.Run("empty list but no error if directory does not exist", func(t *testing.T) {
184179
dir := t.TempDir()
185-
plugins, err := scanPluginDir(testLogger(t), filepath.Join(dir, "does-not-exist"))
180+
plugins, err := scanPluginDir(testhelper.TestLogger(t), filepath.Join(dir, "does-not-exist"))
186181
assert.NoError(t, err)
187182
assert.Empty(t, plugins)
188183
})
189184
t.Run("empty dir string", func(t *testing.T) {
190-
plugins, err := scanPluginDir(testLogger(t), "")
185+
plugins, err := scanPluginDir(testhelper.TestLogger(t), "")
191186
assert.NoError(t, err)
192187
assert.Empty(t, plugins)
193188
})
@@ -204,7 +199,7 @@ func Test_newEngine(t *testing.T) {
204199
version: "test-version",
205200
pluginPath: dir,
206201
socketPath: socketPath,
207-
logger: testLogger(t),
202+
logger: testhelper.TestLogger(t),
208203
maxTries: 1,
209204
}
210205
e, err := newEngine(testLoggerCtx(t), cfg)
@@ -226,7 +221,7 @@ func Test_newEngine(t *testing.T) {
226221
version: "test-version",
227222
pluginPath: dir,
228223
socketPath: socketPath,
229-
logger: testLogger(t),
224+
logger: testhelper.TestLogger(t),
230225
maxTries: 1,
231226
}
232227
e, err := newEngine(testLoggerCtx(t), cfg)
@@ -257,7 +252,7 @@ func Test_newEngine(t *testing.T) {
257252
version: "test-version",
258253
enginePluginsDisabled: true,
259254
socketPath: socketPath,
260-
logger: testLogger(t),
255+
logger: testhelper.TestLogger(t),
261256
maxTries: 1,
262257
plugins: map[string]Plugin{"my-builtin": &mockInternalPlugin{pattern: "*", runExitCh: internalPluginRunExitCh, secrets: map[secrets.ID]string{"my-secret": "some-value"}}},
263258
}
@@ -289,7 +284,7 @@ func Test_newEngine(t *testing.T) {
289284
version: "test-version",
290285
pluginPath: dir,
291286
socketPath: socketPath,
292-
logger: testLogger(t),
287+
logger: testhelper.TestLogger(t),
293288
}
294289
e, err := newEngine(testLoggerCtx(t), cfg)
295290
require.NoError(t, err)
@@ -317,7 +312,7 @@ func Test_newEngine(t *testing.T) {
317312
version: "test-version",
318313
enginePluginsDisabled: true,
319314
socketPath: socketPath,
320-
logger: testLogger(t),
315+
logger: testhelper.TestLogger(t),
321316
plugins: map[string]Plugin{"my-builtin": &mockInternalPlugin{
322317
pattern: "*",
323318
blockRunForever: blockRunCh,

engine/exec_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ func Test_launchCmdWatched(t *testing.T) {
5454
runReceived: make(chan struct{}),
5555
runDone: make(chan error, 1),
5656
}
57-
wrapper := launchCmdWatched(testLogger(t), "foo", cmd, 5*time.Second)
57+
wrapper := launchCmdWatched(testhelper.TestLogger(t), "foo", cmd, 5*time.Second)
5858
assert.False(t, isClosed(wrapper.Closed()))
5959
assert.NoError(t, testhelper.WaitForClosedWithTimeout(cmd.runReceived))
6060
errClose := make(chan error)
@@ -77,7 +77,7 @@ func Test_launchCmdWatched(t *testing.T) {
7777
runReceived: make(chan struct{}),
7878
runDone: make(chan error, 1),
7979
}
80-
wrapper := launchCmdWatched(testLogger(t), "foo", cmd, 5*time.Second)
80+
wrapper := launchCmdWatched(testhelper.TestLogger(t), "foo", cmd, 5*time.Second)
8181
assert.NoError(t, testhelper.WaitForClosedWithTimeout(cmd.runReceived))
8282
cmd.runDone <- runErr
8383
assert.EventuallyWithT(t, func(c *assert.CollectT) {
@@ -94,7 +94,7 @@ func Test_launchCmdWatched(t *testing.T) {
9494
killReceived: make(chan struct{}),
9595
killDone: make(chan error, 1),
9696
}
97-
wrapper := launchCmdWatched(testLogger(t), "foo", cmd, 100*time.Millisecond)
97+
wrapper := launchCmdWatched(testhelper.TestLogger(t), "foo", cmd, 100*time.Millisecond)
9898
errClose := make(chan error)
9999
go func() {
100100
errClose <- wrapper.Close()
@@ -116,7 +116,7 @@ func Test_launchCmdWatched(t *testing.T) {
116116
killReceived: make(chan struct{}),
117117
killDone: make(chan error, 1),
118118
}
119-
wrapper := launchCmdWatched(testLogger(t), "foo", cmd, time.Second)
119+
wrapper := launchCmdWatched(testhelper.TestLogger(t), "foo", cmd, time.Second)
120120
errClose := make(chan error)
121121
go func() {
122122
errClose <- wrapper.Close()
@@ -137,7 +137,7 @@ func Test_launchCmdWatched(t *testing.T) {
137137
signalReceived: make(chan struct{}),
138138
signalDone: make(chan error, 1),
139139
}
140-
wrapper := launchCmdWatched(testLogger(t), "foo", cmd, time.Second)
140+
wrapper := launchCmdWatched(testhelper.TestLogger(t), "foo", cmd, time.Second)
141141
errClose := make(chan error)
142142
go func() {
143143
errClose <- wrapper.Close()

engine/manager_test.go

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,14 @@ import (
44
"testing"
55

66
"github.com/stretchr/testify/assert"
7+
8+
"github.com/docker/secrets-engine/internal/testhelper"
79
)
810

911
func TestManager_Register(t *testing.T) {
1012
t.Parallel()
1113
t.Run("add and remove", func(t *testing.T) {
12-
m := &manager{logger: testLogger(t)}
14+
m := &manager{logger: testhelper.TestLogger(t)}
1315
p := &mockRuntime{name: "foo"}
1416
rm, err := m.Register(p)
1517
assert.NoError(t, err)
@@ -18,7 +20,7 @@ func TestManager_Register(t *testing.T) {
1820
assert.Empty(t, m.GetAll())
1921
})
2022
t.Run("can register multiple plugins with different names and result of GetAll is sorted", func(t *testing.T) {
21-
m := &manager{logger: testLogger(t)}
23+
m := &manager{logger: testhelper.TestLogger(t)}
2224
p1 := &mockRuntime{name: "foo"}
2325
_, err := m.Register(p1)
2426
assert.NoError(t, err)
@@ -30,7 +32,7 @@ func TestManager_Register(t *testing.T) {
3032
assert.Equal(t, []runtime{p1}, m.GetAll())
3133
})
3234
t.Run("cannot register another plugin with same name", func(t *testing.T) {
33-
m := &manager{logger: testLogger(t)}
35+
m := &manager{logger: testhelper.TestLogger(t)}
3436
p1 := &mockRuntime{name: "bar"}
3537
_, err := m.Register(p1)
3638
assert.NoError(t, err)
@@ -39,7 +41,7 @@ func TestManager_Register(t *testing.T) {
3941
assert.ErrorContains(t, err, "already exists")
4042
})
4143
t.Run("cannot register plugin without a name", func(t *testing.T) {
42-
m := &manager{logger: testLogger(t)}
44+
m := &manager{logger: testhelper.TestLogger(t)}
4345
p := &mockRuntime{}
4446
_, err := m.Register(p)
4547
assert.ErrorContains(t, err, "no plugin name")

engine/plugin_test.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ func Test_newPlugin(t *testing.T) {
109109
},
110110
E: []secrets.Envelope{{ID: dummy.MockSecretID, Value: []byte(dummy.MockSecretValue)}},
111111
})
112-
p, err := newLaunchedPlugin(testLogger(t), cmd, runtimeCfg{
112+
p, err := newLaunchedPlugin(testhelper.TestLogger(t), cmd, runtimeCfg{
113113
name: pluginNameFromTestName(t),
114114
out: pluginCfgOut{engineName: mockEngineName, engineVersion: mockEngineVersion, requestTimeout: 30 * time.Second},
115115
})
@@ -145,7 +145,7 @@ func Test_newPlugin(t *testing.T) {
145145
},
146146
ErrGetSecret: errGetSecret,
147147
})
148-
p, err := newLaunchedPlugin(testLogger(t), cmd, runtimeCfg{
148+
p, err := newLaunchedPlugin(testhelper.TestLogger(t), cmd, runtimeCfg{
149149
name: pluginNameFromTestName(t),
150150
out: pluginCfgOut{engineName: mockEngineName, engineVersion: mockEngineVersion, requestTimeout: 30 * time.Second},
151151
})
@@ -171,7 +171,7 @@ func Test_newPlugin(t *testing.T) {
171171
},
172172
IgnoreSigint: true,
173173
})
174-
p, err := newLaunchedPlugin(testLogger(t), cmd, runtimeCfg{
174+
p, err := newLaunchedPlugin(testhelper.TestLogger(t), cmd, runtimeCfg{
175175
name: pluginNameFromTestName(t),
176176
out: pluginCfgOut{engineName: mockEngineName, engineVersion: mockEngineVersion, requestTimeout: 30 * time.Second},
177177
})
@@ -190,7 +190,7 @@ func Test_newPlugin(t *testing.T) {
190190
},
191191
IgnoreSigint: true,
192192
})
193-
p, err := newLaunchedPlugin(testLogger(t), cmd, runtimeCfg{
193+
p, err := newLaunchedPlugin(testhelper.TestLogger(t), cmd, runtimeCfg{
194194
name: pluginNameFromTestName(t),
195195
out: pluginCfgOut{engineName: mockEngineName, engineVersion: mockEngineVersion, requestTimeout: 30 * time.Second},
196196
})
@@ -219,7 +219,7 @@ func Test_newPlugin(t *testing.T) {
219219
ExitCode: 0,
220220
},
221221
})
222-
p, err := newLaunchedPlugin(testLogger(t), cmd, runtimeCfg{
222+
p, err := newLaunchedPlugin(testhelper.TestLogger(t), cmd, runtimeCfg{
223223
name: pluginNameFromTestName(t),
224224
out: pluginCfgOut{engineName: mockEngineName, engineVersion: mockEngineVersion, requestTimeout: 30 * time.Second},
225225
})
@@ -253,7 +253,7 @@ func Test_newExternalPlugin(t *testing.T) {
253253
name: "create external plugin",
254254
test: func(t *testing.T, l net.Listener, conn net.Conn) {
255255
t.Helper()
256-
m := newMockExternalRuntime(testLogger(t), l)
256+
m := newMockExternalRuntime(testhelper.TestLogger(t), l)
257257

258258
plugin := newMockedPlugin()
259259
s, err := p.New(plugin, p.WithPluginName("my-plugin"), p.WithConnection(conn))
@@ -282,7 +282,7 @@ func Test_newExternalPlugin(t *testing.T) {
282282
name: "plugin returns error on GetSecret",
283283
test: func(t *testing.T, l net.Listener, conn net.Conn) {
284284
t.Helper()
285-
m := newMockExternalRuntime(testLogger(t), l)
285+
m := newMockExternalRuntime(testhelper.TestLogger(t), l)
286286

287287
s, err := p.New(newMockedPlugin(WithID("rewrite-id")), p.WithPluginName("my-plugin"), p.WithConnection(conn))
288288
require.NoError(t, err)
@@ -304,7 +304,7 @@ func Test_newExternalPlugin(t *testing.T) {
304304
name: "cancelling plugin.run() shuts down the runtime",
305305
test: func(t *testing.T, l net.Listener, conn net.Conn) {
306306
t.Helper()
307-
m := newMockExternalRuntime(testLogger(t), l)
307+
m := newMockExternalRuntime(testhelper.TestLogger(t), l)
308308

309309
s, err := p.New(newMockedPlugin(), p.WithPluginName("my-plugin"), p.WithConnection(conn))
310310
require.NoError(t, err)
@@ -332,7 +332,7 @@ func Test_newExternalPlugin(t *testing.T) {
332332
name: "plugins with invalid patterns are rejected",
333333
test: func(t *testing.T, l net.Listener, conn net.Conn) {
334334
t.Helper()
335-
m := newMockExternalRuntime(testLogger(t), l)
335+
m := newMockExternalRuntime(testhelper.TestLogger(t), l)
336336

337337
doneRuntime := make(chan struct{})
338338
go func() {

engine/registration_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import (
1212
"google.golang.org/protobuf/proto"
1313

1414
resolverv1 "github.com/docker/secrets-engine/internal/api/resolver/v1"
15+
"github.com/docker/secrets-engine/internal/testhelper"
1516
)
1617

1718
var (
@@ -175,7 +176,7 @@ func Test_RegisterPlugin(t *testing.T) {
175176
}
176177
for _, tt := range tests {
177178
t.Run(tt.name, func(t *testing.T) {
178-
s := &RegisterService{logger: testLogger(t), r: tt.r}
179+
s := &RegisterService{logger: testhelper.TestLogger(t), r: tt.r}
179180
req := resolverv1.RegisterPluginRequest_builder{
180181
Name: proto.String(tt.in.name),
181182
Version: proto.String(tt.in.version),

internal/testhelper/testing.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ package testhelper
33
import (
44
"errors"
55
"math/rand"
6+
"testing"
67
"time"
8+
9+
"github.com/docker/secrets-engine/internal/logging"
710
)
811

912
func WaitForErrorWithTimeout(in <-chan error) error {
@@ -58,3 +61,8 @@ func randString(n int) string {
5861
}
5962
return string(b)
6063
}
64+
65+
func TestLogger(t *testing.T) logging.Logger {
66+
t.Helper()
67+
return logging.NewDefaultLogger(t.Name())
68+
}

0 commit comments

Comments
 (0)