@@ -159,7 +159,7 @@ function main(): void
159
159
$ temp_source , $ temp_target , $ test_cnt , $ test_dirs ,
160
160
$ test_files , $ test_idx , $ test_list , $ test_results , $ testfile ,
161
161
$ user_tests , $ valgrind , $ sum_results , $ shuffle , $ file_cache , $ num_repeats ,
162
- $ bless ;
162
+ $ bless, $ asan ;
163
163
// Parallel testing
164
164
global $ workers , $ workerID ;
165
165
global $ context_line_count ;
@@ -363,6 +363,7 @@ function main(): void
363
363
$ workers = null ;
364
364
$ context_line_count = 3 ;
365
365
$ num_repeats = 1 ;
366
+ $ asan = false ;
366
367
367
368
$ cfgtypes = ['show ' , 'keep ' ];
368
369
$ cfgfiles = ['skip ' , 'php ' , 'clean ' , 'out ' , 'diff ' , 'exp ' , 'mem ' ];
@@ -567,6 +568,7 @@ function main(): void
567
568
break ;
568
569
case '--asan ' :
569
570
case '--msan ' :
571
+ $ asan = true ;
570
572
$ environment ['USE_ZEND_ALLOC ' ] = 0 ;
571
573
$ environment ['USE_TRACKED_ALLOC ' ] = 1 ;
572
574
$ environment ['SKIP_ASAN ' ] = 1 ;
@@ -1312,7 +1314,10 @@ function system_with_timeout(
1312
1314
$ data .= "\nTermsig= " . ($ stat ["exitcode " ] - 128 ) . "\n" ;
1313
1315
} else if (defined ('PHP_WINDOWS_VERSION_MAJOR ' ) && (($ stat ["exitcode " ] >> 28 ) & 0b1111 ) === 0b1100 ) {
1314
1316
// https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-erref/87fba13e-bf06-450e-83b1-9241dc81e781
1315
- $ data .= "\nTermsig= " . $ stat ["exitcode " ] . "\n" ;
1317
+ // ignore STATUS_BAD_STACK exit codes under ASan for now
1318
+ if (!$ asan || $ stat ["exitcode " ] !== -1073741784 ) {
1319
+ $ data .= "\nTermsig= " . $ stat ["exitcode " ] . "\n" ;
1320
+ }
1316
1321
}
1317
1322
1318
1323
proc_close ($ proc );
0 commit comments