Mercurial > public > mercurial-scm > hg-stable
view rust/hgcli/src/main.rs @ 48307:ab2dfc993b5c stable
tests: run the whole hg-core/path_auditor test in a clean temp dir
This makes the whole test happen in a clean temporary directory in
`$TMPDIR/$random`, and simplifies the test a bit by eliminating unnecessarily
dynamic path elements computations.
Before this patch, the first part of the test was happening in `/tmp` itself.
This allowed coincidentally named files placed in that directory to impact the
outcome of the test. Additionally, this made the second part of the test fail
on systems on which `$TMPDIR != /tmp`, because the inspected directory was
different from the one in which the mock files were being written. This fully
fixes the issue only partially solved in db2bc9e667a1.
Differential Revision: https://phab.mercurial-scm.org/D11738
author | pacien <pacien.trangirard@pacien.net> |
---|---|
date | Tue, 09 Nov 2021 02:00:25 +0100 |
parents | 426294d06ddc |
children |
line wrap: on
line source
use pyembed::MainPythonInterpreter; // Include an auto-generated file containing the default // `pyembed::PythonConfig` derived by the PyOxidizer configuration file. // // If you do not want to use PyOxidizer to generate this file, simply // remove this line and instantiate your own instance of // `pyembed::PythonConfig`. include!(env!("PYOXIDIZER_DEFAULT_PYTHON_CONFIG_RS")); fn main() { // The following code is in a block so the MainPythonInterpreter is // destroyed in an orderly manner, before process exit. let code = { // Load the default Python configuration as derived by the PyOxidizer // config file used at build time. let config = default_python_config(); // Construct a new Python interpreter using that config, handling any // errors from construction. match MainPythonInterpreter::new(config) { Ok(mut interp) => { // And run it using the default run configuration as specified // by the configuration. If an uncaught Python // exception is raised, handle it. // This includes the special SystemExit, which is a request to // terminate the process. interp.run_as_main() } Err(msg) => { eprintln!("{}", msg); 1 } } }; // And exit the process according to code execution results. std::process::exit(code); }