github.com/apptainer/singularity@v3.1.1+incompatible/internal/pkg/build/sources/conveyorPacker_scratch_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 "testing" 11 12 "github.com/sylabs/singularity/internal/pkg/build/sources" 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 scratchDef = "../../../../pkg/build/types/parser/testdata_good/scratch/scratch" 19 20 func TestScratchConveyor(t *testing.T) { 21 22 if testing.Short() { 23 t.SkipNow() 24 } 25 26 test.DropPrivilege(t) 27 defer test.ResetPrivilege(t) 28 29 defFile, err := os.Open(scratchDef) 30 if err != nil { 31 t.Fatalf("unable to open file %s: %v\n", scratchDef, err) 32 } 33 defer defFile.Close() 34 35 b, err := types.NewBundle("", "sbuild-scratch") 36 if err != nil { 37 return 38 } 39 40 b.Recipe, err = parser.ParseDefinitionFile(defFile) 41 if err != nil { 42 t.Fatalf("failed to parse definition file %s: %v\n", scratchDef, err) 43 } 44 45 c := &sources.ScratchConveyor{} 46 47 err = c.Get(b) 48 // clean up tmpfs since assembler isnt called 49 defer c.CleanUp() 50 if err != nil { 51 t.Fatalf("failed to Get from %s: %v\n", scratchDef, err) 52 } 53 } 54 55 func TestScratchPacker(t *testing.T) { 56 test.DropPrivilege(t) 57 defer test.ResetPrivilege(t) 58 59 defFile, err := os.Open(scratchDef) 60 if err != nil { 61 t.Fatalf("unable to open file %s: %v\n", scratchDef, err) 62 } 63 defer defFile.Close() 64 65 b, err := types.NewBundle("", "sbuild-scratch") 66 if err != nil { 67 return 68 } 69 70 b.Recipe, err = parser.ParseDefinitionFile(defFile) 71 if err != nil { 72 t.Fatalf("failed to parse definition file %s: %v\n", scratchDef, err) 73 } 74 75 cp := &sources.ScratchConveyorPacker{} 76 77 err = cp.Get(b) 78 // clean up tmpfs since assembler isnt called 79 defer cp.CleanUp() 80 if err != nil { 81 t.Fatalf("failed to Get from %s: %v\n", scratchDef, err) 82 } 83 84 _, err = cp.Pack() 85 if err != nil { 86 t.Fatalf("failed to Pack from %s: %v\n", scratchDef, err) 87 } 88 }