[MDEV-202] Overlays do not support nested test suites which exist in MTR Created: 2012-03-25 Updated: 2012-04-26 Resolved: 2012-04-26 |
|
| Status: | Closed |
| Project: | MariaDB Server |
| Component/s: | None |
| Affects Version/s: | 5.5.21 |
| Fix Version/s: | 5.5.23 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Elena Stepanova | Assignee: | Sergei Golubchik |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||||||
| Description |
|
MTR supports nested test suites, such as suite/engines/funcs.
Overlays do not support this. If I create storage/<engine>/mysql-test/engines/funcs and then run
it dies at lib/mtr_cases.pm line 383. It seems that the change below fixes it, although I might fail to predict some deeper consequences.
Please replace the death message with something appropriate, but it's better to say something than die quietly. |
| Comments |
| Comment by Elena Stepanova [ 2012-03-25 ] |
|
Also, for the same nested suites, the following works in MySQL, but makes MariaDB version die at the same line 383 (regardless whether I have overlays for engines subsuites or not): perl ./mtr --suite=engines/* It is not perfect in MySQL either, as it produces dirty output like engines/*.db_create_drop [ pass ] 24 (see the asterisk instead of the subsuite name). Still, dying is not good. |
| Comment by Elena Stepanova [ 2012-03-30 ] |
|
Since this report itself turned out to be a feature request, I will put my suggestions here. 1. Durability Overlays should sustain any level of nesting, as long as it is supported in MTR itself. By "sustain" I mean that MTR should not die running an internal suite (with subsuites) due to the presence of its overlays, full or partial. Lets say we have in MTR Now we can run We should still be able to do so, no matter whether an engine or plugin has any of Now it is not so – if I have storage/my_engine/mysql-test/engine/basic folder and try to run MTR as 2. Supported level of nesting At the same time, I don't think it's strictly necessary to actually support the same level of nesting in overlays as it is done in MTR. It is somewhat nice to have, mainly to avoid confusion, but if there is any problem implementing it, I believe that 2 levels (parent and child suite) should be enough for the most real-life purposes. 3. Syntax I do find it important whether nested overlays should be triggered as It would be good to avoid making a user launch it as 4. Add-ons I previously suggested to make MTR execute all subsuites of 'engine' if it is run as A nice-to-have (but low priority) feature could be to improve currently half-supported syntax --suite=engine/*, to print correct test full names in the output, and not to die on middle-level expansions. mysql-test/suite/engine/test1.test executing mtr --suite=engine/* would run test2, and mtr --suite=engine/basic/* would run test3. But it's a corner case only that works – if there are more than one subsuite on either level, MTR would die, e.g. if we have mysql-test/suite/engine/test1.test then mtr --suite=engine/* would still run test2, but mtr --suite=engine/basic/* would die. More consistent behavior would be nice: - |
| Comment by Elena Stepanova [ 2012-04-25 ] |
|
OK to push to 5.5. I will keep trying the new feature while working on |
| Comment by Sergei Golubchik [ 2012-04-26 ] |
|
pushed into 5.5 |