[wp-trac] [WordPress Trac] #38103: Unit tests chokes due to clone being used (PHP 7)

WordPress Trac noreply at wordpress.org
Tue Sep 20 08:06:39 UTC 2016


#38103: Unit tests chokes due to clone being used (PHP 7)
------------------------------+-----------------------------
 Reporter:  limikael          |      Owner:
     Type:  defect (bug)      |     Status:  new
 Priority:  normal            |  Milestone:  Awaiting Review
Component:  Build/Test Tools  |    Version:  trunk
 Severity:  normal            |   Keywords:
  Focuses:                    |
------------------------------+-----------------------------
 Hi,

 This is concerning the unit tests for external plugins, not the unit tests
 for the Wordpress core.

 I'm running unit tests for a plugin, and I'm getting an error in the file
 testcase.php. The file is inside one of the directories installed when
 running this:

 https://github.com/wp-cli/wp-cli/blob/master/templates/install-wp-tests.sh

 The error happens inside the function _backup_hooks, on this line:

 self::$hooks_saved['wp_filter'][ $hook_name ] = clone $hook_object;

 I tried to trace out the $hook_object variable, and it is an array. In
 this case it looks like this:

 Array
 (
     [10] => Array
         (
             [_manually_load_plugin] => Array
                 (
                     [function] => _manually_load_plugin
                     [accepted_args] => 1
                 )

         )

 )

 So, it is an array, and not an object, and I guess that's why clone
 doesn't work. I'm using PHP 7.0.8-0ubuntu0.16.04.2. Last time I ran the
 tests it was on a PHP 5.something version, so I also guess this could have
 something to do with PHP 7 being stricter about objects/arrays when using
 clone.

--
Ticket URL: <https://core.trac.wordpress.org/ticket/38103>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform


More information about the wp-trac mailing list