blob: 32c51e63c256e6d7b87649b0fa28f7b707fa2cc7 [file] [log] [blame]
"""Unittest to verify ordering of rust stdlib in rust_library() CcInfo"""
load("@bazel_skylib//lib:unittest.bzl", "analysistest")
load("//rust:defs.bzl", "rust_test")
load("//test/unit:common.bzl", "assert_action_mnemonic", "assert_argv_contains", "assert_argv_contains_not", "assert_list_contains_adjacent_elements", "assert_list_contains_adjacent_elements_not")
def _use_libtest_harness_rustc_flags_test_impl(ctx):
env = analysistest.begin(ctx)
tut = analysistest.target_under_test(env)
action = tut.actions[0]
assert_action_mnemonic(env, action, "Rustc")
assert_argv_contains(env, action, "test/unit/use_libtest_harness/mytest.rs")
assert_argv_contains(env, action, "--test")
assert_list_contains_adjacent_elements_not(env, action.argv, ["--cfg", "test"])
return analysistest.end(env)
def _use_libtest_harness_rustc_noharness_flags_test_impl(ctx):
env = analysistest.begin(ctx)
tut = analysistest.target_under_test(env)
action = tut.actions[0]
assert_action_mnemonic(env, action, "Rustc")
assert_argv_contains(env, action, "test/unit/use_libtest_harness/mytest_noharness.rs")
assert_argv_contains_not(env, action, "--test")
assert_list_contains_adjacent_elements(env, action.argv, ["--cfg", "test"])
return analysistest.end(env)
def _use_libtest_harness_rustc_noharness_main_flags_test_impl(ctx):
env = analysistest.begin(ctx)
tut = analysistest.target_under_test(env)
action = tut.actions[0]
assert_action_mnemonic(env, action, "Rustc")
assert_argv_contains(env, action, "test/unit/use_libtest_harness/main.rs")
assert_argv_contains_not(env, action, "--test")
assert_list_contains_adjacent_elements(env, action.argv, ["--cfg", "test"])
return analysistest.end(env)
use_libtest_harness_rustc_flags_test = analysistest.make(_use_libtest_harness_rustc_flags_test_impl)
use_libtest_harness_rustc_noharness_flags_test = analysistest.make(_use_libtest_harness_rustc_noharness_flags_test_impl)
use_libtest_harness_rustc_noharness_main_flags_test = analysistest.make(_use_libtest_harness_rustc_noharness_main_flags_test_impl)
def _use_libtest_harness_test():
rust_test(
name = "mytest",
srcs = ["mytest.rs"],
edition = "2018",
)
rust_test(
name = "mytest_noharness",
srcs = ["mytest_noharness.rs"],
edition = "2018",
use_libtest_harness = False,
)
rust_test(
name = "mytest_noharness_main",
srcs = [
"main.rs",
"mytest.rs",
],
edition = "2018",
use_libtest_harness = False,
)
use_libtest_harness_rustc_flags_test(
name = "use_libtest_harness_rustc_flags_test",
target_under_test = ":mytest",
)
use_libtest_harness_rustc_noharness_flags_test(
name = "use_libtest_harness_rustc_noharness_flags_test",
target_under_test = ":mytest_noharness",
)
use_libtest_harness_rustc_noharness_main_flags_test(
name = "use_libtest_harness_rustc_noharness_main_flags_test",
target_under_test = ":mytest_noharness_main",
)
def use_libtest_harness_test_suite(name):
"""Entry-point macro called from the BUILD file.
Args:
name: Name of the macro.
"""
_use_libtest_harness_test()
native.test_suite(
name = name,
tests = [
":use_libtest_harness_rustc_flags_test",
],
)