Hello Kudu Jenkins, Adar Dembo,

I'd like you to reexamine a change. Please visit


to look at the new patch set (#4).

Change subject: build: enable sharding within cmake/ctest

build: enable sharding within cmake/ctest

This changes test sharding to be set up via cmake rather than specialized code
in the dist-test wrapper:

* There is a new argument for the ADD_KUDU_TEST() CMake function. When
  set, we generate separate CTest executions for each shard of the
  test. Thus, 'ctest -j' can now parallelize the multiple shards of
  longer-running tests.

* The specialized sharding logic is now gone from dist_test.py. Instead,
  it is now able to parse more of the output from 'ctest -N' and grabs
  the sharding-related environment variables directly from there and
  passes them down into the test environment.

  A few other changes sprung out of this:
    - 'dist-test.py loop' no longer understands shards and thus always
      submits a non-sharded test. Its functionality is now available
      with sharding in the 'run' subcommand, which is an improved
      version of the old 'run-all'.
    - the 'run' command can now pass through the '-R' regex filter
      parameter to ctest. For example, 'dist_test.py run -R consensus'
      will run all tests with consensus in the name
    - the 'run' command can also now loop tests with the '-n' flag.
      Thus we preserve the ability to loop a sharded test suite.
    - the 'run' command can also now tack on extra arguments to the end
      of all tests that it submits, which is handy for looping a sharded
      test suite with --stress-cpu-threads or other common test flags.

* The setting of the GTEST_OUTPUT environment variable is moved from
  build-and-test.sh into run_test.sh since it's necessary to ensure
  that the different shards output to separate XML files.

* Flaky-test tracking is currently still done by the test binary name
  and not the specific shard, though we could easily switch that in
  the future.

Change-Id: I20ddbdd73a64fda3fe32fca98ee541aa4cead4b3
M CMakeLists.txt
M build-support/dist_test.py
M build-support/jenkins/build-and-test.sh
M build-support/run-test.sh
M build-support/run_dist_test.py
M src/kudu/cfile/CMakeLists.txt
M src/kudu/client/CMakeLists.txt
M src/kudu/hms/CMakeLists.txt
M src/kudu/integration-tests/CMakeLists.txt
M src/kudu/tablet/CMakeLists.txt
M src/kudu/tools/CMakeLists.txt
11 files changed, 223 insertions(+), 139 deletions(-)

  git pull ssh://gerrit.cloudera.org:29418/kudu refs/changes/70/9470/4
To view, visit http://gerrit.cloudera.org:8080/9470
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: newpatchset
Gerrit-Change-Id: I20ddbdd73a64fda3fe32fca98ee541aa4cead4b3
Gerrit-Change-Number: 9470
Gerrit-PatchSet: 4
Gerrit-Owner: Todd Lipcon <t...@apache.org>
Gerrit-Reviewer: Adar Dembo <a...@cloudera.com>
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Todd Lipcon <t...@apache.org>

Reply via email to