@@ -718,3 +718,79 @@ func TestSpecialCharactersInTestNames(t *testing.T) {
718718
719719 transformAndVerify (t , events , opts , 1 , expectedActions )
720720}
721+
722+ func TestSubTestNameWithSlashes (t * testing.T ) {
723+ opts := & Options {
724+ IgnoreAllSubtestFailures : false ,
725+ }
726+
727+ events := []testEvent {
728+ createEvent ("start" , "example" , "" , 0.0 , "" ),
729+ createEvent ("run" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "=== RUN TestSubTestNameWithSlashes\n " ),
730+ createEvent ("output" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "=== PAUSE TestSubTestNameWithSlashes\n " ),
731+ createEvent ("pause" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "" ),
732+ createEvent ("cont" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "=== CONT TestSubTestNameWithSlashes\n " ),
733+ createEvent ("run" , "example" , "TestSubTestNameWithSlashes/sub/test/name/with/slashes" , 0.0 , "=== RUN TestSubTestNameWithSlashes/sub/test/name/with/slashes\n " ),
734+ createEvent ("output" , "example" , "TestSubTestNameWithSlashes/sub/test/name/with/slashes" , 0.0 , " example_test.go:356: This subtest always passes\n " ),
735+ createEvent ("output" , "example" , "TestSubTestNameWithSlashes/sub/test/name/with/slashes" , 0.0 , "--- PASS: TestSubTestNameWithSlashes/sub/test/name/with/slashes (0.00s)\n " ),
736+ createEvent ("pass" , "example" , "TestSubTestNameWithSlashes/sub/test/name/with/slashes" , 0.0 , "" ),
737+ createEvent ("output" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "--- PASS: TestSubTestNameWithSlashes (0.00s)\n " ),
738+ createEvent ("pass" , "example" , "TestSubTestNameWithSlashes" , 0.0 , "" ),
739+ createEvent ("output" , "example" , "" , 0.0 , "PASS\n " ),
740+ createEvent ("output" , "example" , "" , 0.0 , "ok \t example\t 0.188s\n " ),
741+ createEvent ("pass" , "example" , "" , 0.188 , "" ),
742+ }
743+
744+ expectedActions := map [string ]string {
745+ "example/TestSubTestNameWithSlashes/sub/test/name/with/slashes" : "pass" ,
746+ "example/TestSubTestNameWithSlashes" : "pass" ,
747+ "example/" : "pass" ,
748+ }
749+
750+ transformAndVerify (t , events , opts , 0 , expectedActions )
751+ }
752+
753+ func TestFuzzTestWithCorpus (t * testing.T ) {
754+ opts := & Options {
755+ IgnoreAllSubtestFailures : false ,
756+ }
757+
758+ events := []testEvent {
759+ createEvent ("start" , "example" , "" , 0.0 , "" ),
760+ createEvent ("run" , "example" , "FuzzTestWithCorpus" , 0.0 , "=== RUN FuzzTestWithCorpus\n " ),
761+
762+ createEvent ("run" , "example" , "FuzzTestWithCorpus/seed#0" , 0.0 , "=== RUN FuzzTestWithCorpus/seed#0\n " ),
763+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#0" , 0.0 , " example_test.go:367: Fuzzing with input: some\n " ),
764+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#0" , 0.0 , "--- PASS: FuzzTestWithCorpus/seed#0 (0.00s)\n " ),
765+ createEvent ("pass" , "example" , "FuzzTestWithCorpus/seed#0" , 0.0 , "" ),
766+
767+ createEvent ("run" , "example" , "FuzzTestWithCorpus/seed#1" , 0.0 , "=== RUN FuzzTestWithCorpus/seed#1\n " ),
768+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#1" , 0.0 , " example_test.go:367: Fuzzing with input: corpus\n " ),
769+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#1" , 0.0 , "--- PASS: FuzzTestWithCorpus/seed#1 (0.00s)\n " ),
770+ createEvent ("pass" , "example" , "FuzzTestWithCorpus/seed#1" , 0.0 , "" ),
771+
772+ createEvent ("run" , "example" , "FuzzTestWithCorpus/seed#2" , 0.0 , "=== RUN FuzzTestWithCorpus/seed#2\n " ),
773+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#2" , 0.0 , " example_test.go:367: Fuzzing with input: values\n " ),
774+ createEvent ("output" , "example" , "FuzzTestWithCorpus/seed#2" , 0.0 , "--- PASS: FuzzTestWithCorpus/seed#2 (0.00s)\n " ),
775+ createEvent ("pass" , "example" , "FuzzTestWithCorpus/seed#2" , 0.0 , "" ),
776+
777+ createEvent ("output" , "example" , "FuzzTestWithCorpus" , 0.0 , "--- PASS: FuzzTestWithCorpus (0.00s)\n " ),
778+ createEvent ("pass" , "example" , "FuzzTestWithCorpus" , 0.0 , "" ),
779+
780+ createEvent ("output" , "example" , "" , 0.0 , "PASS\n " ),
781+ createEvent ("output" , "example" , "" , 0.0 , "ok \t example\t 0.231s\n " ),
782+ createEvent ("pass" , "example" , "" , 0.231 , "" ),
783+ }
784+
785+ // All fuzz seeds pass, so the fuzz test and package pass as well
786+ expectedActions := map [string ]string {
787+ "example/FuzzTestWithCorpus/seed#0" : "pass" ,
788+ "example/FuzzTestWithCorpus/seed#1" : "pass" ,
789+ "example/FuzzTestWithCorpus/seed#2" : "pass" ,
790+ "example/FuzzTestWithCorpus" : "pass" ,
791+ "example/" : "pass" ,
792+ }
793+
794+ // transformAndVerify should yield exit code 0 since everything passes
795+ transformAndVerify (t , events , opts , 0 , expectedActions )
796+ }
0 commit comments