github.com/apptainer/singularity@v3.1.1+incompatible/internal/pkg/build/sources/conveyorPacker_library_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 "testing" 10 11 "github.com/sylabs/singularity/internal/pkg/build/sources" 12 "github.com/sylabs/singularity/internal/pkg/test" 13 "github.com/sylabs/singularity/pkg/build/types" 14 ) 15 16 const ( 17 libraryURL = "https://library.sylabs.io/" 18 libraryURI = "library://alpine:latest" 19 ) 20 21 // TestLibraryConveyor tests if we can pull an image from singularity hub 22 func TestLibraryConveyor(t *testing.T) { 23 if testing.Short() { 24 t.SkipNow() 25 } 26 27 test.EnsurePrivilege(t) 28 29 b, err := types.NewBundle("", "sbuild-library") 30 if err != nil { 31 return 32 } 33 34 b.Recipe, err = types.NewDefinitionFromURI(libraryURI) 35 if err != nil { 36 t.Fatalf("unable to parse URI %s: %v\n", libraryURI, err) 37 } 38 39 cp := &sources.LibraryConveyorPacker{ 40 LibraryURL: libraryURL, 41 } 42 43 err = cp.Get(b) 44 // clean up tmpfs since assembler isnt called 45 defer cp.CleanUp() 46 if err != nil { 47 t.Fatalf("failed to Get from %s: %v\n", libraryURI, err) 48 } 49 } 50 51 // TestLibraryPacker checks if we can create a Bundle from the pulled image 52 func TestLibraryPacker(t *testing.T) { 53 test.EnsurePrivilege(t) 54 55 b, err := types.NewBundle("", "sbuild-library") 56 if err != nil { 57 return 58 } 59 60 b.Recipe, err = types.NewDefinitionFromURI(libraryURI) 61 if err != nil { 62 t.Fatalf("unable to parse URI %s: %v\n", libraryURI, err) 63 } 64 65 cp := &sources.LibraryConveyorPacker{ 66 LibraryURL: libraryURL, 67 } 68 69 err = cp.Get(b) 70 // clean up tmpfs since assembler isnt called 71 defer cp.CleanUp() 72 if err != nil { 73 t.Fatalf("failed to Get from %s: %v\n", libraryURI, err) 74 } 75 76 _, err = cp.Pack() 77 if err != nil { 78 t.Fatalf("failed to Pack from %s: %v\n", libraryURI, err) 79 } 80 }