diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-03-06 11:51:53 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-06 11:51:53 (GMT) |
commit | 25d13f37aa6743282d0b8b4df687ff89999964b2 (patch) | |
tree | 88b7e7e0834b9c9d1ca13220d83bc6eb845137ea /Programs/_testembed.c | |
parent | 01e0f439f5009f37b95ab516e91906fcc7fcb8c3 (diff) | |
download | cpython-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.c | 28 |
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 } |