onsi / ginkgo

A Modern Testing Framework for Go
http://onsi.github.io/ginkgo/
MIT License
8.22k stars 650 forks source link

gingko panics if an incorrect regex is passed via focus/skip flags #1257

Open upodroid opened 1 year ago

upodroid commented 1 year ago

gingko panics if you pass an incorrect regex instead of exiting

https://prow.k8s.io/view/gs/kubernetes-jenkins/pr-logs/pull/kubernetes-sigs_kubetest2/236/pull-kubetest2-gce-build-up-down/1689959288711155712

1cd307471f1/kubectl --ginkgo.skip=\[Driver:.gcepd\]|\[Slow\]|\[Serial\]|\[Disruptive\]|\[Flaky\]|\[Feature:.+\] --ginkgo.focus=(?=.*\[NodeConformance\])(?=.*\[LinuxOnly\]) --report-dir=/logs/artifacts --ginkgo.timeout=1h0m0s --ginkgo.flake-attempts=1]
  Aug 11 11:41:56.999: INFO: The --provider flag is not set. Continuing as if --provider=skeleton had been used.
  I0811 11:41:56.999793   91554 e2e.go:117] Starting e2e run "2024221b-0680-4679-9825-0c9258fd545a" on Ginkgo node 1
--- FAIL: TestE2E (0.19s)
panic: regexp: Compile(`(?=.*\[NodeConformance\])(?=.*\[LinuxOnly\])`): error parsing regexp: invalid or unsupported Perl syntax: `(?=` [recovered]
    panic: regexp: Compile(`(?=.*\[NodeConformance\])(?=.*\[LinuxOnly\])`): error parsing regexp: invalid or unsupported Perl syntax: `(?=`

goroutine 165 [running]:
testing.tRunner.func1.2({0x5e0af20, 0xc0011be000})
    /usr/local/go/src/testing/testing.go:1526 +0x24e
testing.tRunner.func1()
    /usr/local/go/src/testing/testing.go:1529 +0x39f
panic({0x5e0af20, 0xc0011be000})
    /usr/local/go/src/runtime/panic.go:884 +0x213
regexp.MustCompile({0x7fffb49219c6, 0x2c})
    /usr/local/go/src/regexp/regexp.go:319 +0xbb
k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/v2/internal.ApplyFocusToSpecs({_, _, _}, {_, _}, {_, _, _}, {0x64d61e84, 0x1, ...})
    vendor/github.com/onsi/ginkgo/v2/internal/focus.go:102 +0x5ee
k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/v2/internal.(*Suite).Run(_, {_, _}, {_, _, _}, {_, _}, _, {0x72840b0, ...}, ...)
    vendor/github.com/onsi/ginkgo/v2/internal/suite.go:99 +0x108
k8s.io/kubernetes/vendor/github.com/onsi/ginkgo/v2.RunSpecs({0x724b9e0, 0xc0002cd1e0}, {0x6adaa94, 0x14}, {0xc0004dd7a0?, 0x2, 0x0?})
    vendor/github.com/onsi/ginkgo/v2/core_dsl.go:319 +0xfb7
k8s.io/kubernetes/test/e2e.RunE2ETests(0xc0002cd1e0?)
    test/e2e/e2e.go:118 +0x610
k8s.io/kubernetes/test/e2e.TestE2E(0x0?)
    test/e2e/e2e_test.go:141 +0x19
testing.tRunner(0xc0002cd1e0, 0x6d6c598)
    /usr/local/go/src/testing/testing.go:1576 +0x10b
created by testing.(*T).Run
    /usr/local/go/src/testing/testing.go:1629 +0x3ea

gingko should close gracefully and show the error