Roave / no-leaks

:potable_water: PHPUnit Plugin for detecting Memory Leaks in code and tests
MIT License
496 stars 19 forks source link

Never end #22

Open fezfez opened 4 years ago

fezfez commented 4 years ago

Hello,

The tests suite never end with ./vendor/bin/roave-no-leaks, I have to stop it by hand, so I don't have any results.

Tested with phpunit 8.0., phpunit 8.1. phpunit 8.2., phpunit 8.3.

PHPUnit 8.0.6 by Sebastian Bergmann and contributors.

..................................FF.........................   61 / 2251 (  2%)
.....................................................SS......  122 / 2251 (  5%)
.............................................................  183 / 2251 (  8%)
.............................................................  244 / 2251 ( 10%)
...................EE........................................  305 / 2251 ( 13%)
.......F.....................................................  366 / 2251 ( 16%)
.....................EE.F.EEE..EE.FFEEEE..E...E..F.EE..F.F.E.  427 / 2251 ( 18%)
E.EE.E........EEEEEE..EEE.E.E.....E..I.I.....................  488 / 2251 ( 21%)
.............................................................  549 / 2251 ( 24%)
.EEEEEEE...F.EE..............................................  610 / 2251 ( 27%)
.....III.I...........................................EEEEEEEE  671 / 2251 ( 29%)
E.........................................................FF.  732 / 2251 ( 32%)
....................................E........................  793 / 2251 ( 35%)
.............................................................  854 / 2251 ( 37%)
.............................................................  915 / 2251 ( 40%)
.............................................................  976 / 2251 ( 43%)
............................F.EEE............................ 1037 / 2251 ( 46%)
............................FE.EE.E.EE...E..EEE..EE..E..EE..E 1098 / 2251 ( 48%)
..E..EE..EEEE..E..EE..EE..EE..E..E....EE..EEEEE..E..EEE..EEEE 1159 / 2251 ( 51%)
..E...E....E..EE..EE..E..EE..E..E..EEEEEEE..EE.........E..... 1220 / 2251 ( 54%)
...........SS................................................ 1281 / 2251 ( 56%)
..........E...E..............E...E...E...E............E...... 1342 / 2251 ( 59%)
..EEEE.............E..EE..EEEE..EEEEE..EEEE..EEEEE..EE..E..EE 1403 / 2251 ( 62%)
..EE..EE..EEEE..E..E..EE.........EEEEE....................... 1464 / 2251 ( 65%)
EEEE..EEE..E..EEE..E..E..EE..EE..E..EE..E..E..EE..EEEEE..EE.. 1525 / 2251 ( 67%)
..EE..EEEEEEEEEEEEEEEEEEE....EE..EE..EEEE....E..EEEE..EE..EEE 1586 / 2251 ( 70%)
EE..EEE..EEEEEE..EEE..EEE..EEEE..EE..E..E..E..EE..E..EEEEE..E 1647 / 2251 ( 73%)
EEEEEE..EEEE..E..E........EE..E..E..........EE....E..E..EE..E 1708 / 2251 ( 75%)
EEE..E..E..EE..EE..EEEE..E..EE..EE..EEEEEEEE..EEE..E..E..EE.. 1769 / 2251 ( 78%)
EEEEEE..EE..EE..E....FFEEEEEEE..F..EEEE.....E..EEEEEEEEE..E.. 1830 / 2251 ( 81%)
E..EEE..EEE..EEEE..EEEEE..EEEE..E..EEEEEEEEEEE..EE..EE..EEEEE 1891 / 2251 ( 84%)
..E..EE......EE..EE..EEEE..EEEE..E..EEE..EEEEEEEEE....EEEEE.. 1952 / 2251 ( 86%)
EE..EEEE..EEE..E..EEEEE..E..E..EE......................E..EEE 2013 / 2251 ( 89%)
..EEE..EEE..EEEE..EEEE..EEEEE....EEEEE....EEE..EE..EEE..EE..E 2074 / 2251 ( 92%)
....E....EEEE..E.....EE..EEEEEE..EEEEEE....EEEEE..EE.....EE.. 2135 / 2251 ( 94%)
..EEE..EEEE..EE..EEE..EEEEE..EE..EEEEE.....EE.....EEE..EEEEE. 2196 / 2251 ( 97%)
....EEEEE.....EEE..E..E..EEE..E....EEE.................       2251 / 2251 (100%).EE..E 2257 / 2251 (100%)
....EEE....EE..E...........................................E. 2318 / 2251 (102%)
..E......E...E..E..E.......EE..EE..E..EE..E..EEEEEE..E..EE... 2379 / 2251 (105%)
PHPUnit 8.1.6 by Sebastian Bergmann and contributors.

