Add test for archive breakout test for lchmod
Signed-off-by: Derek McGowan <derek@mcg.dev>
This commit is contained in:
parent
a8ef1fc488
commit
bc4e416c88
@ -243,6 +243,11 @@ func TestBreakouts(t *testing.T) {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
errFileDiff := errors.New("files differ")
|
errFileDiff := errors.New("files differ")
|
||||||
|
td, err := ioutil.TempDir("", "test-breakouts-")
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer os.RemoveAll(td)
|
||||||
|
|
||||||
isSymlinkFile := func(f string) func(string) error {
|
isSymlinkFile := func(f string) func(string) error {
|
||||||
return func(root string) error {
|
return func(root string) error {
|
||||||
@ -744,6 +749,36 @@ func TestBreakouts(t *testing.T) {
|
|||||||
// resolution ends up just removing etc
|
// resolution ends up just removing etc
|
||||||
validator: fileNotExists("etc/passwd"),
|
validator: fileNotExists("etc/passwd"),
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
|
||||||
|
name: "HardlinkSymlinkChmod",
|
||||||
|
w: func() tartest.WriterToTar {
|
||||||
|
p := filepath.Join(td, "perm400")
|
||||||
|
if err := ioutil.WriteFile(p, []byte("..."), 0400); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
ep := filepath.Join(td, "also-exists-outside-root")
|
||||||
|
if err := ioutil.WriteFile(ep, []byte("..."), 0640); err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
return tartest.TarAll(
|
||||||
|
tc.Symlink(p, ep),
|
||||||
|
tc.Link(ep, "sketchylink"),
|
||||||
|
)
|
||||||
|
}(),
|
||||||
|
validator: func(string) error {
|
||||||
|
p := filepath.Join(td, "perm400")
|
||||||
|
fi, err := os.Lstat(p)
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
if perm := fi.Mode() & os.ModePerm; perm != 0400 {
|
||||||
|
return errors.Errorf("%s perm changed from 0400 to %04o", p, perm)
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
},
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, bo := range breakouts {
|
for _, bo := range breakouts {
|
||||||
|
Loading…
Reference in New Issue
Block a user