Modify

Ticket #342 (closed enhancement: fixed)

Opened 15 months ago

Last modified 10 months ago

custom-made re-engine in SelectorUtils is awful slow

Reported by: uwe@… Owned by: mrook
Priority: minor Milestone: 2.4.0RC1
Component: phing-core Version: 2.3.2
Keywords: Cc:

Description

The methods match() and matchPath() in SelectorUtils are quite slow doing a regular expression matching "by hand". Instead of reimplementing a lite form of preg_match() we better should use preg_match() directly. The attached patch converts the pattern into a regular expression and does the matching using preg_match().

Having to copy round about 1800 files in a <copy /> task it took 29.5 seconds using phing 2.3.3. With the patch applied the runtime droped to 18.9 seconds.

I suppose the method matchPatternStart() could be optimized as well but I couldn't quite understand it's intended purpose so I didn't touch it. As far as I can see in the cachegrind.out, it didn't even get invoked.

Attachments

patch-SelectorUtils-preg_match.patch Download (10.6 KB) - added by uwe@… 15 months ago.
patch-SelectorUtils-preg_match.2.patch Download (10.8 KB) - added by Uwe Mesecke <uwe@…> 13 months ago.

Change History

Changed 15 months ago by uwe@…

comment:1 Changed 13 months ago by mrook

  • Owner changed from hans to mrook
  • Priority changed from major to minor
  • Status changed from new to assigned
  • Milestone set to 2.4.0

comment:2 Changed 13 months ago by mrook

Unfortunately, your patch breaks one of the Phing unit tests...

comment:3 Changed 13 months ago by Uwe Mesecke <uwe@…>

in 2.3 or 2.4? I did not try phing 2.4 but I try to look at it tomorrow...

comment:4 Changed 13 months ago by Uwe Mesecke <uwe@…>

Hmm... I have troubles running the unit tests myself... After installing phpunit2 I tried to launch run-tests.php but there are a lot of errors:

phing-2.4 clean checkout from svn-trunk:

Hermione:~/workspace/phing-trunk/test uwe$ php run-tests.php 
PHPUnit 2.3.6 by Sebastian Bergmann.

FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF

Time: 0.012387
There were 35 failures:
1) Warning(PHPUnit2_Framework_Warning)
Constructor of class IntrospectionHelperTest is not TestCase($name) or TestCase().
/Users/uwe/workspace/phing-trunk/test/run-tests.php:85
2) Warning(PHPUnit2_Framework_Warning)
Constructor of class IntrospectionHelperTest is not TestCase($name) or TestCase().
/Users/uwe/workspace/phing-trunk/test/run-tests.php:85
3) Warning(PHPUnit2_Framework_Warning)
Constructor of class IntrospectionHelperTest is not TestCase($name) or TestCase().
/Users/uwe/workspace/phing-trunk/test/run-tests.php:85

[...]

34) Warning(PHPUnit2_Framework_Warning)
Constructor of class ImportTaskTest is not TestCase($name) or TestCase().
/Users/uwe/workspace/phing-trunk/test/run-tests.php:85
35) Warning(PHPUnit2_Framework_Warning)
Constructor of class ImportTaskTest is not TestCase($name) or TestCase().
/Users/uwe/workspace/phing-trunk/test/run-tests.php:85

FAILURES!!!
Tests run: 35, Failures: 35, Errors: 0, Incomplete Tests: 0.

With phing 2.3.3 there is an error about a missing file oops.php:

Hermione:~/workspace/phing/test uwe$ php run-tests.php 
PHPUnit 2.3.6 by Sebastian Bergmann.

............
Warning: include_once(oops.php): failed to open stream: No such file or directory
in /Users/uwe/workspace/phing/classes/phing/Phing.php on line 1006

Warning: include_once(): Failed opening 'oops.php' for inclusion
(include_path='/Users/uwe/workspace/phing/test/classes:
/Users/uwe/workspace/phing/classes:.:/opt/local/lib/php')
in /Users/uwe/workspace/phing/classes/phing/Phing.php on line 1006
E...........

Time: 1.212557
There was 1 error:
1) testClassNotFound(TypedefTaskTest)
Error importing oops.php
/Users/uwe/workspace/phing/classes/phing/Phing.php:964
/Users/uwe/workspace/phing/classes/phing/Project.php:534
/Users/uwe/workspace/phing/classes/phing/tasks/system/TypedefTask.php:107
/Users/uwe/workspace/phing/classes/phing/Task.php:253
/Users/uwe/workspace/phing/classes/phing/Target.php:240
/Users/uwe/workspace/phing/classes/phing/Target.php:263
/Users/uwe/workspace/phing/classes/phing/Project.php:702
/Users/uwe/workspace/phing/test/classes/phing/BuildFileTest.php:196
/Users/uwe/workspace/phing/test/classes/phing/BuildFileTest.php:227
/Users/uwe/workspace/phing/test/classes/phing/BuildFileTest.php:73
/Users/uwe/workspace/phing/test/classes/phing/tasks/TypedefTaskTest.php:48
/Users/uwe/workspace/phing/test/run-tests.php:81

FAILURES!!!
Tests run: 24, Failures: 0, Errors: 1, Incomplete Tests: 0.

Apart from that error in ping 2.3.3 I have no further failures when applying my patch... Hmm...

I also tried using phing and the build.xml file that lies in the test directory but then I got errors about class redeclaring:

Hermione:~/workspace/phing/test uwe$ phing 
Buildfile: /Users/uwe/workspace/phing/test/build.xml
 [property] Loading /Users/uwe/workspace/phing/test/./test.properties
 [property] Unable to find property file: /Users/uwe/workspace/phing/test/./test.properties... skipped
[resolvepath] Resolved . to /Users/uwe/workspace/phing/test
[resolvepath] Resolved ./classes to /Users/uwe/workspace/phing/test/classes
[resolvepath] Resolved ../classes to /Users/uwe/workspace/phing/classes

Phing Build Tests > initialize:


Phing Build Tests > configure:

     [echo] -------------------------------------------------
     [echo]  +++++ Running Phing  unit tests
     [echo] -------------------------------------------------

Phing Build Tests > reports:


Fatal error: Cannot redeclare class Writer in /Users/uwe/workspace/phing/classes/phing/system/io/Writer.php on line 27

comment:5 Changed 13 months ago by mrook

Note that PHPUnit2 is no longer supported in trunk, please run the tests by running phing in the test directory.

comment:6 Changed 13 months ago by Uwe Mesecke <uwe@…>

running tests from 2.4 using phing now:

Hermione:~/workspace/phing-trunk uwe$ svn up
D    test/run-tests.php
Aktualisiert zu Revision 499.
Hermione:~/workspace/phing-trunk uwe$ cd test/
Hermione:~/workspace/phing-trunk/test uwe$ sh ../bin/phing -logger phing.listener.DefaultLogger
Buildfile: /Users/uwe/workspace/phing-trunk/test/build.xml
 [property] Loading /Users/uwe/workspace/phing-trunk/test/./test.properties
 [property] Unable to find property file: /Users/uwe/workspace/phing-trunk/test/./test.properties... skipped
[resolvepath] Resolved . to /Users/uwe/workspace/phing-trunk/test
[resolvepath] Resolved ./classes to /Users/uwe/workspace/phing-trunk/test/classes
[resolvepath] Resolved ../classes to /Users/uwe/workspace/phing-trunk/classes

Phing Build Tests > initialize:


Phing Build Tests > configure:

     [echo] -------------------------------------------------
     [echo]  +++++ Running Phing  unit tests
     [echo] -------------------------------------------------

Phing Build Tests > reports:

  [phpunit] Testsuite: LineContainsTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.06387 s
  [phpunit] Test: LineContainsTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.06425 s
  [phpunit] Testsuite: IntrospectionHelperTest
  [phpunit] Tests run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01044 s
  [phpunit] Test: IntrospectionHelperTest, Run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01078 s
  [phpunit] Testsuite: CopyTaskFileListTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.04588 s
  [phpunit] Test: CopyTaskFileListTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.04623 s
  [phpunit] Testsuite: CustomTaskFileSetTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.08847 s
  [phpunit] Test: CustomTaskFileSetTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.08919 s

