Skip to content

Commit ddd5393

Browse files
committed
Fix tests cleanup
1 parent dc00b12 commit ddd5393

1 file changed

Lines changed: 19 additions & 4 deletions

File tree

test/integration/start_test.go

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ func TestStartCommandDockerFlagsEnvVar(t *testing.T) {
518518

519519
ctx := testContext(t)
520520
_, stderr, err := runLstk(t, ctx, "",
521-
env.Environ(testEnvWithHome(t.TempDir(), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-e SERVICES=s3,sqs"),
521+
env.Environ(testEnvWithHome(tempHomeForDockerTest(t), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-e SERVICES=s3,sqs"),
522522
"start")
523523
require.NoError(t, err, "lstk start failed: %s", stderr)
524524

@@ -549,7 +549,7 @@ docker_flags = "-e SERVICES=s3,sqs"
549549

550550
ctx := testContext(t)
551551
_, stderr, err := runLstk(t, ctx, "",
552-
env.Environ(testEnvWithHome(t.TempDir(), "")).With(env.APIEndpoint, mockServer.URL),
552+
env.Environ(testEnvWithHome(tempHomeForDockerTest(t), "")).With(env.APIEndpoint, mockServer.URL),
553553
"--config", configFile, "start")
554554
require.NoError(t, err, "lstk start failed: %s", stderr)
555555

@@ -573,7 +573,7 @@ func TestStartCommandDockerFlagsVolumeMount(t *testing.T) {
573573
tmpDir := t.TempDir()
574574
ctx := testContext(t)
575575
_, stderr, err := runLstk(t, ctx, "",
576-
env.Environ(testEnvWithHome(t.TempDir(), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-v "+tmpDir+":/extra-mount"),
576+
env.Environ(testEnvWithHome(tempHomeForDockerTest(t), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-v "+tmpDir+":/extra-mount"),
577577
"start")
578578
require.NoError(t, err, "lstk start failed: %s", stderr)
579579

@@ -605,7 +605,7 @@ docker_flags = "-e ENFORCE_IAM=1"
605605

606606
ctx := testContext(t)
607607
_, stderr, err := runLstk(t, ctx, "",
608-
env.Environ(testEnvWithHome(t.TempDir(), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-e SERVICES=s3"),
608+
env.Environ(testEnvWithHome(tempHomeForDockerTest(t), "")).With(env.APIEndpoint, mockServer.URL).With(env.DockerFlags, "-e SERVICES=s3"),
609609
"--config", configFile, "start")
610610
require.NoError(t, err, "lstk start failed: %s", stderr)
611611

@@ -617,6 +617,21 @@ docker_flags = "-e ENFORCE_IAM=1"
617617
}
618618

619619
// hasBindTarget checks if any bind mount targets the given container path.
620+
// tempHomeForDockerTest creates a temp HOME dir and registers a Docker-based
621+
// cleanup to remove root-owned files the emulator writes to the volume dir
622+
// before Go's TempDir removal runs (LIFO order).
623+
func tempHomeForDockerTest(t *testing.T) string {
624+
t.Helper()
625+
tmpHome := t.TempDir()
626+
t.Cleanup(func() {
627+
volumeDir := filepath.Join(tmpHome, ".cache", "lstk", "volume")
628+
if _, err := os.Stat(volumeDir); err == nil {
629+
_ = exec.Command("docker", "run", "--rm", "-v", volumeDir+":/d", "alpine", "sh", "-c", "rm -rf /d/*").Run()
630+
}
631+
})
632+
return tmpHome
633+
}
634+
620635
func hasBindTarget(binds []string, containerPath string) bool {
621636
for _, b := range binds {
622637
parts := strings.Split(b, ":")

0 commit comments

Comments
 (0)