..................................FF.........................   61 / 2251 (  2%)
.....................................................SS......  122 / 2251 (  5%)
.............................................................  183 / 2251 (  8%)
.............................................................  244 / 2251 ( 10%)
...................EE........................................  305 / 2251 ( 13%)
.......F.....................................................  366 / 2251 ( 16%)
.....................EE.F.EEE..EE.FFEEEE..E...E..F.EE..F.F.E.  427 / 2251 ( 18%)
E.EE.E........EEEEEE..EEE.E.E.....E..I.I.....................  488 / 2251 ( 21%)
.............................................................  549 / 2251 ( 24%)
.EEEEEEE...F.EE..............................................  610 / 2251 ( 27%)
.....III.I...........................................EEEEEEEE  671 / 2251 ( 29%)
E.........................................................FF.  732 / 2251 ( 32%)
....................................E........................  793 / 2251 ( 35%)
.............................................................  854 / 2251 ( 37%)
.............................................................  915 / 2251 ( 40%)
.............................................................  976 / 2251 ( 43%)
............................F.EEE............................ 1037 / 2251 ( 46%)
............................FE.EE.E.EE...E..EEE..EE..E..EE..E 1098 / 2251 ( 48%)
..E..EE..EEEE..E..EE..EE..EE..E..E....EE..EEEEE..E..EEE..EEEE 1159 / 2251 ( 51%)
..E...E....E..EE..EE..E..EE..E..E..EEEEEEE..EE.........E..... 1220 / 2251 ( 54%)
...........SS................................................ 1281 / 2251 ( 56%)
..........E...E..............E...E...E...E............E...... 1342 / 2251 ( 59%)
..EEEE.............E..EE..EEEE..EEEEE..EEEE..EEEEE..EE..E..EE 1403 / 2251 ( 62%)
..EE..EE..EEEE..E..E..EE.........EEEEE....................... 1464 / 2251 ( 65%)
EEEE..EEE..E..EEE..E..E..EE..EE..E..EE..E..E..EE..EEEEE..EE.. 1525 / 2251 ( 67%)
..EE..EEEEEEEEEEEEEEEEEEE....EE..EE..EEEE....E..EEEE..EE..EEE 1586 / 2251 ( 70%)
EE..EEE..EEEEEE..EEE..EEE..EEEE..EE..E..E..E..EE..E..EEEEE..E 1647 / 2251 ( 73%)
EEEEEE..EEEE..E..E........EE..E..E..........EE....E..E..EE..E 1708 / 2251 ( 75%)
EEE..E..E..EE..EE..EEEE..E..EE..EE..EEEEEEEE..EEE..E..E..EE.. 1769 / 2251 ( 78%)
EEEEEE..EE..EE..E....FFEEEEEEE..F..EEEE.....E..EEEEEEEEE..E.. 1830 / 2251 ( 81%)
E..EEE..EEE..EEEE..EEEEE..EEEE..E..EEEEEEEEEEE..EE..EE..EEEEE 1891 / 2251 ( 84%)
..E..EE......EE..EE..EEEE..EEEE..E..EEE..EEEEEEEEE....EEEEE.. 1952 / 2251 ( 86%)
EE..EEEE..EEE..E..EEEEE..E..E..EE......................E..EEE 2013 / 2251 ( 89%)
..EEE..EEE..EEEE..EEEE..EEEEE....EEEEE....EEE..EE..EEE..EE..E 2074 / 2251 ( 92%)
....E....EEEE..E.....EE..EEEEEE..EEEEEE....EEEEE..EE.....EE.. 2135 / 2251 ( 94%)
..EEE..EEEE..EE..EEE..EEEEE..EE..EEEEE.....EE.....EEE..EEEEE. 2196 / 2251 ( 97%)
....EEEEE.....EEE..E..E..EEE..E....EEE.................       2251 / 2251 (100%).EE..E 2257 / 2251 (100%)
....EEE....EE..E...........................................E. 2318 / 2251 (102%)
..E......E...E..E..E.......EE..EE..E..EE..E..EEEEEE..E..EE... 2379 / 2251 (105%)
.E..EEE....EE..EEEEE..EE..EE....E..EE..EE..EE..E..E..E..E..EE 2440 / 2251 (108%)
PHPUnit 8.2.5 by Sebastian Bergmann and contributors.

