github.com/apptainer/singularity@v3.1.1+incompatible/internal/pkg/build/sources/conveyorPacker_arch_test.go (about) 1 // Copyright (c) 2018, 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_test 7 8 import ( 9 "os" 10 "os/exec" 11 "testing" 12 13 "github.com/sylabs/singularity/internal/pkg/build/sources" 14 "github.com/sylabs/singularity/internal/pkg/test" 15 "github.com/sylabs/singularity/pkg/build/types" 16 "github.com/sylabs/singularity/pkg/build/types/parser" 17 ) 18 19 const archDef = "../../../../examples/arch/Singularity" 20 21 func TestArchConveyor(t *testing.T) { 22 23 if testing.Short() { 24 t.SkipNow() 25 } 26 27 if _, err := exec.LookPath("pacstrap"); err != nil { 28 t.Skip("skipping test, pacstrap not installed") 29 } 30 31 test.EnsurePrivilege(t) 32 33 defFile, err := os.Open(archDef) 34 if err != nil { 35 t.Fatalf("unable to open file %s: %v\n", archDef, err) 36 } 37 defer defFile.Close() 38 39 // create bundle to build into 40 b, err := types.NewBundle("", "sbuild-arch") 41 if err != nil { 42 return 43 } 44 45 b.Recipe, err = parser.ParseDefinitionFile(defFile) 46 if err != nil { 47 t.Fatalf("failed to parse definition file %s: %v\n", archDef, err) 48 } 49 50 cp := &sources.ArchConveyorPacker{} 51 52 err = cp.Get(b) 53 // clean up tmpfs since assembler isnt called 54 defer cp.CleanUp() 55 if err != nil { 56 t.Fatalf("failed to Get from %s: %v\n", archDef, err) 57 } 58 } 59 60 func TestArchPacker(t *testing.T) { 61 if _, err := exec.LookPath("pacstrap"); err != nil { 62 t.Skip("skipping test, pacstrap not installed") 63 } 64 65 test.EnsurePrivilege(t) 66 67 defFile, err := os.Open(archDef) 68 if err != nil { 69 t.Fatalf("unable to open file %s: %v\n", archDef, err) 70 } 71 defer defFile.Close() 72 73 // create bundle to build into 74 b, err := types.NewBundle("", "sbuild-arch") 75 if err != nil { 76 return 77 } 78 79 b.Recipe, err = parser.ParseDefinitionFile(defFile) 80 if err != nil { 81 t.Fatalf("failed to parse definition file %s: %v\n", archDef, err) 82 } 83 84 cp := &sources.ArchConveyorPacker{} 85 86 err = cp.Get(b) 87 // clean up tmpfs since assembler isnt called 88 defer cp.CleanUp() 89 if err != nil { 90 t.Fatalf("failed to Get from %s: %v\n", archDef, err) 91 } 92 93 _, err = cp.Pack() 94 if err != nil { 95 t.Fatalf("failed to Pack from %s: %v\n", archDef, err) 96 } 97 }