Skip to content

Commit 88b1800

Browse files
authored
Merge pull request #1252 from junnplus/fluentd-test
test fluentd log driver without build image
2 parents bea0cc7 + cccf19e commit 88b1800

File tree

1 file changed

+26
-114
lines changed

1 file changed

+26
-114
lines changed

cmd/nerdctl/run_linux_test.go

+26-114
Original file line numberDiff line numberDiff line change
@@ -273,66 +273,27 @@ func TestRunWithFluentdLogDriver(t *testing.T) {
273273
t.Skip("fluentd log driver is not yet implemented on Windows")
274274
}
275275
base := testutil.NewBase(t)
276-
imageName := "test-fluentd-image"
277-
dockerfile := fmt.Sprintf(`
278-
FROM %s
279-
RUN rm -rf /fluentd/etc/test.conf && echo -e '\
280-
<source>\n\
281-
@type forward\n\
282-
</source>\n\
283-
\n\
284-
<match *>\n\
285-
@type file\n\
286-
path /data/fluentd\n\
287-
append true\n\
288-
<buffer>\n\
289-
flush_mode immediate\n\
290-
</buffer>\n\
291-
</match>\n\
292-
'>> /fluentd/etc/test.conf
293-
`, testutil.FluentdImage)
294-
buildCtx, err := createBuildContext(dockerfile)
295-
assert.NilError(t, err)
296-
defer os.RemoveAll(buildCtx)
297-
base.Cmd("build", "-t", imageName, buildCtx).AssertOK()
298-
base.Cmd("build", buildCtx, "-t", imageName).AssertOK()
299-
tempDirectory, err := os.MkdirTemp(t.TempDir(), "rw")
276+
tempDirectory := t.TempDir()
277+
err := os.Chmod(tempDirectory, 0777)
300278
assert.NilError(t, err)
301-
defer os.RemoveAll(tempDirectory)
302-
err = os.Chmod(tempDirectory, 0777)
303-
assert.NilError(t, err)
304-
containerName := imageName + "container"
305-
base.Cmd([]string{
306-
"run",
307-
"-d",
308-
"--name",
309-
containerName,
310-
"-p",
311-
"24224:24224",
312-
"-v",
313-
fmt.Sprintf("%s:/data", tempDirectory),
314-
"-e",
315-
"FLUENTD_CONF=test.conf",
316-
imageName,
317-
}...).AssertOK()
279+
280+
containerName := testutil.Identifier(t)
281+
base.Cmd("run", "-d", "--name", containerName, "-p", "24224:24224",
282+
"-v", fmt.Sprintf("%s:/fluentd/log", tempDirectory), testutil.FluentdImage).AssertOK()
318283
defer base.Cmd("rm", "-f", containerName).AssertOK()
319-
defer base.Cmd("kill", containerName).AssertOK()
320284
time.Sleep(3 * time.Second)
321-
testContainerName := "test-container"
285+
286+
testContainerName := containerName + "test"
322287
base.Cmd("run", "-d", "--log-driver", "fluentd", "--name", testContainerName, testutil.CommonImage,
323288
"sh", "-c", "echo test").AssertOK()
324289
defer base.Cmd("rm", "-f", testContainerName).AssertOK()
290+
325291
inspectedContainer := base.InspectContainer(testContainerName)
326-
matches, err := filepath.Glob(tempDirectory + "/" + "*log")
292+
matches, err := filepath.Glob(tempDirectory + "/" + "data.*.log")
327293
assert.NilError(t, err)
328294
assert.Equal(t, 1, len(matches))
329-
logFile := matches[0]
330-
defer os.Remove(logFile)
331-
file, err := os.Open(logFile)
332-
assert.NilError(t, err)
333-
defer file.Close()
334-
reader := bufio.NewReader(file)
335-
data, _, err := reader.ReadLine()
295+
296+
data, err := os.ReadFile(matches[0])
336297
assert.NilError(t, err)
337298
logData := string(data)
338299
assert.Equal(t, true, strings.Contains(logData, "test"))
@@ -344,76 +305,27 @@ func TestRunWithFluentdLogDriverWithLogOpt(t *testing.T) {
344305
t.Skip("fluentd log driver is not yet implemented on Windows")
345306
}
346307
base := testutil.NewBase(t)
347-
imageName := "test-fluentd-image"
348-
dockerfile := fmt.Sprintf(`
349-
FROM %s
350-
RUN rm -rf /fluentd/etc/test.conf && echo -e '\
351-
<source>\n\
352-
@type forward\n\
353-
</source>\n\
354-
\n\
355-
<match *>\n\
356-
@type file\n\
357-
path /data/fluentd\n\
358-
append true\n\
359-
<buffer>\n\
360-
flush_mode immediate\n\
361-
</buffer>\n\
362-
</match>\n\
363-
'>> /fluentd/etc/test.conf
364-
`, testutil.FluentdImage)
365-
buildCtx, err := createBuildContext(dockerfile)
366-
assert.NilError(t, err)
367-
defer os.RemoveAll(buildCtx)
368-
base.Cmd("build", "-t", imageName, buildCtx).AssertOK()
369-
base.Cmd("build", buildCtx, "-t", imageName).AssertOK()
370-
tempDirectory, err := os.MkdirTemp(t.TempDir(), "rw")
308+
tempDirectory := t.TempDir()
309+
err := os.Chmod(tempDirectory, 0777)
371310
assert.NilError(t, err)
372-
defer os.RemoveAll(tempDirectory)
373-
err = os.Chmod(tempDirectory, 0777)
374-
assert.NilError(t, err)
375-
containerName := imageName + "container"
376-
base.Cmd([]string{
377-
"run",
378-
"-d",
379-
"--name",
380-
containerName,
381-
"-p",
382-
"24225:24224",
383-
"-v",
384-
fmt.Sprintf("%s:/data", tempDirectory),
385-
"-e",
386-
"FLUENTD_CONF=test.conf",
387-
imageName,
388-
}...).AssertOK()
311+
312+
containerName := testutil.Identifier(t)
313+
base.Cmd("run", "-d", "--name", containerName, "-p", "24225:24224",
314+
"-v", fmt.Sprintf("%s:/fluentd/log", tempDirectory), testutil.FluentdImage).AssertOK()
389315
defer base.Cmd("rm", "-f", containerName).AssertOK()
390-
defer base.Cmd("kill", containerName).AssertOK()
391316
time.Sleep(3 * time.Second)
392-
testContainerName := "test-container"
393-
base.Cmd([]string{
394-
"run",
395-
"-d",
396-
"--log-driver",
397-
"fluentd",
398-
"--log-opt",
399-
"fluentd-address=127.0.0.1:24225",
400-
"--name",
401-
testContainerName,
402-
testutil.CommonImage,
403-
"sh", "-c", "echo test2",
404-
}...).AssertOK()
317+
318+
testContainerName := containerName + "test"
319+
base.Cmd("run", "-d", "--log-driver", "fluentd", "--log-opt", "fluentd-address=127.0.0.1:24225",
320+
"--name", testContainerName, testutil.CommonImage, "sh", "-c", "echo test2").AssertOK()
405321
defer base.Cmd("rm", "-f", testContainerName).AssertOK()
322+
406323
inspectedContainer := base.InspectContainer(testContainerName)
407-
matches, err := filepath.Glob(tempDirectory + "/" + "*log")
324+
matches, err := filepath.Glob(tempDirectory + "/" + "data.*.log")
408325
assert.NilError(t, err)
409326
assert.Equal(t, 1, len(matches))
410-
logFile := matches[0]
411-
defer os.Remove(logFile)
412-
file, err := os.Open(logFile)
413-
assert.NilError(t, err)
414-
defer file.Close()
415-
reader := bufio.NewReader(file)
416-
data, _, err := reader.ReadLine()
327+
328+
data, err := os.ReadFile(matches[0])
417329
assert.NilError(t, err)
418330
logData := string(data)
419331
assert.Equal(t, true, strings.Contains(logData, "test2"))

0 commit comments

Comments
 (0)