mirror of
https://github.com/safedep/pmg.git
synced 2026-08-03 07:24:09 +02:00
* feat: add sandbox DX commands * fix: Linter errors * fix: Sandbox deny log parsing * fix: Sandbox docs * refactor: Maintain SSOT across pkg dependencies * fix: Linter errors
74 lines
2.0 KiB
Go
74 lines
2.0 KiB
Go
package util
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestGetTmpdirParent(t *testing.T) {
|
|
// Save original TMPDIR
|
|
originalTmpdir := os.Getenv("TMPDIR")
|
|
defer func() {
|
|
require.NoError(t, os.Setenv("TMPDIR", originalTmpdir))
|
|
}()
|
|
|
|
t.Run("macOS pattern with /var prefix", func(t *testing.T) {
|
|
require.NoError(t, os.Setenv("TMPDIR", "/var/folders/ab/cd1234ef/T/"))
|
|
parents := GetTmpdirParent()
|
|
|
|
assert.Len(t, parents, 2)
|
|
assert.Contains(t, parents, "/var/folders/ab/cd1234ef")
|
|
assert.Contains(t, parents, "/private/var/folders/ab/cd1234ef")
|
|
})
|
|
|
|
t.Run("macOS pattern with /private/var prefix", func(t *testing.T) {
|
|
require.NoError(t, os.Setenv("TMPDIR", "/private/var/folders/xy/z9876543/T/"))
|
|
parents := GetTmpdirParent()
|
|
|
|
assert.Len(t, parents, 2)
|
|
assert.Contains(t, parents, "/private/var/folders/xy/z9876543")
|
|
assert.Contains(t, parents, "/var/folders/xy/z9876543")
|
|
})
|
|
|
|
t.Run("macOS pattern without trailing slash", func(t *testing.T) {
|
|
require.NoError(t, os.Setenv("TMPDIR", "/var/folders/12/abcdefgh/T"))
|
|
parents := GetTmpdirParent()
|
|
|
|
assert.Len(t, parents, 2)
|
|
assert.Contains(t, parents, "/var/folders/12/abcdefgh")
|
|
assert.Contains(t, parents, "/private/var/folders/12/abcdefgh")
|
|
})
|
|
|
|
t.Run("non-macOS pattern returns empty", func(t *testing.T) {
|
|
testCases := []string{
|
|
"/tmp",
|
|
"/var/tmp",
|
|
"/custom/temp",
|
|
"/var/folders/",
|
|
"/var/folders/ab/",
|
|
"/var/folders/abc/def/T/", // XX should be 2 chars, not 3
|
|
}
|
|
|
|
for _, tmpdir := range testCases {
|
|
require.NoError(t, os.Setenv("TMPDIR", tmpdir))
|
|
parents := GetTmpdirParent()
|
|
assert.Empty(t, parents, "Expected empty result for TMPDIR=%s", tmpdir)
|
|
}
|
|
})
|
|
|
|
t.Run("empty TMPDIR returns empty", func(t *testing.T) {
|
|
require.NoError(t, os.Setenv("TMPDIR", ""))
|
|
parents := GetTmpdirParent()
|
|
assert.Empty(t, parents)
|
|
})
|
|
|
|
t.Run("unset TMPDIR returns empty", func(t *testing.T) {
|
|
require.NoError(t, os.Unsetenv("TMPDIR"))
|
|
parents := GetTmpdirParent()
|
|
assert.Empty(t, parents)
|
|
})
|
|
}
|