1
0
Fork 0
mirror of synced 2025-04-01 20:36:14 +03:00
doctrine2/tests
Alexander 2653d735e2 [DDC-551] Added state of the complete filter collection to the EM
Previously it was sufficient to use the old parser result for a Query if
the DQL didn't change (Query::STATE_CLEAN), but now there must also be
no changes to the filter collection of the EntityManager.

In the old situation each Query object would create a hash of all the
filter objects on it's own. That was not very efficient.

This commit adds the state of the current filter collection to the
EntityManager. The state will be set to FILTERS_STATE_DIRTY as a filter
is enabled, removed or a parameter is set on a filter. The hash is also
computed by the EntityManager, but only if the filter collection is
dirty. This will prevent recalculation of the hash with each query.
2011-08-16 13:34:42 +02:00
..
Doctrine/Tests [DDC-551] Added state of the complete filter collection to the EM 2011-08-16 13:34:42 +02:00
.gitignore Fix Testsuite to work with Git 2010-04-07 20:47:53 +02:00
dbproperties.xml.dev [2.0] DDC-295 - Add OracleSessionInit postConnect Subscriber 2010-01-31 22:01:58 +00:00
NativePhpunitTask.php Cleanup after move. 2010-05-25 11:49:33 -04:00
README.markdown Added Gearman Lock Test and Worker, verified lockings indeed works on MySQL, PostgreSQL and Oracle 2010-05-02 13:04:25 +02:00

Running the Doctrine 2 Testsuite

Setting up a PHPUnit Configuration XML

..

Testing Lock-Support

The Lock support in Doctrine 2 is tested using Gearman, which allows to run concurrent tasks in parallel. Install Gearman with PHP as follows:

  1. Go to http://www.gearman.org and download the latest Gearman Server
  2. Compile it and then call ldconfig
  3. Start it up "gearmand -vvvv"
  4. Install pecl/gearman by calling "gearman-beta"

You can then go into tests/ and start up two workers:

php Doctrine/Tests/ORM/Functional/Locking/LockAgentWorker.php

Then run the locking test-suite:

phpunit --configuration <myconfig.xml> Doctrine/Tests/ORM/Functional/Locking/GearmanLockTest.php

This can run considerable time, because it is using sleep() to test for the timing ranges of locks.