Merge pull request #17637 from smowton/smowton/admin/go-test-extraction-tests

Go: augment test-extraction tests
This commit is contained in:
Chris Smowton
2024-10-03 16:06:53 +01:00
committed by GitHub
7 changed files with 41 additions and 2 deletions

View File

@@ -1,3 +1,3 @@
go 1.14
go 1.18
module testsample

View File

@@ -0,0 +1,7 @@
package pkg1
type Generic[T any] struct {
element T
}
func TestMe() {}

View File

@@ -0,0 +1,9 @@
package pkg1_test
import (
"testsample/pkg1"
)
func UsePkg1() {
pkg1.TestMe()
}

View File

@@ -0,0 +1,5 @@
package pkg1
func UsePkg1() {
TestMe()
}

View File

@@ -0,0 +1,12 @@
package pkg2
import (
"testsample/pkg1"
)
// This tests the case of cross-package generic type references
// in the presence of test extraction. We need to make sure we
// extract packages, including test variants, in the right order
// such that we've seen pkg1.Generic before we try to use it here.
type Specialised = pkg1.Generic[string]

View File

@@ -1,8 +1,14 @@
#select
| src/pkg1/def.go:0:0:0:0 | src/pkg1/def.go |
| src/pkg1/def_blackbox_test.go:0:0:0:0 | src/pkg1/def_blackbox_test.go |
| src/pkg1/def_test.go:0:0:0:0 | src/pkg1/def_test.go |
| src/pkg2/use.go:0:0:0:0 | src/pkg2/use.go |
| src/testme.go:0:0:0:0 | src/testme.go |
| src/testme_blackbox_test.go:0:0:0:0 | src/testme_blackbox_test.go |
| src/testme_test.go:0:0:0:0 | src/testme_test.go |
calls
| src/pkg1/def_blackbox_test.go:8:2:8:14 | call to TestMe | src/pkg1/def.go:7:1:7:16 | function declaration |
| src/pkg1/def_test.go:4:2:4:9 | call to TestMe | src/pkg1/def.go:7:1:7:16 | function declaration |
| src/testme_blackbox_test.go:10:18:10:44 | call to PublicFunction | src/testme.go:3:1:3:38 | function declaration |
| src/testme_test.go:9:18:9:33 | call to PublicFunction | src/testme.go:3:1:3:38 | function declaration |
| src/testme_test.go:14:19:14:35 | call to privateFunction | src/testme.go:5:1:5:39 | function declaration |

View File

@@ -1,7 +1,7 @@
import os
def test_traced(codeql, go):
codeql.database.create(source_root="src", command="go test -c")
codeql.database.create(source_root="src", command="go test -c ./...")
def test_autobuild(codeql, go):
codeql.database.create(source_root="src", extractor_option = ["extract_tests=true"])