test(gateway): bind qualification to immutable Protocol
This commit is contained in:
@@ -14,8 +14,8 @@ import (
|
||||
"math"
|
||||
"os"
|
||||
"path/filepath"
|
||||
"regexp"
|
||||
"runtime"
|
||||
"runtime/debug"
|
||||
"sort"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -585,17 +585,13 @@ func qualificationMaximumFiveSecondBytes(deliveries []syntheticPacerDelivery) in
|
||||
return maximum
|
||||
}
|
||||
|
||||
func qualificationProtocolVersion() string {
|
||||
info, ok := debug.ReadBuildInfo()
|
||||
if !ok {
|
||||
return "unknown"
|
||||
func qualificationProtocolVersion() (string, error) {
|
||||
version := os.Getenv("VERSEVDI_QUALIFICATION_PROTOCOL_VERSION")
|
||||
valid, err := regexp.MatchString(`^v[0-9]+\.[0-9]+\.[0-9]+-[0-9A-Za-z]+(?:[.-][0-9A-Za-z]+)*$`, version)
|
||||
if err != nil || !valid {
|
||||
return "", errors.New("VERSEVDI_QUALIFICATION_PROTOCOL_VERSION must be an immutable prerelease tag")
|
||||
}
|
||||
for _, dependency := range info.Deps {
|
||||
if dependency.Path == "git.sechmachine.io.vn/sechmachine/VerseVDI-Protocol" {
|
||||
return dependency.Version
|
||||
}
|
||||
}
|
||||
return "unknown"
|
||||
return version, nil
|
||||
}
|
||||
|
||||
func qualificationCandidateCommit() (string, error) {
|
||||
@@ -633,6 +629,10 @@ func TestSection7Qualification(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
protocolVersion, err := qualificationProtocolVersion()
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
if err := os.Mkdir(output, 0o750); err != nil {
|
||||
t.Fatalf("create new qualification evidence directory: %v", err)
|
||||
}
|
||||
@@ -641,8 +641,11 @@ func TestSection7Qualification(t *testing.T) {
|
||||
qualificationTraverseProfiles(t, media)
|
||||
manifest := qualificationManifest{
|
||||
Status: "running", ToolVersion: qualificationToolVersion,
|
||||
Command: fmt.Sprintf("VERSEVDI_QUALIFICATION_DIR=%s VERSEVDI_QUALIFICATION_COMMIT=%s GOWORK=off go test ./gateway -run '^TestSection7Qualification$' -count=1 -timeout 45m -v", output, commit),
|
||||
CandidateCommit: commit, ProtocolVersion: qualificationProtocolVersion(),
|
||||
Command: fmt.Sprintf(
|
||||
"VERSEVDI_QUALIFICATION_DIR=%s VERSEVDI_QUALIFICATION_COMMIT=%s VERSEVDI_QUALIFICATION_PROTOCOL_VERSION=%s GOWORK=off go test ./gateway -run '^TestSection7Qualification$' -count=1 -timeout 45m -v",
|
||||
output, commit, protocolVersion,
|
||||
),
|
||||
CandidateCommit: commit, ProtocolVersion: protocolVersion,
|
||||
StartedAt: started.Format(time.RFC3339Nano), GoVersion: runtime.Version(),
|
||||
OS: runtime.GOOS, Architecture: runtime.GOARCH,
|
||||
Topology: "bounded fixture provider -> gateway framing and mTLS/QUIC transport -> fixture client",
|
||||
|
||||
Reference in New Issue
Block a user