Skip to content

Conversation

@bharathv
Copy link
Contributor

@bharathv bharathv commented Jul 2, 2020

Adds the plumbing needed to run test-patch tooling from Yetus.

Example:

YETUS_ARGS=patch.diff bin/run_tests_with_yetus.sh (without docker)

RUN_IN_DOCKER=true YETUS_ARGS='--dirty-workspace patch.diff' bin/run_tests_with_yetus.sh
(with docker)

Sample output (with a few failing tests).

| Vote | Subsystem | Runtime | Comment

+---------------------------------------------------------------------------
| | | | Prechecks
+---------------------------------------------------------------------------
+---------------------------------------------------------------------------
| | | | master Compile Tests
+---------------------------------------------------------------------------
| +1 | CMakeLists.txt | 2m 9s | master passed
| +1 | compile | 0m 44s | master passed
+---------------------------------------------------------------------------
| | | | Patch Compile Tests
+---------------------------------------------------------------------------
| +1 | CMakeLists.txt | 2m 3s | the patch passed
| +1 | compile | 13m 54s | the patch passed
+---------------------------------------------------------------------------
| | | | Other Tests
+---------------------------------------------------------------------------
| -1 | unit | 0m 34s | root in the patch failed.
| | | 21m 1s |

          Reason | Tests

Failed CTEST tests | async-batch-rpc-retrying-test
| async-rpc-retrying-test
| client-test
| filter-test
| location-cache-retry-test
| location-cache-test
| scanner-test

Supports both docker and non-docker mode. Runs all the unit-tests
as a part of the test-patch run.

Follow on patches will add the necessary integration with Jenkins
for pre-commit builds.

@bharathv bharathv requested review from busbey, joshelser and ndimiduk July 2, 2020 21:57
@bharathv
Copy link
Contributor Author

bharathv commented Jul 2, 2020

@ndimiduk / @busbey Mind taking a look at this one? You folks are probably the most knowledgeable about Yetus related stuff, so appreciate any inputs. To give you some context, @phrocker and I are working on reviving hbase-native-client by fixing the build system and a ton of bugs and as a part of that I'm trying to add a precommit job for testing changes. Effort is tracked in HBASE-24537 and related jiras but I'm happy to fill you in on any additional context that is required. Also if you are interested, please take a look at the recent commits in the repo. Thanks.

@bharathv
Copy link
Contributor Author

bharathv commented Jul 7, 2020

Anyone has some free cycles to take a look at this patch? It should be fairly straight forward with some basic understanding of Yetus. There are some minor quirks with cmake integration but I can add more context as needed. Thank you.

@phrocker FYI. I'm not able to add you as a reviewer, so @ mentioning for heads up.

@bharathv bharathv changed the title HBASE-24642: Apache Yetus test-patch integration. HBASE-24642: Apache Yetus test-patch and Jenkins integration. Jul 9, 2020
Copy link
Contributor Author

@bharathv bharathv left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Updated the patch to include the Jenkins integration, its probably easier for reviewers to review them together.

Jenkins job: https://builds.apache.org/view/H-L/view/HBase/job/hbase-native-client-github-precommit/
Sample run (for output): bharathv#3 (see comments)

@phrocker
Copy link
Contributor

phrocker commented Jul 9, 2020

@bharathv I will take a look. sorry for the delay.

@bharathv
Copy link
Contributor Author

bharathv commented Jul 9, 2020

@phrocker No worries. How about we get this patch in before #6? That validates both the patches. Tests that the precommit is running well and also tests your patch in a clean environment.

Copy link
Contributor

@phrocker phrocker left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Lgtm!

Copy link
Member

@joshelser joshelser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, overall. Just some comments to clean up :)

fi
personality_enqueue_module . ${args}
}
## This is named so that yetus will check us right after running tests.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Whack these comments?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

Adds the plumbing needed to run test-patch tooling from Yetus.

Sample output (with a few failing tests).

| Vote |          Subsystem |  Runtime   | Comment
============================================================================
+---------------------------------------------------------------------------
|      |                    |            | Prechecks
+---------------------------------------------------------------------------
+---------------------------------------------------------------------------
|      |                    |            | master Compile Tests
+---------------------------------------------------------------------------
|  +1  |    CMakeLists.txt  |   2m  9s   | master passed
|  +1  |           compile  |   0m 44s   | master passed
+---------------------------------------------------------------------------
|      |                    |            | Patch Compile Tests
+---------------------------------------------------------------------------
|  +1  |    CMakeLists.txt  |   2m  3s   | the patch passed
|  +1  |           compile  |  13m 54s   | the patch passed
+---------------------------------------------------------------------------
|      |                    |            | Other Tests
+---------------------------------------------------------------------------
|  -1  |              unit  |   0m 34s   | root in the patch failed.
|      |                    |  21m  1s   |

              Reason | Tests
 Failed CTEST tests  |  async-batch-rpc-retrying-test
                     |  async-rpc-retrying-test
                     |  client-test
                     |  filter-test
                     |  location-cache-retry-test
                     |  location-cache-test
                     |  scanner-test

Supports both docker and non-docker mode. Runs all the unit-tests
as a part of the test-patch run.

Additionally adds the Jenkins integration needed to run the precommit
on Apache infra. To be hooked up with the following job

https://builds.apache.org/view/H-L/view/HBase/job/hbase-native-client-github-precommit/
@bharathv bharathv merged commit 931ecad into apache:master Jul 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants