diff --git a/Dockerfile b/Dockerfile index e38d8681ef57b2e11e177b45dea46134f5668ba4..c28a364a682a87db3cfb2ae790c7bccd4db63093 100644 --- a/Dockerfile +++ b/Dockerfile @@ -7,7 +7,7 @@ RUN apk add --no-cache git musl-dev dos2unix build-base WORKDIR /opt COPY . /opt -RUN dos2unix ./build.sh ./docker/run.sh +RUN dos2unix ./build.sh ./docker/run.sh && chmod 744 ./build.sh RUN ./build.sh # ---- Stage 1 ---- @@ -27,7 +27,7 @@ RUN apk add --no-cache \ COPY ./config.sample.yaml /etc/media-repo.yaml.sample COPY ./docker/run.sh /usr/local/bin/ -RUN dos2unix /usr/local/bin/run.sh +RUN dos2unix /usr/local/bin/run.sh && chmod 744 /usr/local/bin/run.sh ENV REPO_CONFIG=/data/media-repo.yaml diff --git a/test/test_internals/deps.go b/test/test_internals/deps.go index 7691d1ee19041c4697bc08931779f5e971fb5c90..37151d228ee75dafcb381b5f779aad63ca70903d 100644 --- a/test/test_internals/deps.go +++ b/test/test_internals/deps.go @@ -3,6 +3,7 @@ package test_internals import ( "context" "fmt" + "io" "log" "os" "path" @@ -131,3 +132,23 @@ func (c *ContainerDeps) Teardown() { } c.depNet.Teardown() } + +func (c *ContainerDeps) Debug() { + for i, m := range c.Machines { + logs, err := m.Logs() + if err != nil { + log.Fatal(err) + } + b, err := io.ReadAll(logs) + if err != nil { + log.Fatal(err) + } + fmt.Printf("[MMR Deps] Logs from index %d (%s)", i, m.HttpUrl) + fmt.Println() + fmt.Println(string(b)) + err = logs.Close() + if err != nil { + log.Fatal(err) + } + } +} diff --git a/test/test_internals/deps_docker_context.go b/test/test_internals/deps_docker_context.go index 681340c3bb9145380482e6b4b6373496db247a1c..31a6ddba6af7f60eb8333a8199eb519f3f6a29e0 100644 --- a/test/test_internals/deps_docker_context.go +++ b/test/test_internals/deps_docker_context.go @@ -2,7 +2,6 @@ package test_internals import ( "archive/tar" - "fmt" "io" "io/fs" "os" @@ -19,8 +18,7 @@ func createDockerContext() (*os.File, error) { } tmpF, err := os.CreateTemp(os.TempDir(), "mmr-docker-context") - pw := io.MultiWriter(tmpF) - tarContext := tar.NewWriter(pw) + tarContext := tar.NewWriter(tmpF) err = filepath.WalkDir(".", func(path string, d fs.DirEntry, err error) error { if err != nil { @@ -37,7 +35,7 @@ func createDockerContext() (*os.File, error) { if match := ignoreFile.MatchesPath(path); match { return nil } - fmt.Println("[Image Build] Including file: ", path) + //fmt.Println("[Image Build] Including file: ", path) err = tarContext.WriteHeader(&tar.Header{ Name: strings.ReplaceAll(path, "\\", "/"), Mode: int64(info.Mode()), @@ -71,10 +69,5 @@ func createDockerContext() (*os.File, error) { return nil, err } - tmpF, err = os.Open(tmpF.Name()) - if err != nil { - return nil, err - } - return os.Open(tmpF.Name()) } diff --git a/test/test_internals/deps_mmr.go b/test/test_internals/deps_mmr.go index 96c0ec4cd89e7fbc2b21abb62fb1ac6b2175e4a1..56ff45f5183e3df54952dd7851efb3dfed9a29e8 100644 --- a/test/test_internals/deps_mmr.go +++ b/test/test_internals/deps_mmr.go @@ -4,6 +4,7 @@ import ( "context" "errors" "fmt" + "io" "log" "os" "path" @@ -167,11 +168,13 @@ func (c *mmrContainer) Teardown() { log.Fatalf("Error cleaning up MMR config file '%s': %s", c.tmpConfigPath, err.Error()) } if mmrCachedContext != nil { - if err := mmrCachedContext.Close(); err != nil && !os.IsNotExist(err) { - log.Fatalf("Error closing up MMR cached context file '%s': %s", mmrCachedContext.Name(), err.Error()) - } + _ = mmrCachedContext.Close() // ignore errors because testcontainers might have already closed it if err := os.Remove(mmrCachedContext.Name()); err != nil && !os.IsNotExist(err) { log.Fatalf("Error cleaning up MMR cached context file '%s': %s", mmrCachedContext.Name(), err.Error()) } } } + +func (c *mmrContainer) Logs() (io.ReadCloser, error) { + return c.container.Logs(c.ctx) +} diff --git a/test/upload_suite_test.go b/test/upload_suite_test.go index 45456563529ac0e7844186eb886283cf531098d1..507629127c73e21e09a0b5e0054117a70a77ff19 100644 --- a/test/upload_suite_test.go +++ b/test/upload_suite_test.go @@ -25,6 +25,9 @@ func (s *UploadTestSuite) SetupSuite() { func (s *UploadTestSuite) TearDownSuite() { if s.deps != nil { + if s.T().Failed() { + s.deps.Debug() + } s.deps.Teardown() } }