load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@bazel_skylib//rules:diff_test.bzl", "diff_test") load(":cmake_text_tests.bzl", "cmake_script_test_suite") load(":convert_shell_script_test.bzl", "shell_script_conversion_suite") load(":shell_script_helper_test_rule.bzl", "shell_script_helper_test_rule") load(":symlink_contents_to_dir_test_rule.bzl", "symlink_contents_to_dir_test_rule") load(":utils_test.bzl", "utils_test_suite") cmake_script_test_suite() shell_script_conversion_suite() utils_test_suite() shell_script_helper_test_rule( name = "shell_script_inner_fun", out = "inner_fun_text.txt", script = ["##symlink_contents_to_dir## $$SOURCE_DIR$$ $$TARGET_DIR$$ False"], ) # TODO: This should not be necessary but there appears to be some inconsistent # behavior with the use of `constraint_value`s in `select` statements. A support # thread was started at the end of https://github.com/bazelbuild/bazel/pull/12071 # Once it is possible to replace `:macos` with `@platforms//os:macos` that # should be done for this file. Note actioning on this will set the minimum # supported version of Bazel to 4.0.0 for these examples. config_setting( name = "macos", constraint_values = ["@platforms//os:macos"], visibility = ["//visibility:private"], ) config_setting( name = "freebsd", constraint_values = ["@platforms//os:freebsd"], visibility = ["//visibility:private"], ) diff_test( name = "shell_script_inner_fun_test", file1 = ":shell_script_inner_fun", file2 = select({ ":freebsd": "expected/inner_fun_text_freebsd.txt", ":macos": "expected/inner_fun_text_macos.txt", "//conditions:default": "expected/inner_fun_text.txt", }), ) filegroup( name = "dir1_fg", srcs = glob(["dir1/**"]), ) filegroup( name = "dir2_fg", srcs = glob(["dir2/**"]), ) symlink_contents_to_dir_test_rule( name = "symlink_dirs", out = "out_symlinked_dirs.txt", dir1 = ":dir1_fg", dir2 = ":dir2_fg", ) diff_test( name = "shell_method_symlink_contents_to_dir_test", file1 = select({ ":freebsd": "expected/out_symlinked_dirs_freebsd.txt", ":macos": "expected/out_symlinked_dirs_macos.txt", "//conditions:default": "expected/out_symlinked_dirs.txt", }), file2 = ":symlink_dirs", ) bzl_library( name = "shell_script_helper_test_rule", srcs = ["shell_script_helper_test_rule.bzl"], visibility = ["//visibility:public"], deps = ["//foreign_cc/private/framework:helpers"], ) bzl_library( name = "symlink_contents_to_dir_test_rule", srcs = ["symlink_contents_to_dir_test_rule.bzl"], visibility = ["//visibility:public"], deps = [ "@rules_foreign_cc//foreign_cc/private:detect_root", "@rules_foreign_cc//foreign_cc/private/framework:helpers", ], )