github.com/jaypipes/ghw@v0.21.1/pkg/snapshot/pack_test.go (about) 1 // 2 // Use and distribution licensed under the Apache license version 2. 3 // 4 // See the COPYING file in the root project directory for full text. 5 // 6 7 package snapshot_test 8 9 import ( 10 "os" 11 "testing" 12 13 "github.com/jaypipes/ghw/pkg/snapshot" 14 ) 15 16 // NOTE: we intentionally use `os.RemoveAll` - not `snapshot.Cleanup` because we 17 // want to make sure we never leak directories. `snapshot.Cleanup` is used and 18 // tested explicitly in `unpack_test.go`. 19 20 // nolint: gocyclo 21 func TestPackUnpack(t *testing.T) { 22 root, err := snapshot.Unpack(testDataSnapshot) 23 if err != nil { 24 t.Fatalf("Expected nil err, but got %v", err) 25 } 26 defer os.RemoveAll(root) 27 28 tmpfile, err := os.CreateTemp("", "ght-test-snapshot-*.tgz") 29 if err != nil { 30 t.Fatalf("Expected nil err, but got %v", err) 31 } 32 defer func() { 33 tmpfile.Close() 34 os.Remove(tmpfile.Name()) 35 }() 36 37 err = snapshot.PackWithWriter(tmpfile, root) 38 if err != nil { 39 t.Fatalf("Expected nil err, but got %v", err) 40 } 41 err = tmpfile.Close() 42 if err != nil { 43 t.Fatalf("Expected nil err, but got %v", err) 44 } 45 46 cloneRoot, err := snapshot.Unpack(tmpfile.Name()) 47 if err != nil { 48 t.Fatalf("Expected nil err, but got %v", err) 49 } 50 defer os.RemoveAll(cloneRoot) 51 52 verifyTestData(t, cloneRoot) 53 }