github.com/apptainer/singularity@v3.1.1+incompatible/internal/pkg/build/sources/conveyorPacker_zypper_test.go (about) 1 // Copyright (c) 2018-2019, Sylabs Inc. All rights reserved. 2 // This software is licensed under a 3-clause BSD license. Please consult the 3 // LICENSE.md file distributed with the sources of this project regarding your 4 // rights to use or distribute this software. 5 6 package sources 7 8 import ( 9 "os" 10 "os/exec" 11 "testing" 12 13 "github.com/sylabs/singularity/internal/pkg/test" 14 "github.com/sylabs/singularity/pkg/build/types" 15 "github.com/sylabs/singularity/pkg/build/types/parser" 16 ) 17 18 const zyppDef = "../../../../examples/opensuse/Singularity" 19 20 func TestZypperConveyor(t *testing.T) { 21 if testing.Short() { 22 t.SkipNow() 23 } 24 25 test.EnsurePrivilege(t) 26 27 if _, err := exec.LookPath("zypper"); err != nil { 28 t.Skip("skipping test, zypper not found") 29 } 30 31 defFile, err := os.Open(zyppDef) 32 if err != nil { 33 t.Fatalf("unable to open file %s: %v\n", zyppDef, err) 34 } 35 defer defFile.Close() 36 37 // create bundle to build into 38 b, err := types.NewBundle("", "sbuild-zypper") 39 if err != nil { 40 return 41 } 42 43 b.Recipe, err = parser.ParseDefinitionFile(defFile) 44 if err != nil { 45 t.Fatalf("failed to parse definition file %s: %v\n", zyppDef, err) 46 } 47 48 zc := &ZypperConveyorPacker{} 49 50 err = zc.Get(b) 51 // clean up tmpfs since assembler isnt called 52 defer os.RemoveAll(zc.b.Path) 53 if err != nil { 54 t.Fatalf("failed to Get from %s: %v\n", zyppDef, err) 55 } 56 } 57 58 func TestZypperPacker(t *testing.T) { 59 test.EnsurePrivilege(t) 60 61 if _, err := exec.LookPath("zypper"); err != nil { 62 t.Skip("skipping test, zypper not found") 63 } 64 65 defFile, err := os.Open(zyppDef) 66 if err != nil { 67 t.Fatalf("unable to open file %s: %v\n", zyppDef, err) 68 } 69 defer defFile.Close() 70 71 // create bundle to build into 72 b, err := types.NewBundle("", "sbuild-zypper") 73 if err != nil { 74 return 75 } 76 77 b.Recipe, err = parser.ParseDefinitionFile(defFile) 78 if err != nil { 79 t.Fatalf("failed to parse definition file %s: %v\n", zyppDef, err) 80 } 81 82 zcp := &ZypperConveyorPacker{} 83 84 err = zcp.Get(b) 85 // clean up tmpfs since assembler isnt called 86 defer os.RemoveAll(zcp.b.Path) 87 if err != nil { 88 t.Fatalf("failed to Get from %s: %v\n", zyppDef, err) 89 } 90 91 _, err = zcp.Pack() 92 if err != nil { 93 t.Fatalf("failed to Pack from %s: %v\n", zyppDef, err) 94 } 95 }