From 49d99f01e6e51acec5ca57a02e857f0796bc418b Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Thu, 26 Sep 2019 04:01:49 +0200 Subject: 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'). --- Programs/_testembed.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'Programs/_testembed.c') diff --git a/Programs/_testembed.c b/Programs/_testembed.c index 14fca24f31..83c266b885 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); -- cgit v1.2.1