1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
|
// Copyright (c) 2023, Sylabs Inc. All rights reserved.
// This software is licensed under a 3-clause BSD license. Please consult the
// LICENSE.md file distributed with the sources of this project regarding your
// rights to use or distribute this software.
package oci
import (
"fmt"
"io"
"log"
"net/http"
"os"
"testing"
"github.com/opencontainers/runtime-tools/validate"
)
func GetTestImg(url string) (path string, err error) {
dl, err := os.CreateTemp("", "oci-test")
if err != nil {
log.Fatal(err)
}
defer dl.Close()
r, err := http.Get(url)
if err != nil {
return "", err
}
defer r.Body.Close()
if r.StatusCode != http.StatusOK {
return "", fmt.Errorf("download failed: %v", r.Status)
}
_, err = io.Copy(dl, r.Body)
if err != nil {
return "", err
}
return dl.Name(), nil
}
func ValidateBundle(t *testing.T, bundlePath string) {
v, err := validate.NewValidatorFromPath(bundlePath, false, "linux")
if err != nil {
t.Errorf("Could not create bundle validator: %v", err)
}
if err := v.CheckAll(); err != nil {
t.Errorf("Bundle not valid: %v", err)
}
}
|