mirror of
https://github.com/anchore/syft.git
synced 2026-10-30 22:12:28 +01:00
68 lines
1.3 KiB
Go
68 lines
1.3 KiB
Go
package archive
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestWorkDir_isNotCreatedUntilAskedFor(t *testing.T) {
|
|
ctx, root := scanContext(t)
|
|
w := NewWorkDir(ctx)
|
|
|
|
assert.False(t, w.wasCreated())
|
|
assert.Empty(t, workDirsUnder(t, root))
|
|
|
|
dir, err := w.Path()
|
|
require.NoError(t, err)
|
|
assert.DirExists(t, dir)
|
|
assert.True(t, w.wasCreated())
|
|
assert.Equal(t, []string{dir}, workDirsUnder(t, root))
|
|
}
|
|
|
|
func TestWorkDir_pathIsStableAcrossCalls(t *testing.T) {
|
|
ctx, _ := scanContext(t)
|
|
w := NewWorkDir(ctx)
|
|
|
|
first, err := w.Path()
|
|
require.NoError(t, err)
|
|
second, err := w.Path()
|
|
require.NoError(t, err)
|
|
assert.Equal(t, first, second)
|
|
}
|
|
|
|
func TestWorkDir_removeIsANoOpWhenNothingWasCreated(t *testing.T) {
|
|
ctx, root := scanContext(t)
|
|
w := NewWorkDir(ctx)
|
|
|
|
w.Remove()
|
|
w.Remove()
|
|
|
|
assert.Empty(t, workDirsUnder(t, root))
|
|
}
|
|
|
|
func TestWorkDir_removeDeletesWhatWasCreated(t *testing.T) {
|
|
ctx, _ := scanContext(t)
|
|
w := NewWorkDir(ctx)
|
|
|
|
dir, err := w.Path()
|
|
require.NoError(t, err)
|
|
require.NoError(t, os.WriteFile(filepath.Join(dir, "blob"), []byte("x"), 0o600))
|
|
|
|
w.Remove()
|
|
assert.NoDirExists(t, dir)
|
|
w.Remove()
|
|
}
|
|
|
|
func TestWorkDir_nilHasNowhereToWrite(t *testing.T) {
|
|
var w *WorkDir
|
|
|
|
_, err := w.Path()
|
|
assert.Error(t, err)
|
|
assert.False(t, w.wasCreated())
|
|
w.Remove()
|
|
}
|