Parse error: syntax error, unexpected '}' in /Users/uwe/workspace/phing-trunk/classes/phing/tasks/system/AdhocTask.php(76) : eval()'d code on line 1
  [phpunit] Testsuite: PhingCallAdhocTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 1, Incomplete: 0, Skipped: 0, Time elapsed: 0.03385 s
  [phpunit] testPhingCallTask ERROR
  [phpunit] Error reading project file [wrapped: /Users/uwe/workspace/phing-trunk/test/etc/regression/299/build.xml:13:2: You must define one (and only one) class for AdhocTaskdefTask.]
  [phpunit] /Users/uwe/workspace/phing-trunk/classes/phing/parser/ProjectConfigurator.php:197
  [phpunit] /Users/uwe/workspace/phing-trunk/classes/phing/parser/ProjectConfigurator.php:77
  [phpunit] /Users/uwe/workspace/phing-trunk/test/classes/phing/BuildFileTest.php:181
  [phpunit] /Users/uwe/workspace/phing-trunk/test/classes/phing/regression/PhingCallAdhocTest.php:34
  [phpunit] /Users/uwe/workspace/phing-trunk/bin/phing.php:37
  [phpunit] Test: PhingCallAdhocTest, Run: 1, Failures: 0, Errors: 1, Incomplete: 0, Skipped: 0, Time elapsed: 0.04414 s
  [phpunit] Testsuite: FileOutputStreamTest
  [phpunit] Tests run: 2, Failures: 0, Errors: 2, Incomplete: 0, Skipped: 0, Time elapsed: 0.01852 s
  [phpunit] testWrite ERROR
  [phpunit] Unable to open tmp/FileOutputStreamTest.txt for writing: fopen(/Users/uwe/workspace/phing-trunk/test/etc/regression/299/tmp/FileOutputStreamTest.txt): failed to open stream: No such file or directory
  [phpunit] /Users/uwe/workspace/phing-trunk/classes/phing/system/io/FileOutputStream.php:58
  [phpunit] /Users/uwe/workspace/phing-trunk/test/classes/phing/system/FileOutputStreamTest.php:42
  [phpunit] /Users/uwe/workspace/phing-trunk/bin/phing.php:37
  [phpunit] testFlush ERROR
  [phpunit] Unable to open tmp/FileOutputStreamTest.txt for writing: fopen(/Users/uwe/workspace/phing-trunk/test/etc/regression/299/tmp/FileOutputStreamTest.txt): failed to open stream: No such file or directory
  [phpunit] /Users/uwe/workspace/phing-trunk/classes/phing/system/io/FileOutputStream.php:58
  [phpunit] /Users/uwe/workspace/phing-trunk/test/classes/phing/system/FileOutputStreamTest.php:42
  [phpunit] /Users/uwe/workspace/phing-trunk/bin/phing.php:37
  [phpunit] Test: FileOutputStreamTest, Run: 2, Failures: 0, Errors: 2, Incomplete: 0, Skipped: 0, Time elapsed: 0.02060 s
  [phpunit] Testsuite: ContainsConditionTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00365 s
  [phpunit] Test: ContainsConditionTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01684 s
  [phpunit] Testsuite: EqualsConditionTest
  [phpunit] Tests run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00542 s
  [phpunit] Test: EqualsConditionTest, Run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00595 s
  [phpunit] Testsuite: ImportTaskTest
  [phpunit] Tests run: 5, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.16958 s
  [phpunit] Test: ImportTaskTest, Run: 5, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.17010 s
  [phpunit] Testsuite: PropertyTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.15128 s
  [phpunit] Test: PropertyTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.15185 s
  [phpunit] Testsuite: TaskdefTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.21283 s
  [phpunit] Test: TaskdefTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.21382 s
  [phpunit] Testsuite: TypedefTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.19929 s
  [phpunit] Test: TypedefTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.19984 s
  [phpunit] Testsuite: CommandlineTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00471 s
  [phpunit] Test: CommandlineTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00520 s
  [phpunit] Testsuite: FileSetTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00898 s
  [phpunit] Test: FileSetTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00935 s
  [phpunit] Testsuite: MapperTest
  [phpunit] Tests run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 1.51339 s
  [phpunit] Test: MapperTest, Run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 1.51422 s
  [phpunit] Testsuite: TaskdefForCopyTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 1.02074 s
  [phpunit] Test: TaskdefForCopyTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 1.02146 s
