hs-test: save VPP logs with timestamps 05/41305/2
authorMatus Fabian <[email protected]>
Mon, 29 Jul 2024 11:30:23 +0000 (13:30 +0200)
committerFlorin Coras <[email protected]>
Mon, 29 Jul 2024 16:01:24 +0000 (16:01 +0000)
Type: test

Change-Id: Ia76d23a8d57dfb5570eaf44a9fdb3eabeba01a4d
Signed-off-by: Matus Fabian <[email protected]>
extras/hs-test/infra/container.go

index 7317499..d8bddab 100644 (file)
@@ -7,6 +7,7 @@ import (
        "github.com/docker/go-units"
        "os"
        "os/exec"
+       "regexp"
        "slices"
        "strconv"
        "strings"
@@ -181,9 +182,9 @@ func (c *Container) Create() error {
                c.ctx,
                &containerTypes.Config{
                        Hostname: c.Name,
-                       Image: c.Image,
-                       Env:   c.getEnvVars(),
-                       Cmd:   strings.Split(c.ExtraRunningArgs, " "),
+                       Image:    c.Image,
+                       Env:      c.getEnvVars(),
+                       Cmd:      strings.Split(c.ExtraRunningArgs, " "),
                },
                &containerTypes.HostConfig{
                        Resources: containerTypes.Resources{
@@ -469,7 +470,7 @@ func (c *Container) saveLogs() {
 func (c *Container) log(maxLines int) (string, error) {
        var logOptions containerTypes.LogsOptions
        if maxLines == 0 {
-               logOptions = containerTypes.LogsOptions{ShowStdout: true, ShowStderr: true, Details: true}
+               logOptions = containerTypes.LogsOptions{ShowStdout: true, ShowStderr: true, Details: true, Timestamps: true}
        } else {
                logOptions = containerTypes.LogsOptions{ShowStdout: true, ShowStderr: true, Details: true, Tail: strconv.Itoa(maxLines)}
        }
@@ -491,12 +492,11 @@ func (c *Container) log(maxLines int) (string, error) {
        stdout := stdoutBuf.String()
        stderr := stderrBuf.String()
 
-       stdout = strings.Join(strings.Split(stdout, "==> /dev/null <=="), "")
-       stderr = strings.Join(strings.Split(stderr, "tail: cannot open '' for reading: No such file or directory"), "")
+       re := regexp.MustCompile("(?m)^.*==> /dev/null <==.*$[\r\n]+")
+       stdout = re.ReplaceAllString(stdout, "")
 
-       // remove empty lines after deleting the above-mentioned messages
-       stdout = strings.TrimSpace(stdout)
-       stderr = strings.TrimSpace(stderr)
+       re = regexp.MustCompile("(?m)^.*tail: cannot open '' for reading: No such file or directory.*$[\r\n]+")
+       stderr = re.ReplaceAllString(stderr, "")
 
        return stdout + stderr, err
 }