package main import ( "os" "path/filepath" "testing" ) func TestRenameProbeOKSameFilesystem(t *testing.T) { tmpDir := t.TempDir() targetDir := t.TempDir() if err := renameProbeOK(tmpDir, targetDir); err != nil { t.Fatalf("same-filesystem probe: %s", err) } // No litter: probe file removed, nothing else created. entries, err := os.ReadDir(targetDir) if err != nil { t.Fatal(err) } if len(entries) != 0 { t.Errorf("probe left %d entries in target dir", len(entries)) } entries, err = os.ReadDir(tmpDir) if err != nil { t.Fatal(err) } if len(entries) != 0 { t.Errorf("probe left %d entries in tmp dir", len(entries)) } } func TestRenameProbeFailsClosed(t *testing.T) { tmpDir := t.TempDir() t.Run("missing tmp dir", func(t *testing.T) { if err := renameProbeOK(filepath.Join(tmpDir, "nope"), tmpDir); err == nil { t.Error("expected error for missing tmp dir, got nil") } }) t.Run("unwritable target dir", func(t *testing.T) { targetDir := t.TempDir() if err := os.Chmod(targetDir, 0o500); err != nil { t.Fatal(err) } defer os.Chmod(targetDir, 0o700) if err := renameProbeOK(tmpDir, targetDir); err == nil { t.Error("expected error for unwritable target dir, got nil") } }) t.Run("missing target dir", func(t *testing.T) { if err := renameProbeOK(tmpDir, filepath.Join(tmpDir, "nope")); err == nil { t.Error("expected error for missing target dir, got nil") } }) }