diff options
Diffstat (limited to 'tests/core/starlark/packagedriver')
9 files changed, 103 insertions, 0 deletions
diff --git a/tests/core/starlark/packagedriver/BUILD.bazel b/tests/core/starlark/packagedriver/BUILD.bazel new file mode 100644 index 00000000..45dd6aba --- /dev/null +++ b/tests/core/starlark/packagedriver/BUILD.bazel @@ -0,0 +1,5 @@ +load(":go_pkg_info_aspect_test.bzl", "package_driver_suite") + +package_driver_suite( + name = "package_driver_test", +) diff --git a/tests/core/starlark/packagedriver/fixtures/a/BUILD.bazel b/tests/core/starlark/packagedriver/fixtures/a/BUILD.bazel new file mode 100644 index 00000000..0dad32d9 --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/a/BUILD.bazel @@ -0,0 +1,8 @@ +load("//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["a.go"], + importpath = "example.com/a", + visibility = ["//tests/core/starlark/packagedriver:__subpackages__"], +) diff --git a/tests/core/starlark/packagedriver/fixtures/a/a.go b/tests/core/starlark/packagedriver/fixtures/a/a.go new file mode 100644 index 00000000..af058f6d --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/a/a.go @@ -0,0 +1,5 @@ +package a + +func A() { + return +} diff --git a/tests/core/starlark/packagedriver/fixtures/b/BUILD.bazel b/tests/core/starlark/packagedriver/fixtures/b/BUILD.bazel new file mode 100644 index 00000000..cdf5fd41 --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/b/BUILD.bazel @@ -0,0 +1,8 @@ +load("//go:def.bzl", "go_library") + +go_library( + name = "go_default_library", + srcs = ["b.go"], + importpath = "example.com/b", + visibility = ["//tests/core/starlark/packagedriver:__subpackages__"], +) diff --git a/tests/core/starlark/packagedriver/fixtures/b/b.go b/tests/core/starlark/packagedriver/fixtures/b/b.go new file mode 100644 index 00000000..869da65a --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/b/b.go @@ -0,0 +1,5 @@ +package b + +func B() { + return +} diff --git a/tests/core/starlark/packagedriver/fixtures/c/BUILD.bazel b/tests/core/starlark/packagedriver/fixtures/c/BUILD.bazel new file mode 100644 index 00000000..28e8ef92 --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/c/BUILD.bazel @@ -0,0 +1,20 @@ +load("//go:def.bzl", "go_library", "go_test") + +go_library( + name = "go_default_library", + srcs = ["c.go"], + importpath = "example.com/c", + visibility = ["//tests/core/starlark/packagedriver:__subpackages__"], + deps = [ + "//tests/core/starlark/packagedriver/fixtures/a:go_default_library", + "//tests/core/starlark/packagedriver/fixtures/b:go_default_library", + ], +) + +go_test( + name = "go_default_test", + srcs = ["c_test.go"], + embed = [":go_default_library"], + tags = ["manual"], + visibility = ["//tests/core/starlark/packagedriver:__subpackages__"], +) diff --git a/tests/core/starlark/packagedriver/fixtures/c/c.go b/tests/core/starlark/packagedriver/fixtures/c/c.go new file mode 100644 index 00000000..f8a8dd3b --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/c/c.go @@ -0,0 +1,11 @@ +package c + +import ( + "example.com/a" + "example.com/b" +) + +func C() { + a.A() + b.B() +} diff --git a/tests/core/starlark/packagedriver/fixtures/c/c_test.go b/tests/core/starlark/packagedriver/fixtures/c/c_test.go new file mode 100644 index 00000000..4b25df88 --- /dev/null +++ b/tests/core/starlark/packagedriver/fixtures/c/c_test.go @@ -0,0 +1,9 @@ +package c + +import ( + "testing" +) + +func TestC(t *testing.T) { + C() +} diff --git a/tests/core/starlark/packagedriver/go_pkg_info_aspect_test.bzl b/tests/core/starlark/packagedriver/go_pkg_info_aspect_test.bzl new file mode 100644 index 00000000..80b8d8b6 --- /dev/null +++ b/tests/core/starlark/packagedriver/go_pkg_info_aspect_test.bzl @@ -0,0 +1,32 @@ +load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") +load("//go/tools/gopackagesdriver:aspect.bzl", "go_pkg_info_aspect") + +def _package_driver_pkg_json_test_impl(ctx): + env = analysistest.begin(ctx) + + target_under_test = analysistest.target_under_test(env) + json_files = [f.basename for f in target_under_test[OutputGroupInfo].go_pkg_driver_json_file.to_list()] + asserts.true(env, "go_default_test.pkg.json" in json_files, "{} does not contain go_default_test.pkg.json".format(json_files)) + + return analysistest.end(env) + +package_driver_pkg_json_test = analysistest.make( + _package_driver_pkg_json_test_impl, + extra_target_under_test_aspects = [go_pkg_info_aspect], +) + +def _test_package_driver(): + package_driver_pkg_json_test( + name = "package_driver_should_return_pkg_json_for_go_test", + target_under_test = "//tests/core/starlark/packagedriver/fixtures/c:go_default_test", + ) + +def package_driver_suite(name): + _test_package_driver() + + native.test_suite( + name = name, + tests = [ + ":package_driver_should_return_pkg_json_for_go_test", + ], + ) |