@@ -24,7 +24,7 @@ load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER") # buildifier: disable
24
24
load ("//tests/base_rules:base_tests.bzl" , "create_base_tests" )
25
25
load ("//tests/base_rules:util.bzl" , "WINDOWS_ATTR" , pt_util = "util" )
26
26
load ("//tests/support:py_executable_info_subject.bzl" , "PyExecutableInfoSubject" )
27
- load ("//tests/support:support.bzl" , "CC_TOOLCHAIN" , "CROSSTOOL_TOP" , "LINUX_X86_64" , "WINDOWS_X86_64" )
27
+ load ("//tests/support:support.bzl" , "BOOTSTRAP_IMPL" , " CC_TOOLCHAIN" , "CROSSTOOL_TOP" , "LINUX_X86_64" , "WINDOWS_X86_64" )
28
28
29
29
_tests = []
30
30
@@ -342,6 +342,53 @@ def _test_name_cannot_end_in_py_impl(env, target):
342
342
matching .str_matches ("name must not end in*.py" ),
343
343
)
344
344
345
+ def _test_main_module_bootstrap_system_python (name , config ):
346
+ rt_util .helper_target (
347
+ config .rule ,
348
+ name = name + "_subject" ,
349
+ main_module = "dummy" ,
350
+ )
351
+ analysis_test (
352
+ name = name ,
353
+ impl = _test_main_module_bootstrap_system_python_impl ,
354
+ target = name + "_subject" ,
355
+ config_settings = {
356
+ BOOTSTRAP_IMPL : "system_python" ,
357
+ "//command_line_option:platforms" : [LINUX_X86_64 ],
358
+ },
359
+ expect_failure = True ,
360
+ )
361
+
362
+ def _test_main_module_bootstrap_system_python_impl (env , target ):
363
+ env .expect .that_target (target ).failures ().contains_predicate (
364
+ matching .str_matches ("mandatory*srcs" ),
365
+ )
366
+
367
+ _tests .append (_test_main_module_bootstrap_system_python )
368
+
369
+ def _test_main_module_bootstrap_script (name , config ):
370
+ rt_util .helper_target (
371
+ config .rule ,
372
+ name = name + "_subject" ,
373
+ main_module = "dummy" ,
374
+ )
375
+ analysis_test (
376
+ name = name ,
377
+ impl = _test_main_module_bootstrap_script_impl ,
378
+ target = name + "_subject" ,
379
+ config_settings = {
380
+ BOOTSTRAP_IMPL : "script" ,
381
+ "//command_line_option:platforms" : [LINUX_X86_64 ],
382
+ },
383
+ )
384
+
385
+ def _test_main_module_bootstrap_script_impl (env , target ):
386
+ env .expect .that_target (target ).default_outputs ().contains (
387
+ "{package}/{test_name}_subject" ,
388
+ )
389
+
390
+ _tests .append (_test_main_module_bootstrap_script )
391
+
345
392
def _test_py_runtime_info_provided (name , config ):
346
393
rt_util .helper_target (
347
394
config .rule ,
@@ -365,29 +412,6 @@ def _test_py_runtime_info_provided_impl(env, target):
365
412
366
413
_tests .append (_test_py_runtime_info_provided )
367
414
368
- # Can't test this -- mandatory validation happens before analysis test
369
- # can intercept it
370
- # TODO(#1069): Once re-implemented in Starlark, modify rule logic to make this
371
- # testable.
372
- # def _test_srcs_is_mandatory(name, config):
373
- # rt_util.helper_target(
374
- # config.rule,
375
- # name = name + "_subject",
376
- # )
377
- # analysis_test(
378
- # name = name,
379
- # impl = _test_srcs_is_mandatory,
380
- # target = name + "_subject",
381
- # expect_failure = True,
382
- # )
383
- #
384
- # _tests.append(_test_srcs_is_mandatory)
385
- #
386
- # def _test_srcs_is_mandatory_impl(env, target):
387
- # env.expect.that_target(target).failures().contains_predicate(
388
- # matching.str_matches("mandatory*srcs"),
389
- # )
390
-
391
415
# =====
392
416
# You were gonna add a test at the end, weren't you?
393
417
# Nope. Please keep them sorted; put it in its alphabetical location.
0 commit comments