All checks were successful
Test / Create distribution (push) Successful in 33s
Test / Sandbox (push) Successful in 2m0s
Test / Hakurei (push) Successful in 2m56s
Test / Sandbox (race detector) (push) Successful in 3m57s
Test / Hpkg (push) Successful in 4m7s
Test / Hakurei (race detector) (push) Successful in 4m38s
Test / Flake checks (push) Successful in 1m18s
For formatting user-supplied path strings into overlayfs mount data. Signed-off-by: Ophestra <cat@gensokyo.uk>
50 lines
932 B
Go
50 lines
932 B
Go
package container
|
|
|
|
import (
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
func TestParentPerm(t *testing.T) {
|
|
testCases := []struct {
|
|
perm os.FileMode
|
|
want os.FileMode
|
|
}{
|
|
{0755, 0755},
|
|
{0750, 0750},
|
|
{0705, 0705},
|
|
{0700, 0700},
|
|
{050, 0750},
|
|
{05, 0705},
|
|
{0, 0700},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.perm.String(), func(t *testing.T) {
|
|
if got := parentPerm(tc.perm); got != tc.want {
|
|
t.Errorf("parentPerm: %#o, want %#o", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|
|
|
|
func TestEscapeOverlayDataSegment(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
s string
|
|
want string
|
|
}{
|
|
{"zero", zeroString, zeroString},
|
|
{"multi", `\\\:,:,\\\`, `\\\\\\\:\,\:\,\\\\\\`},
|
|
{"bwrap", `/path :,\`, `/path \:\,\\`},
|
|
}
|
|
|
|
for _, tc := range testCases {
|
|
t.Run(tc.name, func(t *testing.T) {
|
|
if got := escapeOverlayDataSegment(tc.s); got != tc.want {
|
|
t.Errorf("escapeOverlayDataSegment: %s, want %s", got, tc.want)
|
|
}
|
|
})
|
|
}
|
|
}
|