|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
[2012-04-18 21:21 UTC] mattficken@php.net
Description: ------------ All the php_cli_server* tests randomly fail. Each test starts and stops the builtin web server. The web server when restarted quickly, can't listen on the given port because its locked by the OS. The SO_REUSEADDR option needs to be set on the web server's socket. Test script: --------------- 007+ string(82) "C:\php-sdk\php-test-pack-5.4-nts-windows-vc9-x86-re7a36ad\Sapi\cli\tests\index.php" 007- string(%d) "%s/tests/index.php" Patches61769.patch.txt (last revision 2012-05-04 22:31 UTC by mattficken@php.net)php_cli_server_017.diff (last revision 2012-04-19 14:15 UTC by ab@php.net) php_cli_server.diff (last revision 2012-04-18 21:21 UTC by mattficken) Pull RequestsHistoryAllCommentsChangesGit/SVN commits
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Wed Oct 29 15:00:02 2025 UTC |
<?php // this script executes all 17 php_cli_server*phpt tests using run-tests.php // 500 times and counts up the test failures $php = "c:\php-sdk\php-src-PHP-5.4-31ab04e\Release_TS\php.exe"; // note: script assumes run from within test-pack root $fh = fopen("cli_server_tests.txt", 'w'); fwrite($fh, "Sapi/cli/tests/php_cli_server_001.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_002.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_003.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_004.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_005.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_006.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_007.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_008.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_009.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_010.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_011.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_012.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_013.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_014.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_015.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_016.phpt".PHP_EOL); fwrite($fh, "Sapi/cli/tests/php_cli_server_017.phpt".PHP_EOL); fclose($fh); function count_run_test_failures() { global $php; $lines = array(); exec("set TEST_PHP_EXECUTABLE=$php & $php run-test.php -r cli_server_tests.txt & exit", $lines); // parse $lines for $failure_count = 0; foreach ($lines as $line) { // "Tests failed : 3 ( 17.6%) ( 17.6%)" preg_match("/Tests failed : .+ (\d)+ .+/", $line, $m); if (count($m)==2) { $failure_count = $m[1] + 0; // to int break; } } //sleep(50); return $failure_count; } //var_dump(count_run_test_failures()); //exit; $run_count = 0; $total_failures = 0; while ( $run_count < 500 ) { $failure_count = count_run_test_failures(); $total_failures += $failure_count; if ($failure_count != 0) { echo "$failure_count fails $total_failures total" . PHP_EOL; } else { echo "pass $run_count run" . PHP_EOL; } $run_count++; } $avg_fails = $total_failures / $run_count; echo "Total Failures $total_failures Runs $run_count Avg fails $avg_fails" . PHP_EOL; echo " * 17 individual phpts for each run " . PHP_EOL; ?>