Skip to content

Commit

Permalink
stop filling /tmp with test files
Browse files Browse the repository at this point in the history
  • Loading branch information
sechmann committed Jul 8, 2024
1 parent 3f876ce commit 02adb02
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 17 deletions.
1 change: 1 addition & 0 deletions internal/apiserver/auth/sessionstore_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,6 +48,7 @@ func TestSessionStore_SetAndGetFromCache(t *testing.T) {
if err := db.AddDevice(ctx, device); err != nil {
t.Fatal(err)
}

err := store.Set(ctx, session)
assert.NoError(t, err)

Expand Down
28 changes: 21 additions & 7 deletions internal/apiserver/testdatabase/testdatabase.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"fmt"
"net/netip"
"os"
"path/filepath"
"strings"
"testing"
"time"
Expand All @@ -20,16 +21,29 @@ const (
)

func Setup(t *testing.T) database.Database {
tempFile, err := os.CreateTemp(os.TempDir(), fmt.Sprintf("%s*.db", strings.ReplaceAll(t.Name(), "/", "_")))
testDir := filepath.Join(os.TempDir(), "naisdevice-tests")
err := os.MkdirAll(testDir, 0o755)
if err != nil {
t.Fatalf("unable to setup test dir for database tests: %v", err)
}
tempFile, err := os.CreateTemp(testDir, fmt.Sprintf("%s*.db", strings.ReplaceAll(t.Name(), "/", "_")))
if err != nil {
t.Fatalf("unable to setup test database: %v", err)
}
t.Logf("Created tmp database in: %v", tempFile.Name())
// t.Cleanup(func() {
// if cleanErr := os.Remove(tempFile.Name()); cleanErr != nil {
// t.Logf("unable to clean up test database: %v", err)
// }
// })
t.Logf("created database in: %v", tempFile.Name())
t.Cleanup(func() {
if t.Failed() {
t.Logf("test failed, leaving test database in: %v", tempFile.Name())
} else {
for _, ext := range []string{"", "-wal", "-shm"} {
if err := os.Remove(tempFile.Name() + ext); err != nil {
t.Logf("unable to clean up test database: %v: %v", tempFile.Name(), err)
} else {
t.Logf("cleaned up test database: %v", tempFile.Name())
}
}
}
})

ipAllocator := ip.NewV4Allocator(netip.MustParsePrefix(wireguardNetworkAddress), []string{apiserverWireGuardIP})
prefix := netip.MustParsePrefix("fd00::/64")
Expand Down
48 changes: 40 additions & 8 deletions internal/helper/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,22 +9,44 @@ import (
)

func TestAllFilesAreZippedWhenPresent(t *testing.T) {
filesToZip := createTempFiles()
zipLocation, _ := ZipLogFiles(filesToZip)
filesToZip := createTempFiles(t)
zipLocation, err := ZipLogFiles(filesToZip)
if err != nil {
t.Fatal(err)
}
t.Cleanup(removeTestFile(t, zipLocation))

zipfile, _ := zip.OpenReader(zipLocation)
zipfile, err := zip.OpenReader(zipLocation)
if err != nil {
t.Fatal(err)
}
defer zipfile.Close()

filesInZip := zipfile.File
assert.Equal(t, len(filesToZip), len(filesInZip))
}

func removeTestFile(t *testing.T, file string) func() {
return func() {
if err := os.Remove(file); err != nil {
t.Logf("unable to clean up temp file: %v", err)
}
}
}

func TestNonExistingFilesAreSkipped(t *testing.T) {
files := createTempFiles()
files := createTempFiles(t)
files = append(files, "NonExisting")
zipLocation, _ := ZipLogFiles(files)
zipLocation, err := ZipLogFiles(files)
if err != nil {
t.Fatal(err)
}
t.Cleanup(removeTestFile(t, zipLocation))

zipfile, _ := zip.OpenReader(zipLocation)
zipfile, err := zip.OpenReader(zipLocation)
if err != nil {
t.Fatal(err)
}
defer zipfile.Close()

filesInZip := zipfile.File
Expand All @@ -37,10 +59,20 @@ func TestEmptyFileListYieldsError(t *testing.T) {
assert.Error(t, err)
}

func createTempFiles() []string {
func createTempFiles(t *testing.T) []string {
t.Helper()
var files []string
for i := 0; i <= 5; i++ {
file, _ := os.CreateTemp(os.TempDir(), "txt")
tempDir := t.TempDir()
file, err := os.CreateTemp(tempDir, "txt")
if err != nil {
t.Fatal(err)
}
t.Cleanup(func() {
if err := os.Remove(file.Name()); err != nil {
t.Logf("unable to clean up temp file: %v", err)
}
})
files = append(files, file.Name())
}
return files
Expand Down
18 changes: 16 additions & 2 deletions internal/integration_test/device_helper_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,25 @@ import (

func NewHelper(t *testing.T, log *logrus.Entry, osConfigurator helper.OSConfigurator) *grpc.Server {
server := grpc.NewServer()
tempDir, err := os.MkdirTemp("", "naisdevice_helper_test_*")
testDir := filepath.Join(os.TempDir(), "naisdevice-tests")
err := os.MkdirAll(testDir, 0o755)
if err != nil {
t.Fatalf("unable to setup test dir for helper tests: %v", err)
}
tempDir, err := os.MkdirTemp(testDir, "naisdevice_helper_test_*")
assert.NoError(t, err)
tempfile := filepath.Join(tempDir, "test_interface.conf")
t.Cleanup(func() {
os.RemoveAll(tempDir)
if t.Failed() {
t.Logf("test failed, leaving temp dir in: %v", tempDir)
} else {
err := os.RemoveAll(tempDir)
if err != nil {
t.Logf("unable to clean up temp dir: %v", err)
} else {
t.Logf("cleaned up temp dir: %v", tempDir)
}
}
})

helperConfig := helper.Config{
Expand Down

0 comments on commit 02adb02

Please sign in to comment.