..................................FF.........................   61 / 2251 (  2%)
.....................................................SS......  122 / 2251 (  5%)
.............................................................  183 / 2251 (  8%)
.............................................................  244 / 2251 ( 10%)
...................EE........................................  305 / 2251 ( 13%)
.......F.....................................................  366 / 2251 ( 16%)
.....................EE.F.EEE..EE.FFEEEE..E...E..F.EE..F.F.E.  427 / 2251 ( 18%)
E.EE.E........EEEEEE..EEE.E.E.....E..I.I.....................  488 / 2251 ( 21%)
.............................................................  549 / 2251 ( 24%)
.EEEEEEE...F.EE..............................................  610 / 2251 ( 27%)
.....III.I...........................................EEEEEEEE  671 / 2251 ( 29%)
E.........................................................FF.  732 / 2251 ( 32%)
....................................E........................  793 / 2251 ( 35%)
.............................................................  854 / 2251 ( 37%)
.............................................................  915 / 2251 ( 40%)
.............................................................  976 / 2251 ( 43%)
............................F.EEE............................ 1037 / 2251 ( 46%)
............................FE.EE.E.EE...E..EEE..EE..E..EE..E 1098 / 2251 ( 48%)
..E..EE..EEEE..E..EE..EE..EE..E..E....EE..EEEEE..E..EEE..EEEE 1159 / 2251 ( 51%)
..E...E....E..EE..EE..E..EE..E..E..EEEEEEE..EE.........E..... 1220 / 2251 ( 54%)
...........SS................................................ 1281 / 2251 ( 56%)
..........E...E..............E...E...E...E............E...... 1342 / 2251 ( 59%)
..EEEE.............E..EE..EEEE..EEEEE..EEEE..EEEEE..EE..E..EE 1403 / 2251 ( 62%)
..EE..EE..EEEE..E..E..EE.........EEEEE....................... 1464 / 2251 ( 65%)
EEEE..EEE..E..EEE..E..E..EE..EE..E..EE..E..E..EE..EEEEE..EE.. 1525 / 2251 ( 67%)
..EE..EEEEEEEEEEEEEEEEEEE....EE..EE..EEEE....E..EEEE..EE..EEE 1586 / 2251 ( 70%)
EE..EEE..EEEEEE..EEE..EEE..EEEE..EE..E..E..E..EE..E..EEEEE..E 1647 / 2251 ( 73%)
EEEEEE..EEEE..E..E........EE..E..E..........EE....E..E..EE..E 1708 / 2251 ( 75%)
EEE..E..E..EE..EE..EEEE..E..EE..EE..EEEEEEEE..EEE..E..E..EE.. 1769 / 2251 ( 78%)
EEEEEE..EE..EE..E....FFEEEEEEE..F..EEEE.....E..EEEEEEEEE..E.. 1830 / 2251 ( 81%)
E..EEE..EEE..EEEE..EEEEE..EEEE..E..EEEEEEEEEEE..EE..EE..EEEEE 1891 / 2251 ( 84%)
..E..EE......EE..EE..EEEE..EEEE..E..EEE..EEEEEEEEE....EEEEE.. 1952 / 2251 ( 86%)
EE..EEEE..EEE..E..EEEEE..E..E..EE......................E..EEE 2013 / 2251 ( 89%)
..EEE..EEE..EEEE..EEEE..EEEEE....EEEEE....EEE..EE..EEE..EE..E 2074 / 2251 ( 92%)
....E....EEEE..E.....EE..EEEEEE..EEEEEE....EEEEE..EE.....EE.. 2135 / 2251 ( 94%)
..EEE..EEEE..EE..EEE..EEEEE..EE..EEEEE.....EE.....EEE..EEEEE. 2196 / 2251 ( 97%)
....EEEEE.....EEE..E..E..EEE..E....EEE.................       2251 / 2251 (100%).EE..E 2257 / 2251 (100%)
....EEE....EE..E...........................................E. 2318 / 2251 (102%)
..E......E...E..E..E.......EE..EE..E..EE..E..EEEEEE..E..EE... 2379 / 2251 (105%)
.E..EEE....EE..EEEEE..EE..EE....E..EE..EE..EE..E..E..E..E..EE 2440 / 2251 (108%)
E....EE..EE..EE..E.......EE..EE..E..EE......E...EEE...EE...E. 2501 / 2251 (111%)
PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

..................................FF.........................   61 / 2251 (  2%)
.....................................................SS......  122 / 2251 (  5%)
.............................................................  183 / 2251 (  8%)
.............................................................  244 / 2251 ( 10%)
...................EE................................FFFF....  305 / 2251 ( 13%)
.......F.F.FF.FF.F.FF.F.F.FF.EFFFF.FF..FF....................  366 / 2251 ( 16%)
................FFFF.EE.F.EEE..EE.FFEEEE..E...E..F.EE..F.F.E.  427 / 2251 ( 18%)
E.EE.E........EEEEEE..EEE.E.E.....E..I.I.....................  488 / 2251 ( 21%)
.............................................................  549 / 2251 ( 24%)
.EEEEEEE...F.EE..............................................  610 / 2251 ( 27%)
.....III.I...........................................EEEEEEEE  671 / 2251 ( 29%)
E.........................................................FF.  732 / 2251 ( 32%)
....................................E........................  793 / 2251 ( 35%)
.............................................................  854 / 2251 ( 37%)
.............................................................  915 / 2251 ( 40%)
.............................................................  976 / 2251 ( 43%)
............................F.EEE............................ 1037 / 2251 ( 46%)
............................FE.EE.E.EE...E..EEE..EE..E..EE..E 1098 / 2251 ( 48%)
..E..EE..EEEE..E..EE..EE..EE..E..E....EE..EEEEE..E..EEE..EEEE 1159 / 2251 ( 51%)
..E...E....E..EE..EE..E..EE..E..E..EEEEEEE..EE.........E..... 1220 / 2251 ( 54%)
...........SS................................................ 1281 / 2251 ( 56%)
..........E...E..............E...E...E...E............E...... 1342 / 2251 ( 59%)
..EEEE.............E..EE..EEEE..EEEEE..EEEE..EEEEE..EE..E..EE 1403 / 2251 ( 62%)
..EE..EE..EEEE..E..E..EE.........EEEEE....................... 1464 / 2251 ( 65%)
EEEE..EEE..E..EEE..E..E..EE..EE..E..EE..E..E..EE..EEEEE..EE.. 1525 / 2251 ( 67%)
..EE..EEEEEEEEEEEEEEEEEEE....EE..EE..EEEE....E..EEEE..EE..EEE 1586 / 2251 ( 70%)
EE..EEE..EEEEEE..EEE..EEE..EEEE..EE..E..E..E..EE..E..EEEEE..E 1647 / 2251 ( 73%)
EEEEEE..EEEE..E..E........EE..E..E..........EE....E..E..EE..E 1708 / 2251 ( 75%)
EEE..E..E..EE..EE..EEEE..E..EE..EE..EEEEEEEE..EEE..E..E..EE.. 1769 / 2251 ( 78%)
EEEEEE..EE..EE..E....FFEEEEEEE..F..EEEE.....E..EEEEEEEEE..E.. 1830 / 2251 ( 81%)
E..EEE..EEE..EEEE..EEEEE..EEEE..E..EEEEEEEEEEE..EE..EE..EEEEE 1891 / 2251 ( 84%)
..E..EE......EE..EE..EEEE..EEEE..E..EEE..EEEEEEEEE....EEEEE.. 1952 / 2251 ( 86%)
EE..EEEE..EEE..E..EEEEE..E..E..EE......................E..EEE 2013 / 2251 ( 89%)
..EEE..EEE..EEEE..EEEE..EEEEE....EEEEE....EEE..EE..EEE..EE..E 2074 / 2251 ( 92%)
....E....EEEE..E.....EE..EEEEEE..EEEEEE....EEEEE..EE.....EE.. 2135 / 2251 ( 94%)
..EEE..EEEE..EE..EEE..EEEEE..EE..EEEEE.....EE.....EEE..EEEEE. 2196 / 2251 ( 97%)
....EEEEE.....EEE..E..E..EEE..E....EEE.................       2251 / 2251 (100%).EE..E 2257 / 2251 (100%)

