@@ -80,24 +80,18 @@ static void init_from_config_clear(PyConfig *config)
8080}
8181
8282
83- static  void  _testembed_Py_InitializeFromConfig (void )
83+ static  void  _testembed_initialize (void )
8484{
8585    PyConfig  config ;
8686    _PyConfig_InitCompatConfig (& config );
8787    config_set_program_name (& config );
8888    init_from_config_clear (& config );
8989}
9090
91- static  void  _testembed_Py_Initialize (void )
92- {
93-    Py_SetProgramName (PROGRAM_NAME );
94-    Py_Initialize ();
95- }
96- 
9791
9892static  int  test_import_in_subinterpreters (void )
9993{
100-     _testembed_Py_InitializeFromConfig ();
94+     _testembed_initialize ();
10195    PyThreadState_Swap (Py_NewInterpreter ());
10296    return  PyRun_SimpleString ("import readline" ); // gh-124160 
10397}
@@ -131,7 +125,7 @@ static int test_repeated_init_and_subinterpreters(void)
131125
132126    for  (int  i = 1 ; i  <= INIT_LOOPS ; i ++ ) {
133127        printf ("--- Pass %d ---\n" , i );
134-         _testembed_Py_InitializeFromConfig ();
128+         _testembed_initialize ();
135129        mainstate  =  PyThreadState_Get ();
136130
137131        PyEval_ReleaseThread (mainstate );
@@ -197,7 +191,7 @@ static int test_repeated_init_exec(void)
197191            code  =  main_argv [i + 2 ];
198192        }
199193
200-         _testembed_Py_InitializeFromConfig ();
194+         _testembed_initialize ();
201195        int  err  =  PyRun_SimpleString (code );
202196        Py_Finalize ();
203197        if  (err ) {
@@ -217,7 +211,7 @@ static int test_repeated_simple_init(void)
217211        fprintf (stderr , "--- Loop #%d ---\n" , i );
218212        fflush (stderr );
219213
220-         _testembed_Py_Initialize ();
214+         _testembed_initialize ();
221215        Py_Finalize ();
222216        printf ("Finalized\n" ); // Give test_embed some output to check 
223217    }
@@ -301,24 +295,8 @@ static int test_pre_initialization_api(void)
301295    /* the test doesn't support custom memory allocators */ 
302296    putenv ("PYTHONMALLOC=" );
303297
304-     /* Leading "./" ensures getpath.c can still find the standard library */ 
305-     _Py_EMBED_PREINIT_CHECK ("Checking Py_DecodeLocale\n" );
306-     wchar_t  * program  =  Py_DecodeLocale ("./spam" , NULL );
307-     if  (program  ==  NULL ) {
308-         fprintf (stderr , "Fatal error: cannot decode program name\n" );
309-         return  1 ;
310-     }
311-     _Py_EMBED_PREINIT_CHECK ("Checking Py_SetProgramName\n" );
312-     Py_SetProgramName (program );
313- 
314-     _Py_EMBED_PREINIT_CHECK ("Checking !Py_IsInitialized pre-initialization\n" );
315-     if  (Py_IsInitialized ()) {
316-         fprintf (stderr , "Fatal error: initialized before initialization!\n" );
317-         return  1 ;
318-     }
319- 
320298    _Py_EMBED_PREINIT_CHECK ("Initializing interpreter\n" );
321-     Py_Initialize ();
299+     _testembed_initialize ();
322300
323301    _Py_EMBED_PREINIT_CHECK ("Checking Py_IsInitialized post-initialization\n" );
324302    if  (!Py_IsInitialized ()) {
@@ -340,9 +318,6 @@ static int test_pre_initialization_api(void)
340318        fprintf (stderr , "Fatal error: still initialized after finalization!\n" );
341319        return  1 ;
342320    }
343- 
344-     _Py_EMBED_PREINIT_CHECK ("Freeing memory allocated by Py_DecodeLocale\n" );
345-     PyMem_RawFree (program );
346321    return  0 ;
347322}
348323
@@ -384,7 +359,7 @@ static int test_pre_initialization_sys_options(void)
384359    dynamic_xoption  =  NULL ;
385360
386361    _Py_EMBED_PREINIT_CHECK ("Initializing interpreter\n" );
387-     _testembed_Py_InitializeFromConfig ();
362+     _testembed_initialize ();
388363    _Py_EMBED_PREINIT_CHECK ("Check sys module contents\n" );
389364    PyRun_SimpleString (
390365        "import sys; " 
@@ -431,7 +406,7 @@ static int test_bpo20891(void)
431406        return  1 ;
432407    }
433408
434-     _testembed_Py_InitializeFromConfig ();
409+     _testembed_initialize ();
435410
436411    unsigned long  thrd  =  PyThread_start_new_thread (bpo20891_thread , & lock );
437412    if  (thrd  ==  PYTHREAD_INVALID_THREAD_ID ) {
@@ -454,7 +429,7 @@ static int test_bpo20891(void)
454429
455430static  int  test_initialize_twice (void )
456431{
457-     _testembed_Py_InitializeFromConfig ();
432+     _testembed_initialize ();
458433
459434    /* bpo-33932: Calling Py_Initialize() twice should do nothing 
460435     * (and not crash!). */ 
@@ -472,7 +447,7 @@ static int test_initialize_pymain(void)
472447                        L"print(f'Py_Main() after Py_Initialize: " 
473448                        L"sys.argv={sys.argv}')" ),
474449                       L"arg2" };
475-     _testembed_Py_InitializeFromConfig ();
450+     _testembed_initialize ();
476451
477452    /* bpo-34008: Calling Py_Main() after Py_Initialize() must not crash */ 
478453    Py_Main (Py_ARRAY_LENGTH (argv ), argv );
@@ -495,7 +470,7 @@ dump_config(void)
495470
496471static  int  test_init_initialize_config (void )
497472{
498-     _testembed_Py_InitializeFromConfig ();
473+     _testembed_initialize ();
499474    dump_config ();
500475    Py_Finalize ();
501476    return  0 ;
@@ -569,9 +544,6 @@ static int test_init_global_config(void)
569544    putenv ("PYTHONUTF8=0" );
570545    Py_UTF8Mode  =  1 ;
571546
572-     /* Test initialization from global configuration variables (Py_xxx) */ 
573-     Py_SetProgramName (L"./globalvar" );
574- 
575547    /* Py_IsolatedFlag is not tested */ 
576548    Py_NoSiteFlag  =  1 ;
577549    Py_BytesWarningFlag  =  1 ;
@@ -604,7 +576,7 @@ static int test_init_global_config(void)
604576    /* FIXME: test Py_LegacyWindowsFSEncodingFlag */ 
605577    /* FIXME: test Py_LegacyWindowsStdioFlag */ 
606578
607-     Py_Initialize ();
579+     _testembed_initialize ();
608580    dump_config ();
609581    Py_Finalize ();
610582    return  0 ;
@@ -666,7 +638,6 @@ static int test_init_from_config(void)
666638    putenv ("PYTHONPYCACHEPREFIX=env_pycache_prefix" );
667639    config_set_string (& config , & config .pycache_prefix , L"conf_pycache_prefix" );
668640
669-     Py_SetProgramName (L"./globalvar" );
670641    config_set_string (& config , & config .program_name , L"./conf_program_name" );
671642
672643    wchar_t *  argv [] =  {
@@ -853,7 +824,7 @@ static int test_init_compat_env(void)
853824    /* Test initialization from environment variables */ 
854825    Py_IgnoreEnvironmentFlag  =  0 ;
855826    set_all_env_vars ();
856-     _testembed_Py_InitializeFromConfig ();
827+     _testembed_initialize ();
857828    dump_config ();
858829    Py_Finalize ();
859830    return  0 ;
@@ -889,7 +860,7 @@ static int test_init_env_dev_mode(void)
889860    /* Test initialization from environment variables */ 
890861    Py_IgnoreEnvironmentFlag  =  0 ;
891862    set_all_env_vars_dev_mode ();
892-     _testembed_Py_InitializeFromConfig ();
863+     _testembed_initialize ();
893864    dump_config ();
894865    Py_Finalize ();
895866    return  0 ;
@@ -906,7 +877,7 @@ static int test_init_env_dev_mode_alloc(void)
906877#else 
907878    putenv ("PYTHONMALLOC=mimalloc" );
908879#endif 
909-     _testembed_Py_InitializeFromConfig ();
880+     _testembed_initialize ();
910881    dump_config ();
911882    Py_Finalize ();
912883    return  0 ;
@@ -1246,7 +1217,7 @@ static int test_open_code_hook(void)
12461217    }
12471218
12481219    Py_IgnoreEnvironmentFlag  =  0 ;
1249-     _testembed_Py_InitializeFromConfig ();
1220+     _testembed_initialize ();
12501221    result  =  0 ;
12511222
12521223    PyObject  * r  =  PyFile_OpenCode ("$$test-filename" );
@@ -1310,7 +1281,7 @@ static int _test_audit(Py_ssize_t setValue)
13101281
13111282    Py_IgnoreEnvironmentFlag  =  0 ;
13121283    PySys_AddAuditHook (_audit_hook , & sawSet );
1313-     _testembed_Py_InitializeFromConfig ();
1284+     _testembed_initialize ();
13141285
13151286    if  (PySys_Audit ("_testembed.raise" , NULL ) ==  0 ) {
13161287        printf ("No error raised" );
@@ -1369,7 +1340,7 @@ static int test_audit_tuple(void)
13691340    // we need at least one hook, otherwise code checking for 
13701341    // PySys_AuditTuple() is skipped. 
13711342    PySys_AddAuditHook (_audit_hook , & sawSet );
1372-     _testembed_Py_InitializeFromConfig ();
1343+     _testembed_initialize ();
13731344
13741345    ASSERT (!PyErr_Occurred (), 0 );
13751346
@@ -1422,7 +1393,7 @@ static int test_audit_subinterpreter(void)
14221393{
14231394    Py_IgnoreEnvironmentFlag  =  0 ;
14241395    PySys_AddAuditHook (_audit_subinterpreter_hook , NULL );
1425-     _testembed_Py_InitializeFromConfig ();
1396+     _testembed_initialize ();
14261397
14271398    Py_NewInterpreter ();
14281399    Py_NewInterpreter ();
@@ -2166,13 +2137,13 @@ static int test_unicode_id_init(void)
21662137    };
21672138
21682139    // Initialize Python once without using the identifier 
2169-     _testembed_Py_InitializeFromConfig ();
2140+     _testembed_initialize ();
21702141    Py_Finalize ();
21712142
21722143    // Now initialize Python multiple times and use the identifier. 
21732144    // The first _PyUnicode_FromId() call initializes the identifier index. 
21742145    for  (int  i = 0 ; i < 3 ; i ++ ) {
2175-         _testembed_Py_InitializeFromConfig ();
2146+         _testembed_initialize ();
21762147
21772148        PyObject  * str1 , * str2 ;
21782149
@@ -2195,7 +2166,7 @@ static int test_unicode_id_init(void)
21952166
21962167static  int  test_init_main_interpreter_settings (void )
21972168{
2198-     _testembed_Py_Initialize ();
2169+     _testembed_initialize ();
21992170    (void ) PyRun_SimpleStringFlags (
22002171        "import _testinternalcapi, json; " 
22012172        "print(json.dumps(_testinternalcapi.get_interp_settings(0)))" ,
@@ -2206,7 +2177,7 @@ static int test_init_main_interpreter_settings(void)
22062177
22072178static  void  do_init (void  * unused )
22082179{
2209-     _testembed_Py_Initialize ();
2180+     _testembed_initialize ();
22102181    Py_Finalize ();
22112182}
22122183
@@ -2331,7 +2302,7 @@ unwrap_allocator(PyMemAllocatorEx *allocator)
23312302static  int 
23322303test_get_incomplete_frame (void )
23332304{
2334-     _testembed_Py_InitializeFromConfig ();
2305+     _testembed_initialize ();
23352306    PyMemAllocatorEx  allocator ;
23362307    wrap_allocator (& allocator );
23372308    // Force an allocation with an incomplete (generator) frame: 
0 commit comments