]> granicus.if.org Git - php/commitdiff
Disable opcache optimizations during some observer tests
authorNikita Popov <nikita.ppv@gmail.com>
Tue, 19 Jan 2021 08:59:26 +0000 (09:59 +0100)
committerNikita Popov <nikita.ppv@gmail.com>
Tue, 19 Jan 2021 09:02:08 +0000 (10:02 +0100)
Opcache inlines functions that only return a constant. Disable
optimizations to prevent differences in tests where such functions
are used (or rewrite the test to not depend on it).

ext/zend_test/tests/observer_retval_01.phpt
ext/zend_test/tests/observer_retval_by_ref_03.phpt
ext/zend_test/tests/observer_shutdown_01.phpt
ext/zend_test/tests/observer_shutdown_02.phpt

index d58cac807d268eb8ef633f7d5f4008b4c401f5e7..844d9037f34b0e9fe7fb64f362ab1b32f28baaf2 100644 (file)
@@ -6,6 +6,7 @@ Observer: Retvals are observable that are: IS_CONST
 zend_test.observer.enabled=1
 zend_test.observer.observe_all=1
 zend_test.observer.show_return_value=1
+opcache.optimization_level=0
 --FILE--
 <?php
 function foo() {
index 50fe23add1ff978f76c659ca4c3f9ec735ba6a6f..f09174fc22e0f02623c71531d05b2282276db0cd 100644 (file)
@@ -6,6 +6,7 @@ Observer: Retvals by reference are observable that are: IS_VAR, ZEND_RETURNS_FUN
 zend_test.observer.enabled=1
 zend_test.observer.observe_all=1
 zend_test.observer.show_return_value=1
+opcache.optimization_level=0
 --FILE--
 <?php
 function getMessage() {
index 16ea9cef0e22743112d1821bfa685cddace1f375..04784cd17527379b07545b5b04851af6f6ee8c51 100644 (file)
@@ -12,31 +12,31 @@ register_shutdown_function(function () {
     echo 'Shutdown: ' . foo() . PHP_EOL;
 });
 
-function bar() {
-    return 42;
+function bar($arg) {
+    return $arg;
 }
 
 function foo() {
-    bar();
-    return bar();
+    bar(41);
+    return bar(42);
 }
 
-echo 'Done: ' . bar() . PHP_EOL;
+echo 'Done: ' . bar(40) . PHP_EOL;
 ?>
 --EXPECTF--
 <!-- init '%s/observer_shutdown_%d.php' -->
 <file '%s/observer_shutdown_%d.php'>
   <!-- init bar() -->
   <bar>
-  </bar:42>
-Done: 42
+  </bar:40>
+Done: 40
 </file '%s/observer_shutdown_%d.php'>
 <!-- init {closure}() -->
 <{closure}>
   <!-- init foo() -->
   <foo>
     <bar>
-    </bar:42>
+    </bar:41>
     <bar>
     </bar:42>
   </foo:42>
index ad6c90658565625633adef4f2ed3138f6eae4b3b..b666a92e15088ee84217ab635e3b467e325929fb 100644 (file)
@@ -16,33 +16,33 @@ class MyClass
     }
 }
 
-function bar() {
-    return 42;
+function bar($arg) {
+    return $arg;
 }
 
 function foo() {
-    bar();
-    return bar();
+    bar(41);
+    return bar(42);
 }
 
 $mc = new MyClass();
 
-echo 'Done: ' . bar() . PHP_EOL;
+echo 'Done: ' . bar(40) . PHP_EOL;
 ?>
 --EXPECTF--
 <!-- init '%s/observer_shutdown_%d.php' -->
 <file '%s/observer_shutdown_%d.php'>
   <!-- init bar() -->
   <bar>
-  </bar:42>
-Done: 42
+  </bar:40>
+Done: 40
 </file '%s/observer_shutdown_%d.php'>
 <!-- init MyClass::__destruct() -->
 <MyClass::__destruct>
   <!-- init foo() -->
   <foo>
     <bar>
-    </bar:42>
+    </bar:41>
     <bar>
     </bar:42>
   </foo:42>