Tested with php version

php -v
PHP 7.3.4 (cli) (built: Apr  6 2019 03:07:22) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.4, Copyright (c) 1998-2018 Zend Technologies

and

php -v
PHP 7.4.0RC1 (cli) (built: Sep 18 2019 21:46:31) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0-dev, Copyright (c) Zend Technologies

roave/no-leaks version 1.1.1

Do you have an idea how to debug this ?

Thanks in advance !

fezfez commented 4 years ago

I have tested with roave/no-leaks 1.1.1, roave/no-leaks 1.1.0, roave/no-leaks 1.0.0.

The version 1.0.0 does not have this bug

Ocramius commented 4 years ago

Do you by chance have other plugins installed?

fezfez commented 4 years ago

No plugins for phpunit, here is my composer show, alose it work when i filter on smaller part of unit test (70 3 unit test executed instead of 700 3)

adoy/fastcgi-client                            1.0.0    Client for communication with a FastCGI (FCGI) application using the FastCGI protocol.
azuyalabs/yasumi                               1.8.1    Yasumi is an easy PHP Library for calculating national holidays.
beberlei/doctrineextensions                    v1.2.3   A set of extensions to Doctrine 2 that add support for additional query functions available in MySQL and Oracle.
composer/ca-bundle                             1.2.4    Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.
composer/composer                              1.9.0    Composer helps you declare, manage and install dependencies of PHP projects. It ensures you have the right stack everywhere.
composer/semver                                1.5.0    Semver library that offers utilities, version constraint parsing and validation.
composer/spdx-licenses                         1.5.2    SPDX licenses list and validation library.
composer/xdebug-handler                        1.3.3    Restarts a process without xdebug.
container-interop/container-interop            1.2.0    Promoting the interoperability of container objects (DIC, SL, etc.)
dealerdirect/phpcodesniffer-composer-installer v0.5.0   PHP_CodeSniffer Standards Composer Installer Plugin
doctrine/annotations                           v1.8.0   Docblock Annotations Parser
doctrine/cache                                 v1.8.0   Caching library offering an object-oriented API for many cache backends
doctrine/coding-standard                       6.0.0    The Doctrine Coding Standard is a set of PHPCS rules applied to all Doctrine projects.
doctrine/collections                           v1.6.2   PHP Doctrine Collections library that adds additional functionality on top of PHP arrays.
doctrine/common                                v2.11.0  PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflectio...
doctrine/data-fixtures                         v1.3.2   Data Fixtures for all Doctrine Object Managers
doctrine/dbal                                  v2.9.2   Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.
doctrine/doctrine-module                       2.1.9    Zend Framework Module that provides Doctrine basic functionality required for ORM and ODM modules
doctrine/doctrine-orm-module                   2.1.5    Zend Framework Module that provides Doctrine ORM functionality
doctrine/event-manager                         v1.0.0   Doctrine Event Manager component
doctrine/inflector                             v1.3.0   Common String Manipulations with regard to casing and singular/plural rules.
doctrine/instantiator                          1.2.0    A small, lightweight utility to instantiate objects in PHP without invoking their constructors
doctrine/lexer                                 1.1.0    PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.
doctrine/orm                                   v2.6.4   Object-Relational-Mapper for PHP
doctrine/persistence                           1.1.1    The Doctrine Persistence project is a set of shared interfaces and functionality that the different Doctrine object mappers share.
doctrine/reflection                            v1.0.0   Doctrine Reflection component
egulias/email-validator                        2.1.11   A library for validating emails against several RFCs
firebase/php-jwt                               v5.0.0   A simple library to encode and decode JSON Web Tokens (JWT) in PHP. Should conform to the current spec.
google/apiclient                               v2.4.0   Client library for Google APIs
google/apiclient-services                      v0.116   Client library for Google APIs
google/auth                                    v1.6.0   Google Auth Library for PHP
gordalina/cachetool                            4.0.1    Manage your opcode & apc through the cli
guzzlehttp/guzzle                              6.3.3    Guzzle is a PHP HTTP client library
guzzlehttp/promises                            v1.3.1   Guzzle promises library
guzzlehttp/psr7                                1.6.1    PSR-7 message implementation that also provides common utility methods
hellogerard/jobby                              v3.4.6   Manage all your cron jobs without modifying crontab. Handles locking, logging, error emails, and more.
jean85/pretty-package-versions                 1.2      A wrapper for ocramius/package-versions to get pretty versions strings
jeremeamia/superclosure                        2.4.0    Serialize Closure objects, including their context and binding
jetbrains/phpstorm-stubs                       v2019.1  PHP runtime & extensions header files for PhpStorm
justinrainbow/json-schema                      5.2.8    A library to validate a json schema.
markbaker/complex                              1.4.7    PHP Class for working with complex numbers
markbaker/matrix                               1.1.4    PHP Class for working with matrices
monolog/monolog                                1.25.1   Sends your logs to files, sockets, inboxes, databases and various web services
mtdowling/cron-expression                      v1.2.1   CRON for PHP: Calculate the next or previous run date and determine if a CRON expression is due
mustache/mustache                              v2.12.0  A Mustache implementation in PHP.
myclabs/deep-copy                              1.9.3    Create deep copies (clones) of your objects
nette/bootstrap                                v3.0.0   ๐Ÿ…ฑ Nette Bootstrap: the simple way to configure and bootstrap your Nette application.
nette/di                                       v3.0.1   ๐Ÿ’Ž Nette Dependency Injection Container: Flexible, compiled and full-featured DIC with perfectly usable autowiring and support for all new PH...
nette/finder                                   v2.5.1   ๐Ÿ” Nette Finder: find files and directories with an intuitive API.
nette/neon                                     v3.0.0   ? Nette NEON: encodes and decodes NEON file format.
nette/php-generator                            v3.2.3   ๐Ÿ˜ Nette PHP Generator: generates neat PHP code for you. Supports new PHP 7.3 features.
nette/robot-loader                             v3.2.0   ? Nette RobotLoader: high performance and comfortable autoloader that will search and autoload classes within your application.
nette/schema                                   v1.0.0   ๐Ÿ“ Nette Schema: validating data structures against a given Schema.
nette/utils                                    v3.0.1   ๐Ÿ›  Nette Utils: lightweight utilities for string & array manipulation, image handling, safe JSON encoding/decoding, validation, slug or stron...
nikic/php-parser                               v4.2.4   A PHP parser written in PHP
ocramius/package-versions                      1.5.1    Composer plugin that provides efficient querying for installed package versions (no runtime IO)
ocramius/proxy-manager                         2.2.3    A library providing utilities to generate, instantiate and generally operate with Object Proxies
paragonie/random_compat                        v9.99.99 PHP 5.x polyfill for random_bytes() and random_int() from PHP 7
phar-io/manifest                               1.0.3    Component for reading phar.io manifest information from a PHP Archive (PHAR)
phar-io/version                                2.0.1    Library for handling version information and constraints
phpdocumentor/reflection-common                1.0.1    Common reflection classes used by phpdocumentor to reflect the code structure
phpdocumentor/reflection-docblock              4.3.2    With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.
phpdocumentor/type-resolver                    0.4.0   
phpoffice/phpspreadsheet                       1.9.0    PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine
phpseclib/phpseclib                            2.0.23   PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.
phpspec/prophecy                               1.8.1    Highly opinionated mocking framework for PHP 5.3+
phpstan/phpdoc-parser                          0.3.5    PHPDoc parser with support for nullable, intersection and generic types
phpstan/phpstan                                0.11.16  PHPStan - PHP Static Analysis Tool
phpstan/phpstan-deprecation-rules              0.11.2   PHPStan rules for detecting usage of deprecated classes, methods, properties, constants and traits.
phpstan/phpstan-doctrine                       0.11.6   Doctrine extensions for PHPStan
phpstan/phpstan-phpunit                        0.11.2   PHPUnit extensions and rules for PHPStan
phpstan/phpstan-strict-rules                   0.11.1   Extra strict and opinionated rules for PHPStan
phpunit/php-code-coverage                      7.0.8    Library that provides collection, processing, and rendering functionality for PHP code coverage information.
phpunit/php-file-iterator                      2.0.2    FilterIterator implementation that filters files based on a list of suffixes.
phpunit/php-text-template                      1.2.1    Simple template engine.
phpunit/php-timer                              2.1.2    Utility class for timing
phpunit/php-token-stream                       3.1.1    Wrapper around PHP's tokenizer extension.
phpunit/phpunit                                8.3.5    The PHP Unit Testing framework.
psr/cache                                      1.0.1    Common interface for caching libraries
psr/container                                  1.0.0    Common Container Interface (PHP FIG PSR-11)
psr/http-message                               1.0.1    Common interface for HTTP messages
psr/log                                        1.1.0    Common interface for logging libraries
psr/simple-cache                               1.0.1    Common interfaces for simple caching
ralouphie/getallheaders                        3.0.3    A polyfill for getallheaders.
ramsey/uuid                                    3.8.0    Formerly rhumsaa/uuid. A PHP 5.4+ library for generating RFC 4122 version 1, 3, 4, and 5 universally unique identifiers (UUID).
ramsey/uuid-doctrine                           1.5.0    Allow the use of a ramsey/uuid UUID as Doctrine field type.
roave/better-reflection                        3.5.0    Better Reflection - an improved code reflection API
roave/no-leaks                                 1.1.1   
roave/signature                                1.0.0    Sign and verify stuff
sebastian/code-unit-reverse-lookup             1.0.1    Looks up which function or method a line of code belongs to
sebastian/comparator                           3.0.2    Provides the functionality to compare PHP values for equality
sebastian/diff                                 3.0.2    Diff implementation
sebastian/environment                          4.2.2    Provides functionality to handle HHVM/PHP environments
sebastian/exporter                             3.1.2    Provides the functionality to export PHP variables for visualization
sebastian/global-state                         3.0.0    Snapshotting of global state
sebastian/object-enumerator                    3.0.3    Traverses array structures and object graphs to enumerate all referenced objects
sebastian/object-reflector                     1.1.1    Allows reflection of object attributes, including inherited and non-public ones
sebastian/recursion-context                    3.0.0    Provides functionality to recursively process PHP variables
sebastian/resource-operations                  2.0.1    Provides a list of PHP built-in functions that operate on resources
sebastian/type                                 1.1.3    Collection of value objects that represent the types of the PHP type system
sebastian/version                              2.0.1    Library that helps with managing the version number of Git-hosted PHP projects
seld/jsonlint                                  1.7.1    JSON Linter
seld/phar-utils                                1.0.1    PHAR file format utilities, for when PHP phars you up
slevomat/coding-standard                       5.0.4    Slevomat Coding Standard for PHP_CodeSniffer complements Consistence Coding Standard by providing sniffs with additional checks.
squizlabs/php_codesniffer                      3.5.0    PHP_CodeSniffer tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.
swiftmailer/swiftmailer                        v6.2.1   Swiftmailer, free feature-rich PHP mailer
symfony/console                                v4.3.4   Symfony Console Component
symfony/dependency-injection                   v4.3.4   Symfony DependencyInjection Component
symfony/dotenv                                 v4.3.4   Registers environment variables from a .env file
symfony/filesystem                             v4.3.4   Symfony Filesystem Component
symfony/finder                                 v4.3.4   Symfony Finder Component
symfony/polyfill-ctype                         v1.12.0  Symfony polyfill for ctype functions
symfony/polyfill-iconv                         v1.12.0  Symfony polyfill for the Iconv extension
symfony/polyfill-intl-idn                      v1.12.0  Symfony polyfill for intl's idn_to_ascii and idn_to_utf8 functions
symfony/polyfill-mbstring                      v1.12.0  Symfony polyfill for the Mbstring extension
symfony/polyfill-php56                         v1.12.0  Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions
symfony/polyfill-php72                         v1.12.0  Symfony polyfill backporting some PHP 7.2+ features to lower PHP versions
symfony/polyfill-php73                         v1.12.0  Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions
symfony/polyfill-util                          v1.12.0  Symfony utilities for portability of PHP codes
symfony/process                                v4.3.4   Symfony Process Component
symfony/service-contracts                      v1.1.6   Generic abstractions related to writing services
symfony/yaml                                   v4.3.4   Symfony Yaml Component
tecnickcom/tcpdf                               6.2.26   TCPDF is a PHP class for generating PDF documents and barcodes.
thecodingmachine/phpstan-strict-rules          v0.11.2  A set of additional rules for PHPStan based on best practices followed at TheCodingMachine
thecodingmachine/safe                          v0.1.16  PHP core functions that throw exceptions instead of returning FALSE on error
theseer/tokenizer                              1.1.3    A small library for converting tokenized PHP source code into XML and potentially other formats
true/punycode                                  v2.1.1   A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)
webmozart/assert                               1.5.0    Assertions to validate method input/output with nice error messages.
zendframework/zend-authentication              2.7.0    provides an API for authentication and includes concrete authentication adapters for common use case scenarios
zendframework/zend-cache                       2.9.0    Caching implementation with a variety of storage options, as well as codified caching strategies for callbacks, classes, and output
zendframework/zend-code                        3.3.2    Extensions to the PHP Reflection API, static code scanning, and code generation
zendframework/zend-config                      3.3.0    provides a nested object property based user interface for accessing this configuration data within application code
zendframework/zend-console                     2.8.0    Build console applications using getopt syntax or routing, complete with prompts
zendframework/zend-debug                       2.6.0    Safely dump debug information to HTML
zendframework/zend-developer-tools             1.2.3    Module for developer and debug tools for use with zend-mvc applications.
zendframework/zend-dom                         2.7.2    provides tools for working with DOM documents and structures
zendframework/zend-escaper                     2.6.1    Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs
zendframework/zend-eventmanager                3.2.1    Trigger and listen to events within a PHP application
zendframework/zend-filter                      2.9.2    Programmatically filter and normalize data and files
zendframework/zend-form                        2.14.1   Validate and display simple and complex forms, casting forms to business objects and vice versa
zendframework/zend-http                        2.10.0   Provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests
zendframework/zend-hydrator                    2.4.1    Serialize objects to arrays, and vice versa
zendframework/zend-i18n                        2.9.2    Provide translations for your application, and filter and validate internationalized values
zendframework/zend-i18n-resources              2.6.1    Provides validator translations for zend-i18n's Translator
zendframework/zend-inputfilter                 2.10.1   Normalize and validate input sets from the web, APIs, the CLI, and more, including files
zendframework/zend-json                        3.1.1    provides convenience methods for serializing native PHP to JSON and decoding JSON to native PHP
zendframework/zend-loader                      2.6.1    Autoloading and plugin loading strategies
zendframework/zend-log                         2.11.0   Robust, composite logger with filtering, formatting, and PSR-3 support
zendframework/zend-mail                        2.10.0   Provides generalized functionality to compose and send both text and MIME-compliant multipart e-mail messages
zendframework/zend-mime                        2.7.1    Create and parse MIME messages and parts
zendframework/zend-modulemanager               2.8.2    Modular application system for zend-mvc applications
zendframework/zend-mvc                         3.1.1    Zend Framework's event-driven MVC layer, including MVC Applications, Controllers, and Plugins
zendframework/zend-mvc-i18n                    1.1.1    Integration between zend-mvc and zend-i18n
zendframework/zend-mvc-plugin-flashmessenger   1.1.0    Plugin for creating and exposing flash messages via zend-mvc controllers
zendframework/zend-mvc-plugin-identity         1.1.0    Plugin for retrieving the current authenticated identity within zend-mvc controllers
zendframework/zend-navigation                  2.9.1    Manage trees of pointers to web pages in order to build navigation systems
zendframework/zend-paginator                   2.8.2    Paginate collections of data from arbitrary sources
zendframework/zend-permissions-acl             2.7.1    Provides a lightweight and flexible access control list (ACL) implementation for privileges management
zendframework/zend-router                      3.3.0    Flexible routing system for HTTP and console applications
zendframework/zend-servicemanager              3.4.0    Factory-Driven Dependency Injection Container
zendframework/zend-session                     2.9.0    Object-oriented interface to PHP sessions and storage
zendframework/zend-stdlib                      3.2.1    SPL extensions, array utilities, error handlers, and more
zendframework/zend-test                        3.3.0    Tools to facilitate unit testing of zend-mvc applications
zendframework/zend-uri                         2.7.0    A component that aids in manipulating and validating ยป Uniform Resource Identifiers (URIs)
zendframework/zend-validator                   2.12.0   provides a set of commonly needed validators
zendframework/zend-view                        2.11.2   provides a system of helpers, output filters, and variable escaping

