diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-09-26 02:01:49 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-09-26 02:01:49 (GMT) |
commit | 49d99f01e6e51acec5ca57a02e857f0796bc418b (patch) | |
tree | b38801ae16e872c8739d3fa4cd03c1e923ff5bbe /Programs | |
parent | 88feaecd46a8f427e30ef7ad8cfcddfe392a2402 (diff) | |
download | cpython-49d99f01e6e51acec5ca57a02e857f0796bc418b.zip cpython-49d99f01e6e51acec5ca57a02e857f0796bc418b.tar.gz cpython-49d99f01e6e51acec5ca57a02e857f0796bc418b.tar.bz2 |
bpo-38234: Fix test_embed.test_init_setpath_config() on FreeBSD (GH-16406)
Explicitly preinitializes with a Python preconfiguration to avoid
Py_SetPath() implicit preinitialization with a compat
preconfiguration.
Fix also test_init_setpath() and test_init_setpythonhome() on macOS:
use self.test_exe as the executable (and base_executable), rather
than shutil.which('python3').
Diffstat (limited to 'Programs')
-rw-r--r-- | Programs/_testembed.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/Programs/_testembed.c b/Programs/_testembed.c index 14fca24..83c266b 100644 --- a/Programs/_testembed.c +++ b/Programs/_testembed.c @@ -1448,6 +1448,17 @@ static int test_init_setpath(void) static int test_init_setpath_config(void) { + PyStatus status; + PyPreConfig preconfig; + PyPreConfig_InitPythonConfig(&preconfig); + + /* Explicitly preinitializes with Python preconfiguration to avoid + Py_SetPath() implicit preinitialization with compat preconfiguration. */ + status = Py_PreInitialize(&preconfig); + if (PyStatus_Exception(status)) { + Py_ExitStatusException(status); + } + char *env = getenv("TESTPATH"); if (!env) { fprintf(stderr, "missing TESTPATH env var\n"); @@ -1462,7 +1473,6 @@ static int test_init_setpath_config(void) PyMem_RawFree(path); putenv("TESTPATH="); - PyStatus status; PyConfig config; status = PyConfig_InitPythonConfig(&config); |