[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-02 Thread Grant Henke (Code Review)
Grant Henke has submitted this change and it was merged. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
Reviewed-on: http://gerrit.cloudera.org:8080/11547
Tested-by: Kudu Jenkins
Reviewed-by: Adar Dembo 
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
D java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
A java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apac

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-02 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..


Patch Set 7: Code-Review+2


--
To view, visit http://gerrit.cloudera.org:8080/11547
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
Gerrit-Change-Number: 11547
Gerrit-PatchSet: 7
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 02 Oct 2018 18:48:19 +
Gerrit-HasComments: No


[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-02 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..


Patch Set 1:

(1 comment)

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java
File java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java@43
PS1, Line 43: public class KuduRule extends ExternalResource {
> I don't think so. Add a class-level comment with sample usage and that shou
Done



--
To view, visit http://gerrit.cloudera.org:8080/11547
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
Gerrit-Change-Number: 11547
Gerrit-PatchSet: 1
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Tue, 02 Oct 2018 18:24:59 +
Gerrit-HasComments: Yes


[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-02 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
D java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
A java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKu

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..


Patch Set 6:

(1 comment)

> I agree we could make the rule more flexible to not require setting up a 
> cluster. Given this patch is fairly large and I have a few changes that need 
> this, do you mind if I do that as a follow on change?

Sure. You'll have to remove the RetryRules you've sprinkled in, but that's very 
little churn so it's fine with me.

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java
File java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java@43
PS1, Line 43:
> I agree, naming this was hard for me and I expected to get some feedback on
I don't think so. Add a class-level comment with sample usage and that should 
be good enough.



--
To view, visit http://gerrit.cloudera.org:8080/11547
To unsubscribe, visit http://gerrit.cloudera.org:8080/settings

Gerrit-Project: kudu
Gerrit-Branch: master
Gerrit-MessageType: comment
Gerrit-Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
Gerrit-Change-Number: 11547
Gerrit-PatchSet: 6
Gerrit-Owner: Grant Henke 
Gerrit-Reviewer: Adar Dembo 
Gerrit-Reviewer: Grant Henke 
Gerrit-Reviewer: Kudu Jenkins
Gerrit-Reviewer: Mike Percy 
Gerrit-Comment-Date: Mon, 01 Oct 2018 23:27:17 +
Gerrit-HasComments: Yes


[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
R java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/ap

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
R java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/ap

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
R java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/ap

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
R java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/ku

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Hello Mike Percy, Kudu Jenkins, Adar Dembo,

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

http://gerrit.cloudera.org:8080/11547

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

Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M java/kudu-backup/src/test/scala/org/apache/kudu/backup/TestKuduBackup.scala
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
R java/kudu-client/src/test/java/org/apache/kudu/test/KuduTestHarness.java
M java/kudu-client/src/test/java/org/apache/kudu/util/KuduBinaryLocator.java
M java/kudu-client/src/test/java/org/apache/kudu/util/TestNetUtil.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/j

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Grant Henke (Code Review)
Grant Henke has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..


Patch Set 1:

(21 comments)

I agree we could make the rule more flexible to not require setting up a 
cluster. Given this patch is fairly large and I have a few changes that need 
this, do you mind if I do that as a follow on change?

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
File 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java@49
PS1, Line 49:   public KuduRule kudu = new KuduRule();
> 'kudu' is a pretty vague noun to use for this thing. If you end up renaming
I agree.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java@44
PS1, Line 44:   public LocatedTablet(RemoteTablet tablet) {
> Hmm, doesn't this suggest that applications could construct these? But that
Done


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java@56
PS1, Line 56: public class RemoteTablet implements Comparable {
> Likewise, can we annotate this as being public only to support KuduRule bei
We annotate that RemoteTable is a private API. I don't think I should note the 
exact location it's used because that is documentation easily subject to being 
wrong overtime and finding where it is used is easy.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java@54
PS1, Line 54:   private KuduClient client;
:   private AsyncKuduClient asyncClient;
> What's the purpose of this indirection? Why not go to 'kudu' directly for t
Mainly this prevented me from needing modify a ton of test cases. Any new tests 
would likely just use the client directly from the harness without this 
indirection.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java@35
PS1, Line 35: public class TestConnectToCluster {
> This test also doesn't use the retry rule.
Done


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java@49
PS1, Line 49: MiniKuduCluster cluster = new 
MiniKuduCluster.MiniKuduClusterBuilder()
> It'd be safer for these tests to get the base cluster builder and modify it
I didn't change this, but it could be address in a follow on patch.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java@30
PS1, Line 30: public class TestConnectionCache {
> No retry rule.
Done


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java@28
PS1, Line 28: public class TestMiniKuduCluster {
> This test isn't configured with KuduRule, which means it's also not configu
Done


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
File java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java@27
PS1, Line 27: public class TestNegotiation {
> No retry rule.
I planned to migrate any tests not currently using BaseKuduTest/KuduRule in 
follow up patches.

I will add a retry rule for now, but it should get replaced.

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-10-01 Thread Adar Dembo (Code Review)
Adar Dembo has posted comments on this change. ( 
http://gerrit.cloudera.org:8080/11547 )

Change subject: [test] Move BaseKuduTest to a Junit Rule
..


Patch Set 1:

(21 comments)

I think composing RetryRule within KuduRule makes sense, but rather than 
leaving it up to authors to decide which to use, I think it'd be simpler if we 
enforced (in code review) that every test use KuduRule.

Which means if it's important to allow tests to manage their own miniclusters, 
KuduRule should be modified to support not building a cluster. But, I suspect 
it'd be more clean to further parameterize KuduRule such that all custom 
minicluster management could be done there.

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
File 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java@49
PS1, Line 49:   public KuduRule kudu = new KuduRule();
'kudu' is a pretty vague noun to use for this thing. If you end up renaming 
KuduRule to KuduTestFoo as I suggested in a different comment, I'd use the foo 
as the name of the instance. So for example if you use KuduTestHarness, this 
should be called 'harness'.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java@44
PS1, Line 44:   public LocatedTablet(RemoteTablet tablet) {
Hmm, doesn't this suggest that applications could construct these? But that 
would be useless since there are no public APIs that accept LocatedTablets.

Can you annotate this in a way that suggests that it's only for tests?


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
File java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java@56
PS1, Line 56: public class RemoteTablet implements Comparable {
Likewise, can we annotate this as being public only to support KuduRule being 
in a separate package?


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java@54
PS1, Line 54:   private KuduClient client;
:   private AsyncKuduClient asyncClient;
What's the purpose of this indirection? Why not go to 'kudu' directly for the 
clients? I get that it's useful as shorthand, but when reviewing this my first 
thought was that these must be customized from the clients provided by 'kudu' 
in some way.

This applies to some of other other tests too.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java@35
PS1, Line 35: public class TestConnectToCluster {
This test also doesn't use the retry rule.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java@49
PS1, Line 49: MiniKuduCluster cluster = new 
MiniKuduCluster.MiniKuduClusterBuilder()
It'd be safer for these tests to get the base cluster builder and modify it. 
Granted, that'd have no real effect (since the base builder only sets the 
number of servers), but it'd avoid problems in the future if someone adds a 
property to the base builder expecting it to apply universally.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java@30
PS1, Line 30: public class TestConnectionCache {
No retry rule.


http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
File 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java:

http://gerrit.cloudera.org:8080/#/c/11547/1/java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java@28
PS1, Line 28: public class TestMiniKuduCluster {
This test isn't configured wit

[kudu-CR] [test] Move BaseKuduTest to a Junit Rule

2018-09-30 Thread Grant Henke (Code Review)
Grant Henke has uploaded this change for review. ( 
http://gerrit.cloudera.org:8080/11547


Change subject: [test] Move BaseKuduTest to a Junit Rule
..

[test] Move BaseKuduTest to a Junit Rule

This patch moves all of BaseKuduTest to a Junit Rule.
This avoids inheritance for tests and allows more
interesting test composition.

Additionally I added method level annotations
that can be used to modify the Kudu mini cluster
configs on a per test method basis. I changed
the tests in TestKuduClient to use the annotations,
and will migrate other tests in follow on patches.

Change-Id: I32c83b47a576377b924ea41dbeaf78ce2b75e4c4
---
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITExportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportCsv.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquet.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITImportParquetPreCheck.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITIntegrationTestBigLinkedList.java
M 
java/kudu-client-tools/src/test/java/org/apache/kudu/mapreduce/tools/ITRowCounter.java
M java/kudu-client/src/main/java/org/apache/kudu/client/AsyncKuduClient.java
M java/kudu-client/src/main/java/org/apache/kudu/client/LocatedTablet.java
M java/kudu-client/src/main/java/org/apache/kudu/client/RemoteTablet.java
D java/kudu-client/src/test/java/org/apache/kudu/client/BaseKuduTest.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/ITClientStress.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITNonFaultTolerantScanner.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/ITScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/MiniKuduCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAlterTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduClient.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAsyncKuduSession.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquire.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestAuthnTokenReacquireOpen.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestClientFailoverSupport.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectToCluster.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestConnectionCache.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestFlexiblePartitioning.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHandleTooBusy.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestHybridTime.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKeyEncoding.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduClient.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduSession.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestKuduTable.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMasterFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestMiniKuduCluster.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestMultipleLeaderFailover.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestNegotiation.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestPartitionPruner.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowErrors.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestRowResult.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanPredicate.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestScanToken.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestScannerMultiTablet.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurity.java
M 
java/kudu-client/src/test/java/org/apache/kudu/client/TestSecurityContextRealUser.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestStatistics.java
M java/kudu-client/src/test/java/org/apache/kudu/client/TestTimeouts.java
A java/kudu-client/src/test/java/org/apache/kudu/test/KuduRule.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/AvroKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KeyedKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/KuduSinkTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerParseErrorTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume/sink/RegexpKuduOperationsProducerTest.java
M 
java/kudu-flume-sink/src/test/java/org/apache/kudu/flume