Execution of target "reports" failed for the following reason: /Users/uwe/workspace/phing-trunk/test/build.xml:55:2: Test ERROR (testFlush): Unable to open tmp/FileOutputStreamTest.txt for writing: fopen(/Users/uwe/workspace/phing-trunk/test/etc/regression/299/tmp/FileOutputStreamTest.txt): failed to open stream: No such file or directory

BUILD FAILED
/Users/uwe/workspace/phing-trunk/test/build.xml:55:2: Test ERROR (testFlush): Unable to open tmp/FileOutputStreamTest.txt for writing: fopen(/Users/uwe/workspace/phing-trunk/test/etc/regression/299/tmp/FileOutputStreamTest.txt): failed to open stream: No such file or directory
Total time: 5.6207 seconds



There are no further errors or failures even after applying the patch...

Could you perhaps give me a testcase where the patch breaks phing?

comment:7 Changed 13 months ago by Uwe Mesecke <uwe@…>

ah... okay... I missed a failure in testCustomTask... going to look at it tomorrow... ;)

comment:8 Changed 13 months ago by Uwe Mesecke <uwe@…>

Apparently there is a problem with matching a single filename (e.g. TestPhpLintTask.php) against the pattern "/*.php". The "old" matching did a positive match in that case and I personally would consider that a bug, because there is a fixed / before the filename so the files should have a directory depth of at least one or more. ;)

But to prevent breakage I will transform the pattern "/" into ""... Now the Tests in CustomTaskFileSetTest are successful:


Hermione:~/workspace/phing/test uwe$ sh ../bin/phing -logger phing.listener.DefaultLogger
Buildfile: /Users/uwe/workspace/phing/test/build.xml
 [property] Loading /Users/uwe/workspace/phing/test/./test.properties
 [property] Unable to find property file: /Users/uwe/workspace/phing/test/./test.properties... skipped
[resolvepath] Resolved . to /Users/uwe/workspace/phing/test
[resolvepath] Resolved ./classes to /Users/uwe/workspace/phing/test/classes
[resolvepath] Resolved ../classes to /Users/uwe/workspace/phing/classes

Phing Build Tests > initialize:


Phing Build Tests > configure:

     [echo] -------------------------------------------------
     [echo]  +++++ Running Phing  unit tests
     [echo] -------------------------------------------------

Phing Build Tests > reports:

  [phpunit] Testsuite: LineContainsTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.09093 s
  [phpunit] Test: LineContainsTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.09476 s
  [phpunit] Testsuite: IntrospectionHelperTest
  [phpunit] Tests run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.04218 s
  [phpunit] Test: IntrospectionHelperTest, Run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.04329 s
  [phpunit] Testsuite: CopyTaskFileListTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.09067 s
  [phpunit] Test: CopyTaskFileListTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.09128 s
  [phpunit] Testsuite: CustomTaskFileSetTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.11492 s
  [phpunit] Test: CustomTaskFileSetTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.11567 s

Parse error: syntax error, unexpected '}' in /Users/uwe/workspace/phing/classes/phing/tasks/system/AdhocTask.php(76) : eval()'d code on line 1