phpunit.xml

<phpunit
    bootstrap="./tests/bootstrap.php"
    colors="true"
    backupGlobals="false"
    convertNoticesToExceptions="false"
    convertWarningsToExceptions="false"
>
    <testsuites>
        <testsuite name="....">
            <directory>....</directory>
        </testsuite>
       .... and many others
    </testsuites>
    <filter>
        <whitelist addUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./src/</directory>
            <exclude>
                <directory suffix=".php">.....</directory>
            </exclude>
        </whitelist>
    </filter>
</phpunit>

And when its working i dont have any output, i make another issue

Ocramius commented 4 years ago

What happens if you drop the --repeat from https://github.com/Roave/no-leaks/blob/ec6aa10e424bd160166f5e71e1b0d5333899ff18/bin/roave-no-leaks.php#L46 ? Does it still run an infinite time?

fezfez commented 4 years ago

same


PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.3.4
Configuration: /var/www/phpunit.xml

...............................................................  63 / 751 (  8%)
...................................................SS.......... 126 / 751 ( 16%)
............................................................... 189 / 751 ( 25%)
............................................................... 252 / 751 ( 33%)
............................................................... 315 / 751 ( 41%)
............................................................... 378 / 751 ( 50%)
............................................................... 441 / 751 ( 58%)
.......................I.I..................................... 504 / 751 ( 67%)
............................................................... 567 / 751 ( 75%)
................................................III.I.......... 630 / 751 ( 83%)
............................................................... 693 / 751 ( 92%)
..........................................................      751 / 751 (100%)..... 756 / 751 (100%)
............................................................... 819 / 751 (109%)
............................................................... 882 / 751 (117%)
...........................................^
Ocramius commented 4 years ago

What about https://github.com/Roave/no-leaks/blob/ec6aa10e424bd160166f5e71e1b0d5333899ff18/src/CollectTestExecutionMemoryFootprints.php#L48 ? Maybe we have to check if that test is already registered?

fezfez commented 4 years ago

when i add

        static $call = 0;
        $call ++;
        var_dump($call);

on startTestSuite method

PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.3.4
Configuration: /var/www/phpunit.xml

int(1)
int(2)
int(3)
int(4)
..int(5)
....int(6)
...int(7)
..int(8)
...int(9)
..int(10)
..int(11)
...int(12)
.....int(13)
..int(14)
...int(15)
...int(16)
...int(17)
..int(18)
...int(19)
int(20)
...int(21)
......int(22)
..int(23)
....int(24)
....   61 / 2251 (  2%)
.int(25)
..int(26)
....int(27)
int(28)
..int(29)
...int(30)
...int(31)
..int(32)
...int(33)
..int(34)
..int(35)
........int(36)
fezfez commented 4 years ago

with this patch

    /** @var array<string> */
    private static $addSuited = [];

    public function startTestSuite(TestSuite $suite) : void
    {
        if (array_key_exists($suite->getName(), self::$addSuited)) {
            var_dump('ignore add');
            return;
        }
        self::$addSuited[$suite->getName()] = true;

        $suite->addTest(new EmptyBaselineMemoryUsageTest(EmptyBaselineMemoryUsageTest::TEST_METHOD));
    }

