From e760d94f4bb4d0802e89af0927cecfb479cba024 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Thu, 5 Dec 2019 09:13:57 +0100 Subject: [PATCH] Fix timeout tests After taking a more detailed look at our commonly failing timeout tests... turns out that most of them are useless as written and don't test what they're supposed to. This PR has a couple of changes: * Tests for timeout in while/for/foreach should just have the loop as an infinite loop. Calling into something like busy_wait means that we just end up always testing whatever busy_wait does. * Tests for timeouts in calls need to be based on something like sleep, otherwise we'd have to introduce a loop, and we'd end up testing timeout of the looping structure instead. Using sleep only works on Windows, because that's the only system where sleep counts towards the timeout. As such, many of those tests are now Windows only. * Removed some tests where I don't see a good way to test what they're supposed to test. E.g. how can we test a timeout in eval() specifically? The shutdown function tests are marked as XFAIL, as we are currently missing a timeout check in call_user_function. I believe that's a legitimate issue. Closes GH-4969. --- tests/basic/timeout_config.inc | 10 --------- tests/basic/timeout_variation_0.phpt | 14 ++++++------- tests/basic/timeout_variation_1.phpt | 19 ++++++------------ tests/basic/timeout_variation_10.phpt | 23 ++++++++------------- tests/basic/timeout_variation_2.phpt | 24 +++++++--------------- tests/basic/timeout_variation_3.phpt | 28 -------------------------- tests/basic/timeout_variation_4.phpt | 22 ++++++-------------- tests/basic/timeout_variation_5.phpt | 27 ------------------------- tests/basic/timeout_variation_6.phpt | 29 --------------------------- tests/basic/timeout_variation_7.phpt | 18 ++++++----------- tests/basic/timeout_variation_8.phpt | 16 ++++----------- tests/basic/timeout_variation_9.phpt | 24 ++++++++-------------- 12 files changed, 52 insertions(+), 202 deletions(-) delete mode 100644 tests/basic/timeout_config.inc delete mode 100644 tests/basic/timeout_variation_3.phpt delete mode 100644 tests/basic/timeout_variation_5.phpt delete mode 100644 tests/basic/timeout_variation_6.phpt diff --git a/tests/basic/timeout_config.inc b/tests/basic/timeout_config.inc deleted file mode 100644 index 5cd156f471f..00000000000 --- a/tests/basic/timeout_config.inc +++ /dev/null @@ -1,10 +0,0 @@ - microtime(true)); -} diff --git a/tests/basic/timeout_variation_0.phpt b/tests/basic/timeout_variation_0.phpt index be868392b4b..ac514e1f9a4 100644 --- a/tests/basic/timeout_variation_0.phpt +++ b/tests/basic/timeout_variation_0.phpt @@ -2,20 +2,20 @@ Timeout within while loop --SKIPIF-- --FILE-- never reached here --EXPECTF-- -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_1.phpt b/tests/basic/timeout_variation_1.phpt index 238041955e9..c935d390fa6 100644 --- a/tests/basic/timeout_variation_1.phpt +++ b/tests/basic/timeout_variation_1.phpt @@ -2,25 +2,18 @@ Timeout within function --SKIPIF-- --FILE-- never reached here --EXPECTF-- -call -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_10.phpt b/tests/basic/timeout_variation_10.phpt index 44e1b93135a..b067238db50 100644 --- a/tests/basic/timeout_variation_10.phpt +++ b/tests/basic/timeout_variation_10.phpt @@ -2,28 +2,21 @@ Timeout within shutdown function, variation --SKIPIF-- +--XFAIL-- +Missing timeout check in call_user_function --FILE-- shutdown happens after here --EXPECTF-- shutdown happens after here -call -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_2.phpt b/tests/basic/timeout_variation_2.phpt index 4acf5cd219a..81b1b1b4799 100644 --- a/tests/basic/timeout_variation_2.phpt +++ b/tests/basic/timeout_variation_2.phpt @@ -1,29 +1,19 @@ --TEST-- -Timeout within array_walk +Timeout within array_map --SKIPIF-- --FILE-- 1, 2 => 1, 3 => 1, 4 => 1, 5 => 1, 6 => 1, 7 => 1); -array_walk($a, "cb", "junk"); - -$diff = microtime(true) - $startTime; -echo "time spent waiting: $diff\n"; ?> never reached here --EXPECTF-- -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_3.phpt b/tests/basic/timeout_variation_3.phpt deleted file mode 100644 index 317d1b44ab5..00000000000 --- a/tests/basic/timeout_variation_3.phpt +++ /dev/null @@ -1,28 +0,0 @@ ---TEST-- -Timeout within eval ---SKIPIF-- - ---FILE-- - -never reached here ---EXPECTF-- -call - -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_4.phpt b/tests/basic/timeout_variation_4.phpt index 98f4d6ca8e4..380a740a715 100644 --- a/tests/basic/timeout_variation_4.phpt +++ b/tests/basic/timeout_variation_4.phpt @@ -2,28 +2,18 @@ Timeout within call_user_func --SKIPIF-- --FILE-- never reached here --EXPECTF-- -call - -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_5.phpt b/tests/basic/timeout_variation_5.phpt deleted file mode 100644 index 6915623c6b5..00000000000 --- a/tests/basic/timeout_variation_5.phpt +++ /dev/null @@ -1,27 +0,0 @@ ---TEST-- -Timeout within function containing exception ---SKIPIF-- - ---FILE-- - -never reached here ---EXPECTF-- -call -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_6.phpt b/tests/basic/timeout_variation_6.phpt deleted file mode 100644 index 7b0a93d38e8..00000000000 --- a/tests/basic/timeout_variation_6.phpt +++ /dev/null @@ -1,29 +0,0 @@ ---TEST-- -Timeout within function trowing exception before timeout reached ---SKIPIF-- - ---FILE-- - -never reached here ---EXPECTF-- -call -Fatal error: Uncaught Exception: exception before timeout in %s:%d -Stack trace: -#0 %s(%d): f(%d) -#1 {main} - thrown in %s on line %d diff --git a/tests/basic/timeout_variation_7.phpt b/tests/basic/timeout_variation_7.phpt index 849ac55e0d9..0401240ba95 100644 --- a/tests/basic/timeout_variation_7.phpt +++ b/tests/basic/timeout_variation_7.phpt @@ -2,25 +2,19 @@ Timeout within for loop --SKIPIF-- --FILE-- never reached here --EXPECTF-- -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_8.phpt b/tests/basic/timeout_variation_8.phpt index 51022250f0f..16e2567e662 100644 --- a/tests/basic/timeout_variation_8.phpt +++ b/tests/basic/timeout_variation_8.phpt @@ -2,25 +2,17 @@ Timeout within foreach loop --SKIPIF-- --FILE-- never reached here --EXPECTF-- -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d diff --git a/tests/basic/timeout_variation_9.phpt b/tests/basic/timeout_variation_9.phpt index ffe4553e49d..e59ae242dc8 100644 --- a/tests/basic/timeout_variation_9.phpt +++ b/tests/basic/timeout_variation_9.phpt @@ -2,28 +2,20 @@ Timeout within shutdown function --SKIPIF-- +--XFAIL-- +Missing timeout check in call_user_function --FILE-- never reached here --EXPECTF-- -call -Fatal error: Maximum execution time of 3 seconds exceeded in %s on line %d +Fatal error: Maximum execution time of 1 second exceeded in %s on line %d