| """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", |
| ], |
| ) |