i've got this strange output

PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.3.4
Configuration: /var/www/phpunit.xml

string(10) "ignore add"
.............................................................   61 / 2251 (  2%)
.....................................................SS......  122 / 2251 (  5%)
.............................................................  183 / 2251 (  8%)
.............................................................  244 / 2251 ( 10%)
.............................................................  305 / 2251 ( 13%)
.............................................................  366 / 2251 ( 16%)
.............................................................  427 / 2251 ( 18%)
.....................................I.I.....................  488 / 2251 ( 21%)
.............................................................  549 / 2251 ( 24%)
.............................................................  610 / 2251 ( 27%)
.....III.I...................................................  671 / 2251 ( 29%)
.............................................................  732 / 2251 ( 32%)
.............................................................  793 / 2251 ( 35%)
.............................................................  854 / 2251 ( 37%)
.............................................................  915 / 2251 ( 40%)
.............................................................  976 / 2251 ( 43%)
............................................................. 1037 / 2251 ( 46%)
..........................string(10) "ignore add"
.............string(10) "ignore add"
string(10) "ignore add"
string(10) "ignore add"
E.string(10) "ignore add"
....string(10) "ignore add"
...string(10) "ignore add"
..string(10) "ignore add"
...string(10) "ignore add"
..string(10) "ignore add"
..string(10) "ignore add"
...string(10) "ignore add"
. 1098 / 2251 ( 48%)
....string(10) "ignore add"
..string(10) "ignore add"
...string(10) "ignore add"
...string(10) "ignore add"

