diff --git a/pkg/e2e/framework.go b/pkg/e2e/framework.go index 62fe33bc772..8f352770483 100644 --- a/pkg/e2e/framework.go +++ b/pkg/e2e/framework.go @@ -133,13 +133,13 @@ func initializePlugins(t testing.TB, configDir string) { require.NoError(t, os.MkdirAll(filepath.Join(configDir, "cli-plugins"), 0o755), "Failed to create cli-plugins directory") - composePlugin, err := findExecutable(DockerComposeExecutableName) + composePlugin, err := findExecutable(t, DockerComposeExecutableName) if err != nil { t.Errorf("WARNING: docker-compose cli-plugin not found %s", err.Error()) } buildxPlugin, err := findPluginExecutable(DockerBuildxExecutableName) - if os.IsNotExist(err) { - t.Logf("WARNING: docker-buildx cli-plugin not found") + if err != nil { + t.Logf("WARNING: docker-buildx cli-plugin not found, using default buildx installation.") } if err == nil { CopyFile(t, composePlugin, filepath.Join(configDir, "cli-plugins", DockerComposeExecutableName)) @@ -158,19 +158,24 @@ func dirContents(dir string) []string { return res } -func findExecutable(executableName string) (string, error) { +func findExecutable(t testing.TB, executableName string) (string, error) { filename, err := os.Getwd() if err != nil { return "", err } + t.Logf("Current dir %s", filename) root := filepath.Join(filepath.Dir(filename), "..") + t.Logf("Root dir %s", root) + buildPath := filepath.Join(root, "bin", "build") bin, err := filepath.Abs(filepath.Join(buildPath, executableName)) if err != nil { + t.Errorf("Error finding compose binary %s", err.Error()) return "", err } + t.Logf("binary path %s", bin) if _, err := os.Stat(bin); err == nil { return bin, nil } @@ -197,19 +202,28 @@ func findPluginExecutable(pluginExecutableName string) (string, error) { // CopyFile copies a file from a sourceFile to a destinationFile setting permissions to 0755 func CopyFile(t testing.TB, sourceFile string, destinationFile string) { t.Helper() + t.Logf("copy %s to %s", sourceFile, destinationFile) src, err := os.Open(sourceFile) require.NoError(t, err, "Failed to open source file: %s") //nolint:errcheck defer src.Close() + t.Logf("Source file opened %s ", src.Name()) dst, err := os.OpenFile(destinationFile, os.O_RDWR|os.O_CREATE|os.O_TRUNC, 0o755) require.NoError(t, err, "Failed to open destination file: %s", destinationFile) //nolint:errcheck defer dst.Close() + t.Logf("Destination file opened %s ", dst.Name()) _, err = io.Copy(dst, src) require.NoError(t, err, "Failed to copy file: %s", sourceFile) + t.Logf("File copied? %s ", err) + fileStat, err := dst.Stat(); + if err != nil { + t.Logf("Can't get file stat %s ", err) + } + t.Logf("File stat: %+v", fileStat) } // BaseEnvironment provides the minimal environment variables used across all @@ -330,7 +344,7 @@ func ComposeStandalonePath(t testing.TB) string { if !composeStandaloneMode { require.Fail(t, "Not running in standalone mode") } - composeBinary, err := findExecutable(DockerComposeExecutableName) + composeBinary, err := findExecutable(t, DockerComposeExecutableName) require.NoError(t, err, "Could not find standalone Compose binary (%q)", DockerComposeExecutableName) return composeBinary