github.com/alibaba/sealer@v0.8.6-0.20220430115802-37a2bdaa8173/utils/mount/default_test.go (about) 1 // Copyright © 2021 Alibaba Group Holding Ltd. 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package mount 16 17 import ( 18 "testing" 19 ) 20 21 func TestDefault_Mount(t *testing.T) { 22 type args struct { 23 target string 24 upper string 25 layers []string 26 } 27 28 tests := []struct { 29 name string 30 args args 31 wantErr bool 32 }{ 33 { 34 name: "test1 for copy layers to target", 35 args: args{ 36 "../test/mount/default/target", 37 "../test/mount/default/upper", 38 []string{"../test/mount/default/layers/layer1"}, 39 }, 40 wantErr: false, 41 }, 42 { 43 name: "test2 for copy layers to target", 44 args: args{ 45 "../test/mount/default/target", 46 "../test/mount/default/upper", 47 []string{"../test/mount/default/layers/layer1", "../test/mount/default/layers/layer2"}, 48 }, 49 wantErr: false, 50 }, 51 { 52 name: "test3 for copy layers to target", 53 args: args{ 54 "../test/mount/default/target", 55 "../test/mount/default/upper", 56 []string{"../test/mount/default/layers/layer1", "../test/mount/default/layers/layer2", "../test/mount/default/layers/layer3"}, 57 }, 58 wantErr: false, 59 }, 60 { 61 name: "test4 for copy layers to target", 62 args: args{ 63 "../test/mount/default/target", 64 "../test/mount/default/upper", 65 []string{"../test/mount/default/layers", "../test/mount/default/layers/layer2", 66 "../test/mount/default/layers/layer3", "../test/mount/default/layers/layer4"}, 67 }, 68 wantErr: false, 69 }, 70 { 71 name: "test5 for copy layers to target", 72 args: args{ 73 "../test/mount/default/target", 74 "../test/mount/default/upper", 75 []string{"../test/mount/default/layers/layer1", "../test/mount/default/layers/layer2", 76 "../test/mount/default/layers/layer3", "../test/mount/default/layers/layer4"}, 77 }, 78 wantErr: false, 79 }, 80 { 81 name: "test6 for copy layers to target where target is empty", 82 args: args{ 83 "", 84 "../test/mount/default/upper", 85 []string{"../test/mount/default/layers/layer1", "../test/mount/default/layers/layer2"}, 86 }, 87 wantErr: true, 88 }, 89 { 90 name: "test7 for copy layer file to target", 91 args: args{ 92 "../test/target", 93 "../test/mount/default/upper", 94 //[]string{"../test/mount/default/layers/layer1/123.txt", "../test/mount/default/layers/layer2/test1.txt"}, 95 []string{"../test/mount/default/layers/layer2/test1.txt"}, 96 }, 97 wantErr: false, 98 }, 99 } 100 for _, tt := range tests { 101 t.Run(tt.name, func(t *testing.T) { 102 d := &Default{} 103 err := d.Mount(tt.args.target, tt.args.upper, tt.args.layers...) 104 if (err != nil) != tt.wantErr { 105 t.Errorf("err: %s", err) 106 } 107 }) 108 } 109 }