Its like after some time, phpunit considers randomly unit test has a testSuite

Ocramius commented 4 years ago

Hmm, tricky. Do you by chance have any @suite stuff anywhere in your tests?

fezfez commented 4 years ago

i have no special annotation for phpunit.

Ocramius commented 4 years ago

Maybe dump more information in the startTestSuite() hook, so we know what PHPUnit is doing? Does this also happen when turning off random test execution order?

fezfez commented 4 years ago

I've made a test with Roave/no-leaks.

i have added

var_dump(__METHOD__.' '.$suite->getName()); 

on

https://github.com/sebastianbergmann/phpunit/blob/4d2e3f801b316766fbfc3431f6fda6137b63fab0/src/Framework/TestResult.php#L381-L383

and

var_dump(__METHOD__.' '. $result->count());

on

https://github.com/sebastianbergmann/phpunit/blob/4d2e3f801b316766fbfc3431f6fda6137b63fab0/src/Framework/TestSuite.php#L516

result :

PHPUnit 8.3.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 7.4.0RC1
Configuration: /var/www/phpunit.xml.dist
Random seed:   1570011937

string(34) "PHPUnit\Framework\TestSuite::run 0"
string(45) "PHPUnit\Framework\TestResult::startTestSuite "
string(34) "PHPUnit\Framework\TestSuite::run 0"
string(49) "PHPUnit\Framework\TestResult::startTestSuite unit"
string(34) "PHPUnit\Framework\TestSuite::run 0"
string(103) "PHPUnit\Framework\TestResult::startTestSuite RoaveUnitTest\NoLeaks\PHPUnit\EmptyBaselineMemoryUsageTest"
.string(34) "PHPUnit\Framework\TestSuite::run 1"
string(115) "PHPUnit\Framework\TestResult::startTestSuite RoaveUnitTest\NoLeaks\PHPUnit\CollectTestExecutionMemoryFootprintsTest"
......string(34) "PHPUnit\Framework\TestSuite::run 7"
string(104) "PHPUnit\Framework\TestResult::startTestSuite RoaveUnitTest\NoLeaks\PHPUnit\MeasuredTestRunMemoryLeakTest"
.......string(35) "PHPUnit\Framework\TestSuite::run 14"
string(109) "PHPUnit\Framework\TestResult::startTestSuite RoaveUnitTest\NoLeaks\PHPUnit\MeasuredBaselineTestMemoryLeakTest"
......                                              20 / 20 (100%)

Time: 32 ms, Memory: 6.00 MB

OK (20 tests, 27 assertions)

I think startTestSuite shouldn't be called on every test, is it me or i don't understand ?

Ocramius commented 4 years ago

Yeah, I think so too - probably a bug in upstream then?

fezfez commented 4 years ago

Ok, so i open an issue in phpunit

fezfez commented 4 years ago

thanks for the support :+1:

Ocramius commented 4 years ago

Let's leave this open until it's clear where the bug lies, heh...

fezfez commented 4 years ago

@Ocramius : reported on https://github.com/sebastianbergmann/phpunit/issues/3877

fezfez commented 4 years ago

i certainly found the real problem here

https://github.com/sebastianbergmann/phpunit/blob/4d2e3f801b316766fbfc3431f6fda6137b63fab0/src/TextUI/TestRunner.php#L191-L202