Files
attest/internal/test/test.go

77 lines
1.6 KiB
Go
Raw Permalink Normal View History

2024-04-15 15:20:56 -05:00
package test
import (
2024-04-22 12:22:15 -05:00
"context"
_ "embed"
2024-04-15 15:20:56 -05:00
"os"
"path/filepath"
2024-04-15 15:20:56 -05:00
"testing"
2024-04-22 12:22:15 -05:00
"github.com/docker/attest/signerverifier"
"github.com/docker/attest/tlog"
2024-04-22 12:22:15 -05:00
"github.com/secure-systems-lab/go-securesystemslib/dsse"
)
const (
UseMockTL = true
UseMockKMS = true
2024-04-22 12:22:15 -05:00
AWSRegion = "us-east-1"
AWSKMSKeyARN = "arn:aws:kms:us-east-1:175142243308:alias/doi-signing" // sandbox
2024-04-15 15:20:56 -05:00
)
func UnsignedTestImage(rel ...string) string {
rel = append(rel, "test", "testdata", "unsigned-test-image")
return filepath.Join(rel...)
}
2024-08-12 14:49:52 -05:00
2024-04-15 15:20:56 -05:00
func CreateTempDir(t *testing.T, dir, pattern string) string {
// Create a temporary directory for output oci layout
tempDir, err := os.MkdirTemp(dir, pattern)
if err != nil {
t.Fatalf("Failed to create temp directory: %v", err)
}
// Register a cleanup function to delete the temp directory when the test exits
t.Cleanup(func() {
if err := os.RemoveAll(tempDir); err != nil {
t.Errorf("Failed to remove temp directory: %v", err)
}
})
return tempDir
}
2024-04-22 12:22:15 -05:00
//go:embed test-signing-key.pem
var signingKey []byte
func GetMockSigner(_ context.Context) (dsse.SignerVerifier, error) {
return signerverifier.LoadKeyPair(signingKey)
}
2024-04-22 12:22:15 -05:00
func Setup(t *testing.T) (context.Context, dsse.SignerVerifier) {
var tl tlog.TL
if UseMockTL {
2024-04-22 12:22:15 -05:00
tl = tlog.GetMockTL()
} else {
tl = &tlog.RekorTL{}
}
ctx := tlog.WithTL(context.Background(), tl)
var signer dsse.SignerVerifier
var err error
if UseMockKMS {
2024-04-22 12:22:15 -05:00
signer, err = GetMockSigner(ctx)
if err != nil {
t.Fatal(err)
}
} else {
signer, err = signerverifier.GetAWSSigner(ctx, AWSKMSKeyARN, AWSRegion)
2024-04-22 12:22:15 -05:00
if err != nil {
t.Fatal(err)
}
}
return ctx, signer
}