Uploaded image for project: 'Percona Server for MySQL'
  1. Percona Server for MySQL
  2. PS-6849

Add JUnit reporting support to MTR

    XMLWordPrintable

    Details

    • Type: New Feature
    • Status: In Progress
    • Priority: Medium
    • Resolution: Unresolved
    • Affects Version/s: 5.6.x, 5.7.x, 8.0.x
    • Fix Version/s: None
    • Component/s: None
    • Labels:

      Description

      Port "Add JUnit reporting support to the MySQL test suite runner" patch from WebScaleSQL
      to Percona Server 5.6, 5.7, 8.0.
      https://github.com/facebook/mysql-5.6/commit/3557c9d8a87528c0a73e15ea093c4ec4ca9cbe9b

      The main goal is to make sure that info about failed tests can be viewed in Jenkins.
      This should also include info about crashes, Sanitizer errors, Valgrind errors, deadlocks (terminations by timeout).

      This task also requires to create a new MTR suite (disabled by default) which would include the following test cases:

      1. The one that always passes.
      2. The one that is disabled.
      3. The one that is skipped.
      4. The one that fails with content mismatch.
      5. The one that fails with `--die` (e.g. `assert.inc`).
      6. The one that crashes during bootstrap.
      7. The one that crashes during execution.
      8. The one that crashes at shutdown.
      9. The one that hangs during bootstrap.
      10. The one that hangs during execution.
      11. The one that hangs during shutdown.
      12. The one that is 'predictably' unstable (fails every second time).
      13. The one that has ASan/Valgrind error during bootstrap.
      14. The one that has ASan/Valgrind error during execution.
      15. The one that has ASan/Valgrind error during shutdown.
      16. The one that has ASan/Valgrind memory leak during shutdown.

      Output file should also include info about failed unit tests (gunit).
      Adding several new gunit tests which would be included in the main suite under (-DWITH_FAILING_GUNIT_TESTS cmake option) is also required:

      1. A unit test that passes.
      2. A unit test that fails.
      3. A unit test that crashes.
      4. A unit test that hangs forever.
      5. A unit test that has ASan/Valgrind error.
      6. A unit test that has ASan/Valgrind memory leak.

      Server code can be extended with additional `DEBUG_EXECUTE_IF()` macros which would help to simulate the behavior described above.

        Smart Checklist

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                oleksandr.kachan Oleksandr Kachan
                Reporter:
                yura.sorokin Yura Sorokin
                Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                  Dates

                  Created:
                  Updated:

                    Time Tracking

                    Estimated:
                    Original Estimate - Not Specified
                    Not Specified
                    Remaining:
                    Remaining Estimate - Not Specified
                    Not Specified
                    Logged:
                    Time Spent - 3 weeks, 6 hours, 15 minutes
                    3w 6h 15m