mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	gh-126255: Ignore warning about JIT being deactivated when perf support is active in test_embed.InitConfigTests.test_initconfig_api (#126302)
				
					
				
			Temporarily ignore warnings about JIT deactivation when perf support is active. This will be reverted as soon as a way is found to determine at run time whether the interpreter was built with JIT. Currently, this is not possible on Windows. Co-authored-by: Kirill Podoprigora <kirill.bast9@mail.ru> Co-authored-by: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Co-authored-by: Pablo Galindo <pablogsal@gmail.com>
This commit is contained in:
		
							parent
							
								
									8477951a1c
								
							
						
					
					
						commit
						f0c6fccd08
					
				
					 4 changed files with 14 additions and 5 deletions
				
			
		|  | @ -1,5 +1,6 @@ | |||
| # Run the tests in Programs/_testembed.c (tests for the CPython embedding APIs) | ||||
| from test import support | ||||
| from test.libregrtest.utils import get_build_info | ||||
| from test.support import import_helper, os_helper, threading_helper, MS_WINDOWS | ||||
| import unittest | ||||
| 
 | ||||
|  | @ -1780,8 +1781,10 @@ def test_initconfig_api(self): | |||
|             'perf_profiling': 2, | ||||
|         } | ||||
|         config_dev_mode(preconfig, config) | ||||
|         # Temporarily enable ignore_stderr=True to ignore warnings on JIT builds | ||||
|         # See gh-126255 for more information | ||||
|         self.check_all_configs("test_initconfig_api", config, preconfig, | ||||
|                                api=API_ISOLATED) | ||||
|                                api=API_ISOLATED, ignore_stderr=True) | ||||
| 
 | ||||
|     def test_initconfig_get_api(self): | ||||
|         self.run_embedded_interpreter("test_initconfig_get_api") | ||||
|  |  | |||
|  | @ -210,14 +210,14 @@ def test_sys_api_with_existing_trampoline(self): | |||
|                 sys.activate_stack_trampoline("perf") | ||||
|                 sys.activate_stack_trampoline("perf") | ||||
|                 """ | ||||
|         assert_python_ok("-c", code) | ||||
|         assert_python_ok("-c", code, PYTHON_JIT="0") | ||||
| 
 | ||||
|     def test_sys_api_with_invalid_trampoline(self): | ||||
|         code = """if 1: | ||||
|                 import sys | ||||
|                 sys.activate_stack_trampoline("invalid") | ||||
|                 """ | ||||
|         rc, out, err = assert_python_failure("-c", code) | ||||
|         rc, out, err = assert_python_failure("-c", code, PYTHON_JIT="0") | ||||
|         self.assertIn("invalid backend: invalid", err.decode()) | ||||
| 
 | ||||
|     def test_sys_api_get_status(self): | ||||
|  | @ -228,7 +228,7 @@ def test_sys_api_get_status(self): | |||
|                 sys.deactivate_stack_trampoline() | ||||
|                 assert sys.is_stack_trampoline_active() is False | ||||
|                 """ | ||||
|         assert_python_ok("-c", code) | ||||
|         assert_python_ok("-c", code, PYTHON_JIT="0") | ||||
| 
 | ||||
| 
 | ||||
| def is_unwinding_reliable_with_frame_pointers(): | ||||
|  |  | |||
|  | @ -1310,12 +1310,17 @@ init_interp_main(PyThreadState *tstate) | |||
|             enabled = *env != '0'; | ||||
|         } | ||||
|         if (enabled) { | ||||
| #ifdef _Py_JIT | ||||
|             // perf profiler works fine with tier 2 interpreter, so
 | ||||
|             // only checking for a "real JIT".
 | ||||
|             if (config->perf_profiling > 0) { | ||||
|                 (void)PyErr_WarnEx( | ||||
|                     PyExc_RuntimeWarning, | ||||
|                     "JIT deactivated as perf profiling support is active", | ||||
|                     0); | ||||
|             } else { | ||||
|             } else | ||||
| #endif | ||||
|             { | ||||
|                 PyObject *opt = _PyOptimizer_NewUOpOptimizer(); | ||||
|                 if (opt == NULL) { | ||||
|                     return _PyStatus_ERR("can't initialize optimizer"); | ||||
|  |  | |||
|  | @ -2290,6 +2290,7 @@ sys_activate_stack_trampoline_impl(PyObject *module, const char *backend) | |||
| #ifdef _Py_JIT | ||||
|     _PyOptimizerObject* optimizer = _Py_GetOptimizer(); | ||||
|     if (optimizer != NULL) { | ||||
|         Py_DECREF(optimizer); | ||||
|         PyErr_SetString(PyExc_ValueError, "Cannot activate the perf trampoline if the JIT is active"); | ||||
|         return NULL; | ||||
|     } | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 mpage
						mpage