Call Stack:
    0.0018      76316   1. {main}() /Users/uwe/workspace/phing/bin/phing.php:0
    0.2512    4830288   2. Phing::fire(array(4)) /Users/uwe/workspace/phing/bin/phing.php:37
    0.2512    4830380   3. Phing::start(array(4), null) /Users/uwe/workspace/phing/classes/phing/Phing.php:270
    0.2556    4912740   4. Phing->runBuild() /Users/uwe/workspace/phing/classes/phing/Phing.php:170
    0.9225   15143792   5. Project->executeTargets(array(1)) /Users/uwe/workspace/phing/classes/phing/Phing.php:541
    0.9225   15143792   6. Project->executeTarget(string(7)) /Users/uwe/workspace/phing/classes/phing/Project.php:687
    0.9369   15221620   7. Target->performTasks() /Users/uwe/workspace/phing/classes/phing/Project.php:714
    0.9370   15221988   8. Target->main() /Users/uwe/workspace/phing/classes/phing/Target.php:263
    0.9370   15222856   9. Task->perform() /Users/uwe/workspace/phing/classes/phing/Target.php:240
    0.9619   15481328  10. PHPUnitTask->main() /Users/uwe/workspace/phing/classes/phing/Task.php:253
    2.1705   17649316  11. PHPUnitTask->execute(string(18)) /Users/uwe/workspace/phing/classes/phing/tasks/ext/phpunit/PHPUnitTask.php:235
    2.1797   17660880  12. PHPUnitTestRunner->run(class PHPUnit_Framework_TestSuite) /Users/uwe/workspace/phing/classes/phing/tasks/ext/phpunit/PHPUnitTask.php:280
    2.1797   17662524  13. PHPUnit_Framework_TestSuite->run(class PHPUnit_Framework_TestResult, bool, array(0), array(0)) /Users/uwe/workspace/phing/classes/phing/tasks/ext/phpunit/PHPUnitTestRunner.php:103
    2.1804   17664984  14. PHPUnit_Framework_TestSuite->runTest(class PhingCallAdhocTest, class PHPUnit_Framework_TestResult) /opt/local/lib/php/PHPUnit/Framework/TestSuite.php:660
    2.1804   17664984  15. PHPUnit_Framework_TestCase->run(class PHPUnit_Framework_TestResult) /opt/local/lib/php/PHPUnit/Framework/TestSuite.php:679
    2.1804   17665172  16. PHPUnit_Framework_TestResult->run(class PhingCallAdhocTest) /opt/local/lib/php/PHPUnit/Framework/TestCase.php:375
    2.1808   17666740  17. PHPUnit_Framework_TestCase->runBare() /opt/local/lib/php/PHPUnit/Framework/TestResult.php:607
    2.1822   17690316  18. PhingCallAdhocTest->setUp() /opt/local/lib/php/PHPUnit/Framework/TestCase.php:394
    2.1822   17690484  19. BuildFileTest->configureProject(string(60)) /Users/uwe/workspace/phing/test/classes/phing/regression/PhingCallAdhocTest.php:34
    2.2016   17747520  20. ProjectConfigurator::configureProject(class Project, class PhingFile) /Users/uwe/workspace/phing/test/classes/phing/BuildFileTest.php:181
    2.2022   17747520  21. ProjectConfigurator->parse() /Users/uwe/workspace/phing/classes/phing/parser/ProjectConfigurator.php:77
    2.2031   17755380  22. ExpatParser->parse() /Users/uwe/workspace/phing/classes/phing/parser/ProjectConfigurator.php:187
    2.2033   17829776  23. xml_parse(resource(993) of type (xml), string(414), long) /Users/uwe/workspace/phing/classes/phing/parser/ExpatParser.php:129
    2.2144   17876296  24. AbstractSAXParser->endElement(resource(993) of type (xml), string(10)) /Users/uwe/workspace/phing/classes/phing/parser/AbstractSAXParser.php:0
    2.2144   17876296  25. AbstractHandler->endElement(string(10)) /Users/uwe/workspace/phing/classes/phing/parser/AbstractSAXParser.php:91
    2.2144   17876296  26. TaskHandler->finished() /Users/uwe/workspace/phing/classes/phing/parser/AbstractHandler.php:80
    2.2145   17876684  27. Task->perform() /Users/uwe/workspace/phing/classes/phing/parser/TaskHandler.php:188
    2.2145   17877272  28. AdhocTaskdefTask->main() /Users/uwe/workspace/phing/classes/phing/Task.php:253
    2.2146   17878300  29. AdhocTask->execute() /Users/uwe/workspace/phing/classes/phing/tasks/system/AdhocTaskdefTask.php:81

  [phpunit] Testsuite: PhingCallAdhocTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 1, Incomplete: 0, Skipped: 0, Time elapsed: 0.05972 s
  [phpunit] testPhingCallTask ERROR
  [phpunit] Error reading project file [wrapped: /Users/uwe/workspace/phing/test/etc/regression/299/build.xml:13:2: You must define one (and only one) class for AdhocTaskdefTask.]
  [phpunit] /Users/uwe/workspace/phing/classes/phing/parser/ProjectConfigurator.php:197
  [phpunit] /Users/uwe/workspace/phing/classes/phing/parser/ProjectConfigurator.php:77
  [phpunit] /Users/uwe/workspace/phing/test/classes/phing/BuildFileTest.php:181
  [phpunit] /Users/uwe/workspace/phing/test/classes/phing/regression/PhingCallAdhocTest.php:34
  [phpunit] /Users/uwe/workspace/phing/bin/phing.php:37
  [phpunit] Test: PhingCallAdhocTest, Run: 1, Failures: 0, Errors: 1, Incomplete: 0, Skipped: 0, Time elapsed: 0.06154 s
  [phpunit] Testsuite: FileOutputStreamTest
  [phpunit] Tests run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01889 s
  [phpunit] Test: FileOutputStreamTest, Run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.02260 s
  [phpunit] Testsuite: ContainsConditionTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00462 s
  [phpunit] Test: ContainsConditionTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00541 s
  [phpunit] Testsuite: EqualsConditionTest
  [phpunit] Tests run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01032 s
  [phpunit] Test: EqualsConditionTest, Run: 2, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01095 s
  [phpunit] Testsuite: ImportTaskTest
  [phpunit] Tests run: 5, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.29829 s
  [phpunit] Test: ImportTaskTest, Run: 5, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.29903 s
  [phpunit] Testsuite: PropertyTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.25681 s
  [phpunit] Test: PropertyTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.25760 s
  [phpunit] Testsuite: TaskdefTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.31732 s
  [phpunit] Test: TaskdefTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.31795 s
  [phpunit] Testsuite: TypedefTaskTest
  [phpunit] Tests run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.29941 s
  [phpunit] Test: TypedefTaskTest, Run: 6, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.30004 s
  [phpunit] Testsuite: CommandlineTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00813 s
  [phpunit] Test: CommandlineTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.00878 s
  [phpunit] Testsuite: FileSetTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01654 s
  [phpunit] Test: FileSetTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.01724 s
  [phpunit] Testsuite: MapperTest
  [phpunit] Tests run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.62089 s
  [phpunit] Test: MapperTest, Run: 3, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.62169 s
  [phpunit] Testsuite: TaskdefForCopyTest
  [phpunit] Tests run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.65739 s
  [phpunit] Test: TaskdefForCopyTest, Run: 1, Failures: 0, Errors: 0, Incomplete: 0, Skipped: 0, Time elapsed: 0.65856 s
Execution of target "reports" failed for the following reason: /Users/uwe/workspace/phing/test/build.xml:55:2: Test ERROR (testPhingCallTask): Error reading project file [wrapped: /Users/uwe/workspace/phing/test/etc/regression/299/build.xml:13:2: You must define one (and only one) class for AdhocTaskdefTask.]

BUILD FAILED
/Users/uwe/workspace/phing/test/build.xml:55:2: Test ERROR (testPhingCallTask): Error reading project file [wrapped: /Users/uwe/workspace/phing/test/etc/regression/299/build.xml:13:2: You must define one (and only one) class for AdhocTaskdefTask.]
Total time: 4.6104 seconds


Changed 13 months ago by Uwe Mesecke <uwe@…>

comment:9 Changed 13 months ago by mrook

Thanks for the new patch - this looks good!

comment:10 Changed 13 months ago by mrook

  • Status changed from assigned to closed
  • Resolution set to fixed

This bug has been fixed in the SVN tree, revision r515.

Thank you for the report, and for helping us make Phing better!

comment:11 Changed 10 months ago by mrook

(In [617]) Refs #137 #342 - fix inadvertent include of excluded directories

View

Add a comment

Modify Ticket

Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.