summaryrefslogtreecommitdiffstats
path: root/Programs/_testembed.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@redhat.com>2019-03-06 11:51:53 (GMT)
committerGitHub <noreply@github.com>2019-03-06 11:51:53 (GMT)
commit25d13f37aa6743282d0b8b4df687ff89999964b2 (patch)
tree88b7e7e0834b9c9d1ca13220d83bc6eb845137ea /Programs/_testembed.c
parent01e0f439f5009f37b95ab516e91906fcc7fcb8c3 (diff)
downloadcpython-25d13f37aa6743282d0b8b4df687ff89999964b2.zip
cpython-25d13f37aa6743282d0b8b4df687ff89999964b2.tar.gz
cpython-25d13f37aa6743282d0b8b4df687ff89999964b2.tar.bz2
bpo-36142: PYTHONMALLOC overrides PYTHONDEV (GH-12191)
bpo-34247, bpo-36142: The PYTHONMALLOC environment variable has the priority over PYTHONDEV env var and "-X dev" command line option. For example, PYTHONMALLOC=malloc PYTHONDEVMODE=1 sets the memory allocators to "malloc" (and not to "debug"). Add an unit test.
Diffstat (limited to 'Programs/_testembed.c')
-rw-r--r--Programs/_testembed.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/Programs/_testembed.c b/Programs/_testembed.c
index 170672e..bba2510 100644
--- a/Programs/_testembed.c
+++ b/Programs/_testembed.c
@@ -442,8 +442,8 @@ static int test_init_from_config(void)
config.use_hash_seed = 1;
config.hash_seed = 123;
- putenv("PYTHONMALLOC=malloc");
- config.preconfig.allocator = "malloc_debug";
+ putenv("PYTHONMALLOC=malloc_debug");
+ config.preconfig.allocator = "malloc";
/* dev_mode=1 is tested in test_init_dev_mode() */
@@ -570,7 +570,7 @@ static int test_init_from_config(void)
static void test_init_env_putenvs(void)
{
putenv("PYTHONHASHSEED=42");
- putenv("PYTHONMALLOC=malloc_debug");
+ putenv("PYTHONMALLOC=malloc");
putenv("PYTHONTRACEMALLOC=2");
putenv("PYTHONPROFILEIMPORTTIME=1");
putenv("PYTHONMALLOCSTATS=1");
@@ -594,20 +594,32 @@ static void test_init_env_putenvs(void)
}
+static int test_init_env(void)
+{
+ /* Test initialization from environment variables */
+ Py_IgnoreEnvironmentFlag = 0;
+ test_init_env_putenvs();
+ _testembed_Py_Initialize();
+ dump_config();
+ Py_Finalize();
+ return 0;
+}
+
+
static void test_init_env_dev_mode_putenvs(void)
{
test_init_env_putenvs();
- putenv("PYTHONMALLOC=malloc");
+ putenv("PYTHONMALLOC=");
putenv("PYTHONFAULTHANDLER=");
putenv("PYTHONDEVMODE=1");
}
-static int test_init_env(void)
+static int test_init_env_dev_mode(void)
{
/* Test initialization from environment variables */
Py_IgnoreEnvironmentFlag = 0;
- test_init_env_putenvs();
+ test_init_env_dev_mode_putenvs();
_testembed_Py_Initialize();
dump_config();
Py_Finalize();
@@ -615,11 +627,12 @@ static int test_init_env(void)
}
-static int test_init_env_dev_mode(void)
+static int test_init_env_dev_mode_alloc(void)
{
/* Test initialization from environment variables */
Py_IgnoreEnvironmentFlag = 0;
test_init_env_dev_mode_putenvs();
+ putenv("PYTHONMALLOC=malloc");
_testembed_Py_Initialize();
dump_config();
Py_Finalize();
@@ -700,6 +713,7 @@ static struct TestCase TestCases[] = {
{ "init_from_config", test_init_from_config },
{ "init_env", test_init_env },
{ "init_env_dev_mode", test_init_env_dev_mode },
+ { "init_env_dev_mode_alloc", test_init_env_dev_mode_alloc },
{ "init_dev_mode", test_init_dev_mode },
{ "init_isolated", test_init_isolated },
{ NULL, NULL }