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) + } })