mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-21 22:34:05 +00:00
Auto merge of #33084 - alexcrichton:osx-python-sanity, r=michaelwoerister
Sanity check Python on OSX for LLDB tests Two primary changes: * Don't get past the configure stage if `python` isn't coming from `/usr/bin` * Call `debugger.Terminate()` to prevent segfaults on newer versions of LLDB. Closes #32994
This commit is contained in:
commit
ef57fb7144
13
configure
vendored
13
configure
vendored
@ -823,6 +823,19 @@ then
|
||||
fi
|
||||
fi
|
||||
|
||||
# LLDB tests on OSX require /usr/bin/python, not something like Homebrew's
|
||||
# /usr/local/bin/python. We're loading a compiled module for LLDB tests which is
|
||||
# only compatible with the system.
|
||||
case $CFG_BUILD in
|
||||
*-apple-darwin)
|
||||
CFG_LLDB_PYTHON=/usr/bin/python
|
||||
;;
|
||||
*)
|
||||
CFG_LLDB_PYTHON=$CFG_PYTHON
|
||||
;;
|
||||
esac
|
||||
putvar CFG_LLDB_PYTHON
|
||||
|
||||
step_msg "looking for target specific programs"
|
||||
|
||||
probe CFG_ADB adb
|
||||
|
@ -619,7 +619,8 @@ CTEST_COMMON_ARGS$(1)-T-$(2)-H-$(3) := \
|
||||
--stage-id stage$(1)-$(2) \
|
||||
--target $(2) \
|
||||
--host $(3) \
|
||||
--python $$(CFG_PYTHON) \
|
||||
--docck-python $$(CFG_PYTHON) \
|
||||
--lldb-python $$(CFG_LLDB_PYTHON) \
|
||||
--gdb-version="$(CFG_GDB_VERSION)" \
|
||||
--lldb-version="$(CFG_LLDB_VERSION)" \
|
||||
--android-cross-path=$(CFG_ANDROID_CROSS_PATH) \
|
||||
|
@ -81,8 +81,19 @@ pub fn compiletest(build: &Build,
|
||||
|
||||
// FIXME: needs android support
|
||||
cmd.arg("--android-cross-path").arg("");
|
||||
|
||||
// FIXME: CFG_PYTHON should probably be detected more robustly elsewhere
|
||||
cmd.arg("--python").arg("python");
|
||||
let python_default = "python";
|
||||
cmd.arg("--docck-python").arg(python_default);
|
||||
|
||||
if build.config.build.ends_with("apple-darwin") {
|
||||
// Force /usr/bin/python on OSX for LLDB tests because we're loading the
|
||||
// LLDB plugin's compiled module which only works with the system python
|
||||
// (namely not Homebrew-installed python)
|
||||
cmd.arg("--lldb-python").arg("/usr/bin/python");
|
||||
} else {
|
||||
cmd.arg("--lldb-python").arg(python_default);
|
||||
}
|
||||
|
||||
if let Some(ref vers) = build.gdb_version {
|
||||
cmd.arg("--gdb-version").arg(vers);
|
||||
|
@ -216,4 +216,5 @@ except IOError as e:
|
||||
print("Aborting.", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
finally:
|
||||
debugger.Terminate()
|
||||
script_file.close()
|
||||
|
@ -83,8 +83,11 @@ pub struct Config {
|
||||
// The rustdoc executable
|
||||
pub rustdoc_path: PathBuf,
|
||||
|
||||
// The python executable
|
||||
pub python: String,
|
||||
// The python executable to use for LLDB
|
||||
pub lldb_python: String,
|
||||
|
||||
// The python executable to use for htmldocck
|
||||
pub docck_python: String,
|
||||
|
||||
// The llvm FileCheck binary path
|
||||
pub llvm_filecheck: Option<PathBuf>,
|
||||
|
@ -72,7 +72,8 @@ pub fn parse_config(args: Vec<String> ) -> Config {
|
||||
reqopt("", "run-lib-path", "path to target shared libraries", "PATH"),
|
||||
reqopt("", "rustc-path", "path to rustc to use for compiling", "PATH"),
|
||||
reqopt("", "rustdoc-path", "path to rustdoc to use for compiling", "PATH"),
|
||||
reqopt("", "python", "path to python to use for doc tests", "PATH"),
|
||||
reqopt("", "lldb-python", "path to python to use for doc tests", "PATH"),
|
||||
reqopt("", "docck-python", "path to python to use for doc tests", "PATH"),
|
||||
optopt("", "valgrind-path", "path to Valgrind executable for Valgrind tests", "PROGRAM"),
|
||||
optflag("", "force-valgrind", "fail if Valgrind tests cannot be run under Valgrind"),
|
||||
optopt("", "llvm-filecheck", "path to LLVM's FileCheck binary", "DIR"),
|
||||
@ -142,7 +143,8 @@ pub fn parse_config(args: Vec<String> ) -> Config {
|
||||
run_lib_path: make_absolute(opt_path(matches, "run-lib-path")),
|
||||
rustc_path: opt_path(matches, "rustc-path"),
|
||||
rustdoc_path: opt_path(matches, "rustdoc-path"),
|
||||
python: matches.opt_str("python").unwrap(),
|
||||
lldb_python: matches.opt_str("lldb-python").unwrap(),
|
||||
docck_python: matches.opt_str("docck-python").unwrap(),
|
||||
valgrind_path: matches.opt_str("valgrind-path"),
|
||||
force_valgrind: matches.opt_present("force-valgrind"),
|
||||
llvm_filecheck: matches.opt_str("llvm-filecheck").map(|s| PathBuf::from(&s)),
|
||||
|
@ -777,7 +777,7 @@ fn run_debuginfo_lldb_test(config: &Config, props: &TestProps, testpaths: &TestP
|
||||
let lldb_script_path = rust_src_root.join("src/etc/lldb_batchmode.py");
|
||||
cmd2procres(config,
|
||||
testpaths,
|
||||
Command::new(&config.python)
|
||||
Command::new(&config.lldb_python)
|
||||
.arg(&lldb_script_path)
|
||||
.arg(test_executable)
|
||||
.arg(debugger_script)
|
||||
@ -1835,7 +1835,7 @@ fn run_rustdoc_test(config: &Config, props: &TestProps, testpaths: &TestPaths) {
|
||||
|
||||
let res = cmd2procres(config,
|
||||
testpaths,
|
||||
Command::new(&config.python)
|
||||
Command::new(&config.docck_python)
|
||||
.arg(root.join("src/etc/htmldocck.py"))
|
||||
.arg(out_dir)
|
||||
.arg(&testpaths.file));
|
||||
|
Loading…
Reference in New Issue
Block a user