Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-12050

per-patch smoke suites as an early/fast testing tier



    • Type: Improvement
    • Status: Open
    • Priority: Low
    • Resolution: Unresolved
    • Fix Version/s: None
    • Component/s: Build, Legacy/Testing
    • Labels:


      Coverage data offers a unique opportunity to build metadata about tests and related Cassandra code.

      Using the jacoco coverage api we should be able to build a simple index of tests (dtest, unit) to the Cassandra code they touch (and the reverse).

      When a new patch is introduced, we do a lookup in that index, based on java source files touched (and possibly lines within those files), and use that to infer most relevant dtests or unit tests. Patch authors can then run that small test subset as a first testing pass.

      In this way we can build small, focused, test suites that are custom to each patch. Once this small custom smoke test appears successful things would of course need to be vetted across a more complete test run on CI.

      I think the best interface would simply be ant targets. One target would be used to build/refresh the test:source code index (run occasionally and saved somewhere; index building would be time consuming since it will require full job runs). A second target looks at files touched and does the index lookups, then outputs a list of tests to run.

      The dev user experience might looking something like this:

      ant get-custom-smoke -Dcoverage_index=./trunk_coverage_index_SHA_foo.idx
      Generating test lists....
      Please run the following two scripts to vet your changes:




            • Assignee:
              rhatch Russ Hatch
            • Votes:
              0 Vote for this issue
              3 Start watching this issue


              • Created: