//go:build integration /* Copyright (c) Edgeless Systems GmbH SPDX-License-Identifier: AGPL-3.0-only */ package test import ( "context" "flag" "testing" "time" "github.com/edgelesssys/constellation/v2/internal/kms/kms/gcp" "github.com/edgelesssys/constellation/v2/internal/kms/storage/gcs" "github.com/edgelesssys/constellation/v2/internal/kms/storage/memfs" "github.com/edgelesssys/constellation/v2/internal/kms/uri" "github.com/stretchr/testify/require" ) func TestGCPKMS(t *testing.T) { if !*runGcpKms { t.Skip("Skipping Google KMS test") } if *gcpProjectID == "" || *gcpLocation == "" || *gcpKeyRing == "" || *kekID == "" { flag.Usage() t.Fatal("Required flags not set: --gcp-project, --gcp-location, --gcp-keyring, --kek-id") } require := require.New(t) store := memfs.New() ctx, cancel := context.WithTimeout(context.Background(), time.Second*30) defer cancel() cfg := uri.GCPConfig{ CredentialsPath: *gcpCredentialsPath, ProjectID: *gcpProjectID, Location: *gcpLocation, KeyRing: *gcpKeyRing, KeyName: *kekID, } kmsClient, err := gcp.New(ctx, store, cfg) require.NoError(err) defer kmsClient.Close() runKMSTest(t, kmsClient) } func TestGcpStorage(t *testing.T) { if !*runGcpStorage { t.Skip("Skipping Google Storage test") } if *gcpProjectID == "" || *gcpBucket == "" || *gcpCredentialsPath == "" { flag.Usage() t.Fatal("Required flags not set: --gcp-project, --gcp-bucket ") } require := require.New(t) ctx, cancel := context.WithTimeout(context.Background(), time.Second*30) defer cancel() cfg := uri.GoogleCloudStorageConfig{ CredentialsPath: *gcpCredentialsPath, ProjectID: *gcpProjectID, Bucket: *gcpBucket, } store, err := gcs.New(ctx, cfg) require.NoError(err) runStorageTest(t, store) }