Don't pass --test-args to python -m unitest

The args for unittest and cargo test are mutually incompatible. Suggest that people use `python -m unittest ...` manually instead.

This also changes `bootstrap_test.py` to be easier to run standalone; see the commit for details.
This commit is contained in:
jyn 2023-07-01 11:13:08 -05:00
parent e013d8f8b3
commit 85372005e7
2 changed files with 15 additions and 5 deletions

View File

@ -1,6 +1,6 @@
"""Bootstrap tests """Bootstrap tests
Run these with `x test bootstrap`, or `python -m unittest bootstrap_test.py`.""" Run these with `x test bootstrap`, or `python -m unittest src/bootstrap/bootstrap_test.py`."""
from __future__ import absolute_import, division, print_function from __future__ import absolute_import, division, print_function
import os import os
@ -12,6 +12,10 @@ import sys
from shutil import rmtree from shutil import rmtree
# Allow running this from the top-level directory.
bootstrap_dir = os.path.dirname(os.path.abspath(__file__))
# For the import below, have Python search in src/bootstrap first.
sys.path.insert(0, bootstrap_dir)
import bootstrap import bootstrap
import configure import configure
@ -131,8 +135,13 @@ class BuildBootstrap(unittest.TestCase):
parsed = bootstrap.parse_args(args) parsed = bootstrap.parse_args(args)
build = serialize_and_parse(configure_args, parsed) build = serialize_and_parse(configure_args, parsed)
build.build_dir = os.environ["BUILD_DIR"] # Make these optional so that `python -m unittest` works when run manually.
build.build = os.environ["BUILD_PLATFORM"] build_dir = os.environ.get("BUILD_DIR")
if build_dir is not None:
build.build_dir = build_dir
build_platform = os.environ.get("BUILD_PLATFORM")
if build_platform is not None:
build.build = build_platform
return build.build_bootstrap_cmd(env), env return build.build_bootstrap_cmd(env), env
def test_cargoflags(self): def test_cargoflags(self):

View File

@ -2682,8 +2682,9 @@ impl Step for Bootstrap {
.args(["-m", "unittest", "bootstrap_test.py"]) .args(["-m", "unittest", "bootstrap_test.py"])
.env("BUILD_DIR", &builder.out) .env("BUILD_DIR", &builder.out)
.env("BUILD_PLATFORM", &builder.build.build.triple) .env("BUILD_PLATFORM", &builder.build.build.triple)
.current_dir(builder.src.join("src/bootstrap/")) .current_dir(builder.src.join("src/bootstrap/"));
.args(builder.config.test_args()); // NOTE: we intentionally don't pass test_args here because the args for unittest and cargo test are mutually incompatible.
// Use `python -m unittest` manually if you want to pass arguments.
try_run(builder, &mut check_bootstrap).unwrap(); try_run(builder, &mut check_bootstrap).unwrap();
let host = builder.config.build; let host = builder.config.build;