File tree Expand file tree Collapse file tree 5 files changed +35
-10
lines changed Expand file tree Collapse file tree 5 files changed +35
-10
lines changed Original file line number Diff line number Diff line change @@ -259,16 +259,8 @@ def get_build_info():
259
259
elif '-flto' in ldflags_nodist :
260
260
optimizations .append ('LTO' )
261
261
262
- # --enable-optimizations
263
- pgo_options = (
264
- # GCC
265
- '-fprofile-use' ,
266
- # clang: -fprofile-instr-use=code.profclangd
267
- '-fprofile-instr-use' ,
268
- # ICC
269
- "-prof-use" ,
270
- )
271
- if any (option in cflags_nodist for option in pgo_options ):
262
+ if support .check_cflags_pgo ():
263
+ # PGO (--enable-optimizations)
272
264
optimizations .append ('PGO' )
273
265
if optimizations :
274
266
build .append ('+' .join (optimizations ))
Original file line number Diff line number Diff line change @@ -867,6 +867,15 @@ def collect_fips(info_add):
867
867
pass
868
868
869
869
870
+ def collect_libregrtest_utils (info_add ):
871
+ try :
872
+ from test .libregrtest import utils
873
+ except ImportError :
874
+ return
875
+
876
+ info_add ('libregrtests.build_info' , ' ' .join (utils .get_build_info ()))
877
+
878
+
870
879
def collect_info (info ):
871
880
error = False
872
881
info_add = info .add
@@ -904,6 +913,7 @@ def collect_info(info):
904
913
collect_tkinter ,
905
914
collect_windows ,
906
915
collect_zlib ,
916
+ collect_libregrtest_utils ,
907
917
908
918
# Collecting from tests should be last as they have side effects.
909
919
collect_test_socket ,
Original file line number Diff line number Diff line change @@ -781,6 +781,21 @@ def python_is_optimized():
781
781
return final_opt not in ('' , '-O0' , '-Og' )
782
782
783
783
784
+ def check_cflags_pgo ():
785
+ # Check if Python was built with ./configure --enable-optimizations:
786
+ # with Profile Guided Optimization (PGO).
787
+ cflags_nodist = sysconfig .get_config_var ('PY_CFLAGS_NODIST' ) or ''
788
+ pgo_options = (
789
+ # GCC
790
+ '-fprofile-use' ,
791
+ # clang: -fprofile-instr-use=code.profclangd
792
+ '-fprofile-instr-use' ,
793
+ # ICC
794
+ "-prof-use" ,
795
+ )
796
+ return any (option in cflags_nodist for option in pgo_options )
797
+
798
+
784
799
_header = 'nP'
785
800
_align = '0n'
786
801
if hasattr (sys , "getobjects" ):
Original file line number Diff line number Diff line change 15
15
@support .requires_zlib ()
16
16
@unittest .skipIf (sys .platform .startswith ('win' ), 'not supported on Windows' )
17
17
@support .skip_if_buildbot ('not all buildbots have enough space' )
18
+ # gh-103053: Skip test if Python is built with Profile Guided Optimization
19
+ # (PGO), since the test is just too slow in this case.
20
+ @unittest .skipIf (support .check_cflags_pgo (),
21
+ 'test is too slow with PGO' )
18
22
class TestFreeze (unittest .TestCase ):
19
23
20
24
@support .requires_resource ('cpu' ) # Building Python is slow
Original file line number Diff line number Diff line change
1
+ Skip test_freeze_simple_script() of test_tools.test_freeze if Python is built
2
+ with ``./configure --enable-optimizations ``, which means with Profile Guided
3
+ Optimization (PGO): it just makes the test too slow. The freeze tool is tested
4
+ by many other CIs with other (faster) compiler flags. Patch by Victor Stinner.
You can’t perform that action at this time.
0 commit comments