1
0
Fork 0
mirror of synced 2025-04-01 20:36:14 +03:00
doctrine2/tests
Gordon Stratton 9e916a2893 Fix for invalid 'double-ON' SQL generation with entity inheritance type JOINED.
In SqlWalker::walkJoin(), SqlWalker::walkRangeVariableDeclaration() can be
called which may produce an 'ON' clause if the entity inheritance type is
JOINED. As walkJoin() may then produce another ON clause, this results in
invalid SQL (e.g. '... ON foo = bar ON (baz = quux) ...' when the inheritance
type is JOINED.

This adds a test and a fix for the problem, by checking for an inheritance type
of JOINED in walkJoin() and using AND instead of ON in the appropriate place.

It seems like this part of the code is begging to be refactored. This is my
first foray into Doctrine internals and can't see a way to do this without
stomping all over the rest of the code, but this section seems ripe for cleanup
by somebody who is familiar.
2012-11-05 01:19:25 -08:00
..
Doctrine/Tests Fix for invalid 'double-ON' SQL generation with entity inheritance type JOINED. 2012-11-05 01:19:25 -08:00
travis Fix travis configuration files 2011-11-13 22:04:48 +01: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 Remove all trailing whitespaces 2011-12-19 22:56:19 +01: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.