Use filepath instead of path in storage tests

Signed-off-by: Sunny <darkowlzz@protonmail.com>
This commit is contained in:
Sunny 2022-12-20 23:48:22 +00:00
parent 6134dd97d5
commit b115dda217
1 changed files with 84 additions and 85 deletions

View File

@ -23,7 +23,6 @@ import (
"fmt" "fmt"
"io" "io"
"os" "os"
"path"
"path/filepath" "path/filepath"
"strings" "strings"
"testing" "testing"
@ -268,7 +267,7 @@ func TestStorageRemoveAllButCurrent(t *testing.T) {
t.Fatalf("Valid path did not successfully return: %v", err) t.Fatalf("Valid path did not successfully return: %v", err)
} }
if _, err := s.RemoveAllButCurrent(sourcev1.Artifact{Path: path.Join(dir, "really", "nonexistent")}); err == nil { if _, err := s.RemoveAllButCurrent(sourcev1.Artifact{Path: filepath.Join(dir, "really", "nonexistent")}); err == nil {
t.Fatal("Did not error while pruning non-existent path") t.Fatal("Did not error while pruning non-existent path")
} }
}) })
@ -281,18 +280,18 @@ func TestStorageRemoveAllButCurrent(t *testing.T) {
g.Expect(err).ToNot(HaveOccurred(), "failed to create new storage") g.Expect(err).ToNot(HaveOccurred(), "failed to create new storage")
artifact := sourcev1.Artifact{ artifact := sourcev1.Artifact{
Path: path.Join("foo", "bar", "artifact1.tar.gz"), Path: filepath.Join("foo", "bar", "artifact1.tar.gz"),
} }
// Create artifact dir and artifacts. // Create artifact dir and artifacts.
artifactDir := path.Join(dir, "foo", "bar") artifactDir := filepath.Join(dir, "foo", "bar")
g.Expect(os.MkdirAll(artifactDir, 0o750)).NotTo(HaveOccurred()) g.Expect(os.MkdirAll(artifactDir, 0o750)).NotTo(HaveOccurred())
current := []string{ current := []string{
path.Join(artifactDir, "artifact1.tar.gz"), filepath.Join(artifactDir, "artifact1.tar.gz"),
} }
wantDeleted := []string{ wantDeleted := []string{
path.Join(artifactDir, "file1.txt"), filepath.Join(artifactDir, "file1.txt"),
path.Join(artifactDir, "file2.txt"), filepath.Join(artifactDir, "file2.txt"),
} }
createFile := func(files []string) { createFile := func(files []string) {
for _, c := range files { for _, c := range files {
@ -321,15 +320,15 @@ func TestStorageRemoveAll(t *testing.T) {
}{ }{
{ {
name: "delete non-existent path", name: "delete non-existent path",
artifactPath: path.Join("foo", "bar", "artifact1.tar.gz"), artifactPath: filepath.Join("foo", "bar", "artifact1.tar.gz"),
createArtifactPath: false, createArtifactPath: false,
wantDeleted: "", wantDeleted: "",
}, },
{ {
name: "delete existing path", name: "delete existing path",
artifactPath: path.Join("foo", "bar", "artifact1.tar.gz"), artifactPath: filepath.Join("foo", "bar", "artifact1.tar.gz"),
createArtifactPath: true, createArtifactPath: true,
wantDeleted: path.Join("foo", "bar"), wantDeleted: filepath.Join("foo", "bar"),
}, },
} }
@ -346,7 +345,7 @@ func TestStorageRemoveAll(t *testing.T) {
} }
if tt.createArtifactPath { if tt.createArtifactPath {
g.Expect(os.MkdirAll(path.Join(dir, tt.artifactPath), 0o750)).ToNot(HaveOccurred()) g.Expect(os.MkdirAll(filepath.Join(dir, tt.artifactPath), 0o750)).ToNot(HaveOccurred())
} }
deleted, err := s.RemoveAll(artifact) deleted, err := s.RemoveAll(artifact)
@ -449,7 +448,7 @@ func TestStorageCopyFromPath(t *testing.T) {
} }
func TestStorage_getGarbageFiles(t *testing.T) { func TestStorage_getGarbageFiles(t *testing.T) {
artifactFolder := path.Join("foo", "bar") artifactFolder := filepath.Join("foo", "bar")
tests := []struct { tests := []struct {
name string name string
artifactPaths []string artifactPaths []string
@ -462,119 +461,119 @@ func TestStorage_getGarbageFiles(t *testing.T) {
{ {
name: "delete files based on maxItemsToBeRetained", name: "delete files based on maxItemsToBeRetained",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
}, },
createPause: time.Millisecond * 10, createPause: time.Millisecond * 10,
ttl: time.Minute * 2, ttl: time.Minute * 2,
totalCountLimit: 10, totalCountLimit: 10,
maxItemsToBeRetained: 2, maxItemsToBeRetained: 2,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
}, },
}, },
{ {
name: "delete files based on maxItemsToBeRetained, ignore lock files", name: "delete files based on maxItemsToBeRetained, ignore lock files",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact1.tar.gz.lock"), filepath.Join(artifactFolder, "artifact1.tar.gz.lock"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz.lock"), filepath.Join(artifactFolder, "artifact2.tar.gz.lock"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz.lock"), filepath.Join(artifactFolder, "artifact3.tar.gz.lock"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
}, },
createPause: time.Millisecond * 10, createPause: time.Millisecond * 10,
ttl: time.Minute * 2, ttl: time.Minute * 2,
totalCountLimit: 10, totalCountLimit: 10,
maxItemsToBeRetained: 2, maxItemsToBeRetained: 2,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
}, },
}, },
{ {
name: "delete files based on ttl", name: "delete files based on ttl",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
}, },
createPause: time.Second * 1, createPause: time.Second * 1,
ttl: time.Second*3 + time.Millisecond*500, ttl: time.Second*3 + time.Millisecond*500,
totalCountLimit: 10, totalCountLimit: 10,
maxItemsToBeRetained: 4, maxItemsToBeRetained: 4,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
}, },
}, },
{ {
name: "delete files based on ttl, ignore lock files", name: "delete files based on ttl, ignore lock files",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact1.tar.gz.lock"), filepath.Join(artifactFolder, "artifact1.tar.gz.lock"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz.lock"), filepath.Join(artifactFolder, "artifact2.tar.gz.lock"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
}, },
createPause: time.Second * 1, createPause: time.Second * 1,
ttl: time.Second*3 + time.Millisecond*500, ttl: time.Second*3 + time.Millisecond*500,
totalCountLimit: 10, totalCountLimit: 10,
maxItemsToBeRetained: 4, maxItemsToBeRetained: 4,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
}, },
}, },
{ {
name: "delete files based on ttl and maxItemsToBeRetained", name: "delete files based on ttl and maxItemsToBeRetained",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
path.Join(artifactFolder, "artifact6.tar.gz"), filepath.Join(artifactFolder, "artifact6.tar.gz"),
}, },
createPause: time.Second * 1, createPause: time.Second * 1,
ttl: time.Second*5 + time.Millisecond*500, ttl: time.Second*5 + time.Millisecond*500,
totalCountLimit: 10, totalCountLimit: 10,
maxItemsToBeRetained: 4, maxItemsToBeRetained: 4,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
}, },
}, },
{ {
name: "delete files based on ttl and maxItemsToBeRetained and totalCountLimit", name: "delete files based on ttl and maxItemsToBeRetained and totalCountLimit",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
path.Join(artifactFolder, "artifact5.tar.gz"), filepath.Join(artifactFolder, "artifact5.tar.gz"),
path.Join(artifactFolder, "artifact6.tar.gz"), filepath.Join(artifactFolder, "artifact6.tar.gz"),
}, },
createPause: time.Millisecond * 500, createPause: time.Millisecond * 500,
ttl: time.Millisecond * 500, ttl: time.Millisecond * 500,
totalCountLimit: 3, totalCountLimit: 3,
maxItemsToBeRetained: 2, maxItemsToBeRetained: 2,
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
}, },
}, },
} }
@ -590,9 +589,9 @@ func TestStorage_getGarbageFiles(t *testing.T) {
artifact := sourcev1.Artifact{ artifact := sourcev1.Artifact{
Path: tt.artifactPaths[len(tt.artifactPaths)-1], Path: tt.artifactPaths[len(tt.artifactPaths)-1],
} }
g.Expect(os.MkdirAll(path.Join(dir, artifactFolder), 0o750)).ToNot(HaveOccurred()) g.Expect(os.MkdirAll(filepath.Join(dir, artifactFolder), 0o750)).ToNot(HaveOccurred())
for _, artifactPath := range tt.artifactPaths { for _, artifactPath := range tt.artifactPaths {
f, err := os.Create(path.Join(dir, artifactPath)) f, err := os.Create(filepath.Join(dir, artifactPath))
g.Expect(err).ToNot(HaveOccurred()) g.Expect(err).ToNot(HaveOccurred())
g.Expect(f.Close()).ToNot(HaveOccurred()) g.Expect(f.Close()).ToNot(HaveOccurred())
time.Sleep(tt.createPause) time.Sleep(tt.createPause)
@ -618,7 +617,7 @@ func TestStorage_getGarbageFiles(t *testing.T) {
} }
func TestStorage_GarbageCollect(t *testing.T) { func TestStorage_GarbageCollect(t *testing.T) {
artifactFolder := path.Join("foo", "bar") artifactFolder := filepath.Join("foo", "bar")
tests := []struct { tests := []struct {
name string name string
artifactPaths []string artifactPaths []string
@ -630,32 +629,32 @@ func TestStorage_GarbageCollect(t *testing.T) {
{ {
name: "garbage collects", name: "garbage collects",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact1.tar.gz.lock"), filepath.Join(artifactFolder, "artifact1.tar.gz.lock"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz.lock"), filepath.Join(artifactFolder, "artifact2.tar.gz.lock"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
}, },
wantCollected: []string{ wantCollected: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
}, },
wantDeleted: []string{ wantDeleted: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact1.tar.gz.lock"), filepath.Join(artifactFolder, "artifact1.tar.gz.lock"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz.lock"), filepath.Join(artifactFolder, "artifact2.tar.gz.lock"),
}, },
ctxTimeout: time.Second * 1, ctxTimeout: time.Second * 1,
}, },
{ {
name: "garbage collection fails with context timeout", name: "garbage collection fails with context timeout",
artifactPaths: []string{ artifactPaths: []string{
path.Join(artifactFolder, "artifact1.tar.gz"), filepath.Join(artifactFolder, "artifact1.tar.gz"),
path.Join(artifactFolder, "artifact2.tar.gz"), filepath.Join(artifactFolder, "artifact2.tar.gz"),
path.Join(artifactFolder, "artifact3.tar.gz"), filepath.Join(artifactFolder, "artifact3.tar.gz"),
path.Join(artifactFolder, "artifact4.tar.gz"), filepath.Join(artifactFolder, "artifact4.tar.gz"),
}, },
wantErr: "context deadline exceeded", wantErr: "context deadline exceeded",
ctxTimeout: time.Nanosecond * 1, ctxTimeout: time.Nanosecond * 1,
@ -673,9 +672,9 @@ func TestStorage_GarbageCollect(t *testing.T) {
artifact := sourcev1.Artifact{ artifact := sourcev1.Artifact{
Path: tt.artifactPaths[len(tt.artifactPaths)-1], Path: tt.artifactPaths[len(tt.artifactPaths)-1],
} }
g.Expect(os.MkdirAll(path.Join(dir, artifactFolder), 0o750)).ToNot(HaveOccurred()) g.Expect(os.MkdirAll(filepath.Join(dir, artifactFolder), 0o750)).ToNot(HaveOccurred())
for i, artifactPath := range tt.artifactPaths { for i, artifactPath := range tt.artifactPaths {
f, err := os.Create(path.Join(dir, artifactPath)) f, err := os.Create(filepath.Join(dir, artifactPath))
g.Expect(err).ToNot(HaveOccurred()) g.Expect(err).ToNot(HaveOccurred())
g.Expect(f.Close()).ToNot(HaveOccurred()) g.Expect(f.Close()).ToNot(HaveOccurred())
if i != len(tt.artifactPaths)-1 { if i != len(tt.artifactPaths)-1 {