3333EXIT_TIMEOUT = 120.0
3434
3535
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+
3649# Types for types hints
3750StrPath = str
3851TestName = str
@@ -535,6 +548,25 @@ def is_cross_compiled():
535548 return ('_PYTHON_HOST_PLATFORM' in os .environ )
536549
537550
551+ def format_resources (use_resources : tuple [str , ...]):
552+ # Express resources related to "all"
553+ all_minus = [name for name in ALL_RESOURCES
554+ if name not in use_resources ]
555+ all_minus .insert (0 , 'all' )
556+ all_minus = ',-' .join (all_minus )
557+ all_add = [name for name in use_resources
558+ if name not in ALL_RESOURCES ]
559+ all_add .insert (0 , all_minus )
560+ all_add = ',' .join (all_add )
561+ all_text = f"resources: { all_add } "
562+
563+ text = ', ' .join (sorted (use_resources ))
564+ text = f"resources ({ len (use_resources )} ): { text } "
565+ if len (all_text ) <= len (text ):
566+ text = all_text
567+ return text
568+
569+
538570def display_header (use_resources : tuple [str , ...],
539571 python_cmd : tuple [str , ...] | None ):
540572 # Print basic platform information
@@ -550,14 +582,15 @@ def display_header(use_resources: tuple[str, ...],
550582 if process_cpu_count and process_cpu_count != cpu_count :
551583 cpu_count = f"{ process_cpu_count } (process) / { cpu_count } (system)"
552584 print ("== CPU count:" , cpu_count )
553- print ("== encodings: locale=%s, FS=%s"
585+ print ("== encodings: locale=%s FS=%s"
554586 % (locale .getencoding (), sys .getfilesystemencoding ()))
555587
556588 if use_resources :
557- print ( f"== resources ( { len ( use_resources )} ): "
558- f" { ', ' . join ( sorted ( use_resources )) } " )
589+ text = format_resources ( use_resources )
590+ print ( f"== { text } " )
559591 else :
560- print ("== resources: (all disabled, use -u option)" )
592+ print ("== resources: all test resources are disabled, "
593+ "use -u option to unskip tests" )
561594
562595 cross_compile = is_cross_compiled ()
563596 if cross_compile :
0 commit comments