|
@@ -9,6 +9,8 @@ import (
|
|
"path/filepath"
|
|
"path/filepath"
|
|
"syscall"
|
|
"syscall"
|
|
"testing"
|
|
"testing"
|
|
|
|
+
|
|
|
|
+ "github.com/stretchr/testify/require"
|
|
)
|
|
)
|
|
|
|
|
|
type node struct {
|
|
type node struct {
|
|
@@ -76,12 +78,9 @@ func TestMkdirAllAs(t *testing.T) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-func TestMkdirAllNewAs(t *testing.T) {
|
|
|
|
-
|
|
|
|
|
|
+func TestMkdirAllAndChownNew(t *testing.T) {
|
|
dirName, err := ioutil.TempDir("", "mkdirnew")
|
|
dirName, err := ioutil.TempDir("", "mkdirnew")
|
|
- if err != nil {
|
|
|
|
- t.Fatalf("Couldn't create temp dir: %v", err)
|
|
|
|
- }
|
|
|
|
|
|
+ require.NoError(t, err)
|
|
defer os.RemoveAll(dirName)
|
|
defer os.RemoveAll(dirName)
|
|
|
|
|
|
testTree := map[string]node{
|
|
testTree := map[string]node{
|
|
@@ -91,49 +90,32 @@ func TestMkdirAllNewAs(t *testing.T) {
|
|
"lib/x86_64": {45, 45},
|
|
"lib/x86_64": {45, 45},
|
|
"lib/x86_64/share": {1, 1},
|
|
"lib/x86_64/share": {1, 1},
|
|
}
|
|
}
|
|
-
|
|
|
|
- if err := buildTree(dirName, testTree); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ require.NoError(t, buildTree(dirName, testTree))
|
|
|
|
|
|
// test adding a directory to a pre-existing dir; only the new dir is owned by the uid/gid
|
|
// test adding a directory to a pre-existing dir; only the new dir is owned by the uid/gid
|
|
- if err := MkdirAllNewAs(filepath.Join(dirName, "usr", "share"), 0755, 99, 99); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ err = MkdirAllAndChownNew(filepath.Join(dirName, "usr", "share"), 0755, IDPair{99, 99})
|
|
|
|
+ require.NoError(t, err)
|
|
|
|
+
|
|
testTree["usr/share"] = node{99, 99}
|
|
testTree["usr/share"] = node{99, 99}
|
|
verifyTree, err := readTree(dirName, "")
|
|
verifyTree, err := readTree(dirName, "")
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if err := compareTrees(testTree, verifyTree); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ require.NoError(t, err)
|
|
|
|
+ require.NoError(t, compareTrees(testTree, verifyTree))
|
|
|
|
|
|
// test 2-deep new directories--both should be owned by the uid/gid pair
|
|
// test 2-deep new directories--both should be owned by the uid/gid pair
|
|
- if err := MkdirAllNewAs(filepath.Join(dirName, "lib", "some", "other"), 0755, 101, 101); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ err = MkdirAllAndChownNew(filepath.Join(dirName, "lib", "some", "other"), 0755, IDPair{101, 101})
|
|
|
|
+ require.NoError(t, err)
|
|
testTree["lib/some"] = node{101, 101}
|
|
testTree["lib/some"] = node{101, 101}
|
|
testTree["lib/some/other"] = node{101, 101}
|
|
testTree["lib/some/other"] = node{101, 101}
|
|
verifyTree, err = readTree(dirName, "")
|
|
verifyTree, err = readTree(dirName, "")
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if err := compareTrees(testTree, verifyTree); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ require.NoError(t, err)
|
|
|
|
+ require.NoError(t, compareTrees(testTree, verifyTree))
|
|
|
|
|
|
// test a directory that already exists; should NOT be chowned
|
|
// test a directory that already exists; should NOT be chowned
|
|
- if err := MkdirAllNewAs(filepath.Join(dirName, "usr"), 0755, 102, 102); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ err = MkdirAllAndChownNew(filepath.Join(dirName, "usr"), 0755, IDPair{102, 102})
|
|
|
|
+ require.NoError(t, err)
|
|
verifyTree, err = readTree(dirName, "")
|
|
verifyTree, err = readTree(dirName, "")
|
|
- if err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
- if err := compareTrees(testTree, verifyTree); err != nil {
|
|
|
|
- t.Fatal(err)
|
|
|
|
- }
|
|
|
|
|
|
+ require.NoError(t, err)
|
|
|
|
+ require.NoError(t, compareTrees(testTree, verifyTree))
|
|
}
|
|
}
|
|
|
|
|
|
func TestMkdirAs(t *testing.T) {
|
|
func TestMkdirAs(t *testing.T) {
|