From dfbd4a70018a76c3b011cc2d51afd84ad9b453c0 Mon Sep 17 00:00:00 2001 From: Nicolas Nobelis Date: Fri, 4 Oct 2024 15:26:32 +0200 Subject: [PATCH] test(bazel): Add a missing test for when there is no lockfile This is a test for 1045f89d527918fc51b4e8f033debd775635eee7. Signed-off-by: Nicolas Nobelis --- .../bazel-expected-output-no-lock-file.yml | 80 +++++++++++++++++++ .../synthetic/bazel-no-lock-file/.bazelrc | 2 + .../bazel-no-lock-file/.bazelversion | 1 + .../synthetic/bazel-no-lock-file/MODULE.bazel | 1 + .../synthetic/bazel-no-lock-file/lib/BUILD | 7 ++ .../bazel-no-lock-file/lib/cookie-jar.cc | 5 ++ .../bazel-no-lock-file/lib/cookie-jar.h | 6 ++ .../synthetic/bazel-no-lock-file/main/BUILD | 11 +++ .../synthetic/bazel-no-lock-file/main/main.cc | 10 +++ .../bazel/src/funTest/kotlin/BazelFunTest.kt | 11 +++ 10 files changed, 134 insertions(+) create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-expected-output-no-lock-file.yml create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelrc create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelversion create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/MODULE.bazel create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/BUILD create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.cc create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.h create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/BUILD create mode 100644 plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/main.cc diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-expected-output-no-lock-file.yml b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-expected-output-no-lock-file.yml new file mode 100644 index 000000000000..0b5f7aa72718 --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-expected-output-no-lock-file.yml @@ -0,0 +1,80 @@ +--- +project: + id: "Bazel::plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/MODULE.bazel:" + definition_file_path: "" + declared_licenses: [] + declared_licenses_processed: {} + vcs: + type: "Git" + url: "" + revision: "" + path: "" + vcs_processed: + type: "Git" + url: "" + revision: "" + path: "" + homepage_url: "" + scopes: + - name: "dev" + dependencies: [] + - name: "main" + dependencies: + - id: "Bazel::glog:0.5.0" + linkage: "STATIC" + dependencies: + - id: "Bazel::gflags:2.2.2" + linkage: "STATIC" +packages: +- id: "Bazel::gflags:2.2.2" + purl: "pkg:generic/gflags@2.2.2" + declared_licenses: [] + declared_licenses_processed: {} + description: "" + homepage_url: "https://gflags.github.io/gflags/" + binary_artifact: + url: "" + hash: + value: "" + algorithm: "" + source_artifact: + url: "https://github.com/gflags/gflags/archive/refs/tags/v2.2.2.tar.gz" + hash: + value: "34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf" + algorithm: "SHA-256" + vcs: + type: "Git" + url: "https://github.com/gflags/gflags" + revision: "" + path: "" + vcs_processed: + type: "Git" + url: "https://github.com/gflags/gflags.git" + revision: "" + path: "" +- id: "Bazel::glog:0.5.0" + purl: "pkg:generic/glog@0.5.0" + declared_licenses: [] + declared_licenses_processed: {} + description: "" + homepage_url: "https://github.com/google/glog" + binary_artifact: + url: "" + hash: + value: "" + algorithm: "" + source_artifact: + url: "https://github.com/google/glog/archive/refs/tags/v0.5.0.tar.gz" + hash: + value: "eede71f28371bf39aa69b45de23b329d37214016e2055269b3b5e7cfd40b59f5" + algorithm: "SHA-256" + vcs: + type: "Git" + url: "https://github.com/google/glog" + revision: "" + path: "" + vcs_processed: + type: "Git" + url: "https://github.com/google/glog.git" + revision: "" + path: "" diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelrc b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelrc new file mode 100644 index 000000000000..7d3a276c78b4 --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelrc @@ -0,0 +1,2 @@ +common --lockfile_mode=off + diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelversion b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelversion new file mode 100644 index 000000000000..9fe9ff9d996b --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/.bazelversion @@ -0,0 +1 @@ +7.0.1 diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/MODULE.bazel b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/MODULE.bazel new file mode 100644 index 000000000000..f8970e2bc510 --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/MODULE.bazel @@ -0,0 +1 @@ +bazel_dep(name = "glog", version = "0.5.0", repo_name = "com_github_google_glog") diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/BUILD b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/BUILD new file mode 100644 index 000000000000..5790445652ed --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/BUILD @@ -0,0 +1,7 @@ +cc_library( + name = "cookie-jar", + srcs = ["cookie-jar.cc"], + hdrs = ["cookie-jar.h"], + visibility = ["//main:__pkg__", "//test:__pkg__"], +) + diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.cc b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.cc new file mode 100644 index 000000000000..119b4473f8de --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.cc @@ -0,0 +1,5 @@ +#include "lib/cookie-jar.h" + +int grab_cookies() { + return 42; +} diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.h b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.h new file mode 100644 index 000000000000..e1c18fb7d7ed --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/lib/cookie-jar.h @@ -0,0 +1,6 @@ +#ifndef LIB_COOKIE_JAR_H_ +#define LIB_COOKIE_JAR_H_ + +int grab_cookies(); + +#endif diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/BUILD b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/BUILD new file mode 100644 index 000000000000..6d051d9aad4a --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/BUILD @@ -0,0 +1,11 @@ +cc_binary( + name = "main", + srcs = [ + "main.cc", + ], + deps = [ + "//lib:cookie-jar", + "@com_github_google_glog//:glog", + ], +) + diff --git a/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/main.cc b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/main.cc new file mode 100644 index 000000000000..ce356335facc --- /dev/null +++ b/plugins/package-managers/bazel/src/funTest/assets/projects/synthetic/bazel-no-lock-file/main/main.cc @@ -0,0 +1,10 @@ +#include "lib/cookie-jar.h" +#include + +int main(int argc, char* argv[]) { + google::InitGoogleLogging(argv[0]); + + int num_cookies = grab_cookies(); + LOG(INFO) << "Found " << num_cookies << " cookies"; +} + diff --git a/plugins/package-managers/bazel/src/funTest/kotlin/BazelFunTest.kt b/plugins/package-managers/bazel/src/funTest/kotlin/BazelFunTest.kt index 6fe618574b78..de393839fa0f 100644 --- a/plugins/package-managers/bazel/src/funTest/kotlin/BazelFunTest.kt +++ b/plugins/package-managers/bazel/src/funTest/kotlin/BazelFunTest.kt @@ -93,4 +93,15 @@ class BazelFunTest : StringSpec({ result.toYaml() should matchExpectedResult(expectedResultFile, definitionFile) } + + "Dependencies are detected correctly even if no lock file is present and its generation is disabled" { + val definitionFile = getAssetFile("projects/synthetic/bazel-no-lock-file/MODULE.bazel") + val expectedResultFile = getAssetFile( + "projects/synthetic/bazel-expected-output-no-lock-file.yml" + ) + + val result = create("Bazel").resolveSingleProject(definitionFile) + + result.toYaml() should matchExpectedResult(expectedResultFile, definitionFile) + } })