33
33
EXIT_TIMEOUT = 120.0
34
34
35
35
36
+ ALL_RESOURCES = ('audio' , 'curses' , 'largefile' , 'network' ,
37
+ 'decimal' , 'cpu' , 'subprocess' , 'urlfetch' , 'gui' , 'walltime' )
38
+
39
+ # Other resources excluded from --use=all:
40
+ #
41
+ # - extralagefile (ex: test_zipfile64): really too slow to be enabled
42
+ # "by default"
43
+ # - tzdata: while needed to validate fully test_datetime, it makes
44
+ # test_datetime too slow (15-20 min on some buildbots) and so is disabled by
45
+ # default (see bpo-30822).
46
+ RESOURCE_NAMES = ALL_RESOURCES + ('extralargefile' , 'tzdata' )
47
+
48
+
36
49
# Types for types hints
37
50
StrPath = str
38
51
TestName = str
@@ -535,6 +548,30 @@ def is_cross_compiled():
535
548
return ('_PYTHON_HOST_PLATFORM' in os .environ )
536
549
537
550
551
+ def format_resources (use_resources : tuple [str , ...]):
552
+ use_resources = set (use_resources )
553
+ all_resources = set (ALL_RESOURCES )
554
+
555
+ # Express resources relative to "all"
556
+ relative_all = ['all' ]
557
+ for name in sorted (all_resources - use_resources ):
558
+ relative_all .append (f'-{ name } ' )
559
+ for name in sorted (use_resources - all_resources ):
560
+ relative_all .append (f'{ name } ' )
561
+ all_text = ',' .join (relative_all )
562
+ all_text = f"resources: { all_text } "
563
+
564
+ # List of enabled resources
565
+ text = ',' .join (sorted (use_resources ))
566
+ text = f"resources ({ len (use_resources )} ): { text } "
567
+
568
+ # Pick the shortest string (prefer relative to all if lengths are equal)
569
+ if len (all_text ) <= len (text ):
570
+ return all_text
571
+ else :
572
+ return text
573
+
574
+
538
575
def display_header (use_resources : tuple [str , ...],
539
576
python_cmd : tuple [str , ...] | None ):
540
577
# Print basic platform information
@@ -550,14 +587,15 @@ def display_header(use_resources: tuple[str, ...],
550
587
if process_cpu_count and process_cpu_count != cpu_count :
551
588
cpu_count = f"{ process_cpu_count } (process) / { cpu_count } (system)"
552
589
print ("== CPU count:" , cpu_count )
553
- print ("== encodings: locale=%s, FS=%s"
590
+ print ("== encodings: locale=%s FS=%s"
554
591
% (locale .getencoding (), sys .getfilesystemencoding ()))
555
592
556
593
if use_resources :
557
- print ( f"== resources ( { len ( use_resources )} ): "
558
- f" { ', ' . join ( sorted ( use_resources )) } " )
594
+ text = format_resources ( use_resources )
595
+ print ( f"== { text } " )
559
596
else :
560
- print ("== resources: (all disabled, use -u option)" )
597
+ print ("== resources: all test resources are disabled, "
598
+ "use -u option to unskip tests" )
561
599
562
600
cross_compile = is_cross_compiled ()
563
601
if cross_compile :
0 commit comments