diff --git a/pkg/test/extensions/binary.go b/pkg/test/extensions/binary.go index b5e5469e8604..38b71d882b56 100644 --- a/pkg/test/extensions/binary.go +++ b/pkg/test/extensions/binary.go @@ -778,6 +778,22 @@ func (binaries TestBinaries) ListTests(ctx context.Context, parallelism int, env return nil, fmt.Errorf("encountered errors while listing tests: %s", strings.Join(errs, ";")) } + var baseSpecs extensiontests.ExtensionTestSpecs + for _, spec := range allTests { + baseSpecs = append(baseSpecs, spec.ExtensionTestSpec) + } + + // Save current binary-registered name before any origin-side mutations. + // External binaries only recognize the name they registered, not names + // modified by addLabelsToSpecs/addEnvironmentSelectors/appendSuiteNames. + for _, spec := range baseSpecs { + spec.OriginalName = spec.Name + } + baseSpecs = filterOutDisabledSpecs(baseSpecs) + addEnvironmentSelectors(baseSpecs) + addLabelsToSpecs(baseSpecs) + appendSuiteNames(baseSpecs) + return allTests, nil } diff --git a/pkg/test/ginkgo/test_runner.go b/pkg/test/ginkgo/test_runner.go index f367d405d0e1..b2296b6d90f4 100644 --- a/pkg/test/ginkgo/test_runner.go +++ b/pkg/test/ginkgo/test_runner.go @@ -337,7 +337,11 @@ func (c *commandContext) RunTestInNewProcess(ctx context.Context, test *testCase timeout = test.testTimeout } - results := test.binary.RunTests(ctx, timeout, testEnv, test.name) + dispatchName := test.rawName + if dispatchName == "" { + dispatchName = test.name + } + results := test.binary.RunTests(ctx, timeout, testEnv, dispatchName) if len(results) != 1 { fmt.Fprintf(os.Stderr, "warning: expected 1 result from external binary; received %d", len(results)) } diff --git a/pkg/test/ginkgo/test_suite.go b/pkg/test/ginkgo/test_suite.go index 67d54e7b1acb..1ac1a13f49c4 100644 --- a/pkg/test/ginkgo/test_suite.go +++ b/pkg/test/ginkgo/test_suite.go @@ -16,9 +16,13 @@ var re = regexp.MustCompile(`.*\[Timeout:(.[^\]]*)\]`) func extensionTestSpecsToOriginTestCases(specs extensions.ExtensionTestSpecs) ([]*testCase, error) { var tests []*testCase for _, spec := range specs { + rawName := spec.Name + if spec.OriginalName != "" { + rawName = spec.OriginalName + } tc := &testCase{ name: spec.Name, - rawName: spec.Name, + rawName: rawName, binary: spec.Binary, spec: spec, }