You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kudu.apache.org by al...@apache.org on 2017/05/31 20:14:42 UTC

[1/3] kudu git commit: KUDU-1914 Add positive .htpasswd test case

Repository: kudu
Updated Branches:
  refs/heads/master 3b6ab6449 -> ca2704c7d


KUDU-1914 Add positive .htpasswd test case

This commit adds a test to check if a proper user/password
pair allows a user to connect successfully to a Web UI with
.htpasswd support enabled.

Change-Id: Ia743ed41b9d68f9beb94c607e18613d0530526be
Reviewed-on: http://gerrit.cloudera.org:8080/7026
Tested-by: Kudu Jenkins
Reviewed-by: Todd Lipcon <to...@apache.org>


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/7f91a119
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/7f91a119
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/7f91a119

Branch: refs/heads/master
Commit: 7f91a11939e0e09bd02de2c1ac0ce4bce218f3d9
Parents: 3b6ab64
Author: Sam Okrent <sa...@cloudera.com>
Authored: Tue May 30 18:16:58 2017 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Wed May 31 18:31:54 2017 +0000

----------------------------------------------------------------------
 src/kudu/security/test/test_pass.cc | 6 +++---
 src/kudu/security/test/test_pass.h  | 4 ++++
 src/kudu/server/webserver-test.cc   | 8 +++++++-
 src/kudu/util/curl_util.cc          | 2 ++
 4 files changed, 16 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/7f91a119/src/kudu/security/test/test_pass.cc
----------------------------------------------------------------------
diff --git a/src/kudu/security/test/test_pass.cc b/src/kudu/security/test/test_pass.cc
index 9a0ab46..f99ab3c 100644
--- a/src/kudu/security/test/test_pass.cc
+++ b/src/kudu/security/test/test_pass.cc
@@ -28,9 +28,9 @@ namespace security {
 Status CreateTestHTPasswd(const string& dir,
                           string* passwd_file) {
 
-  // In the format of user:realm:digest. Digest is generated bases on
-  // password 'test'.
-  const char *kHTPasswd = "test:0.0.0.0:e4c02fbc8e89377a942ffc6b1bc3a566";
+  // In the format of user:realm:digest. Digest is generated based on
+  // user/password pair in kTestAuthString
+  const char *kHTPasswd = "test:mydomain.com:8b6f595afb3c037b7bd79b89d9576d06";
   *passwd_file = JoinPathSegments(dir, "test.passwd");
   RETURN_NOT_OK(WriteStringToFile(Env::Default(), kHTPasswd, *passwd_file));
   return Status::OK();

http://git-wip-us.apache.org/repos/asf/kudu/blob/7f91a119/src/kudu/security/test/test_pass.h
----------------------------------------------------------------------
diff --git a/src/kudu/security/test/test_pass.h b/src/kudu/security/test/test_pass.h
index c0974d0..5f730fe 100644
--- a/src/kudu/security/test/test_pass.h
+++ b/src/kudu/security/test/test_pass.h
@@ -24,6 +24,10 @@
 namespace kudu {
 namespace security {
 
+// Username and password for HTTP authentication, corresponding to
+// .htpasswd created by CreateTestHTPasswd()
+const std::string kTestAuthString = "test:test";
+
 // Creates .htpasswd for HTTP basic authentication in the format
 // of 'user:realm:digest', returning the path in '*passwd_file'.
 Status CreateTestHTPasswd(const std::string &dir,

http://git-wip-us.apache.org/repos/asf/kudu/blob/7f91a119/src/kudu/server/webserver-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/server/webserver-test.cc b/src/kudu/server/webserver-test.cc
index 8a2c541..c29c9aa 100644
--- a/src/kudu/server/webserver-test.cc
+++ b/src/kudu/server/webserver-test.cc
@@ -111,12 +111,18 @@ class PasswdWebserverTest : public WebserverTest {
 
 // Send a HTTP request with no username and password. It should reject
 // the request as the .htpasswd is presented to webserver.
-TEST_F(PasswdWebserverTest, TestPasswd) {
+TEST_F(PasswdWebserverTest, TestPasswdMissing) {
   Status status = curl_.FetchURL(strings::Substitute("http://$0/", addr_.ToString()),
                                  &buf_);
   ASSERT_EQ("Remote error: HTTP 401", status.ToString());
 }
 
+TEST_F(PasswdWebserverTest, TestPasswdPresent) {
+  string auth_url = strings::Substitute("http://$0@$1/", security::kTestAuthString,
+                                        addr_.ToString());
+  ASSERT_OK(curl_.FetchURL(auth_url, &buf_));
+}
+
 TEST_F(WebserverTest, TestIndexPage) {
   curl_.set_return_headers(true);
   ASSERT_OK(curl_.FetchURL(strings::Substitute("http://$0/", addr_.ToString()),

http://git-wip-us.apache.org/repos/asf/kudu/blob/7f91a119/src/kudu/util/curl_util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/util/curl_util.cc b/src/kudu/util/curl_util.cc
index 6211834..3e8e591 100644
--- a/src/kudu/util/curl_util.cc
+++ b/src/kudu/util/curl_util.cc
@@ -89,6 +89,8 @@ Status EasyCurl::DoRequest(const std::string& url,
                                                   post_data->c_str())));
   }
 
+  RETURN_NOT_OK(TranslateError(curl_easy_setopt(curl_, CURLOPT_HTTPAUTH, CURLAUTH_ANY)));
+
   RETURN_NOT_OK(TranslateError(curl_easy_perform(curl_)));
   long rc; // NOLINT(runtime/int) curl wants a long
   RETURN_NOT_OK(TranslateError(curl_easy_getinfo(curl_, CURLINFO_RESPONSE_CODE, &rc)));


[3/3] kudu git commit: [tests] clean-up on kudu::client::ScanToStrings

Posted by al...@apache.org.
[tests] clean-up on kudu::client::ScanToStrings

With this patch, kudu::client::ScanToStrings() returns Status.
The new signature is more convenient for localizing scan errors, if any.

Change-Id: I8e7ba56d2e946c1ac9a4db2ef3a542f0a118471d
Reviewed-on: http://gerrit.cloudera.org:8080/7027
Reviewed-by: Todd Lipcon <to...@apache.org>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/ca2704c7
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/ca2704c7
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/ca2704c7

Branch: refs/heads/master
Commit: ca2704c7dd46b9dbbafa89e68fe977259448b8fa
Parents: 3b934ae
Author: Alexey Serbin <as...@cloudera.com>
Authored: Tue May 30 23:53:05 2017 -0700
Committer: Alexey Serbin <as...@cloudera.com>
Committed: Wed May 31 20:11:24 2017 +0000

----------------------------------------------------------------------
 src/kudu/client/client-test-util.cc             |  9 +++---
 src/kudu/client/client-test-util.h              |  9 +++---
 src/kudu/client/client-test.cc                  | 30 ++++++++++----------
 .../alter_table-randomized-test.cc              |  2 +-
 src/kudu/integration-tests/alter_table-test.cc  |  2 +-
 .../integration-tests/client-stress-test.cc     |  2 +-
 .../flex_partitioning-itest.cc                  | 28 +++++++++---------
 7 files changed, 41 insertions(+), 41 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/client/client-test-util.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.cc b/src/kudu/client/client-test-util.cc
index 4d6a813..32a4020 100644
--- a/src/kudu/client/client-test-util.cc
+++ b/src/kudu/client/client-test-util.cc
@@ -59,7 +59,7 @@ void ScanTableToStrings(KuduTable* table, vector<string>* row_strings) {
   // of the retry code below.
   ASSERT_OK(scanner.SetSelection(KuduClient::LEADER_ONLY));
   ASSERT_OK(scanner.SetTimeoutMillis(15000));
-  ScanToStrings(&scanner, row_strings);
+  ASSERT_OK(ScanToStrings(&scanner, row_strings));
 }
 
 int64_t CountTableRows(KuduTable* table) {
@@ -111,15 +111,16 @@ Status CountRowsWithRetries(KuduScanner* scanner, size_t* row_count) {
   return Status::OK();
 }
 
-void ScanToStrings(KuduScanner* scanner, vector<string>* row_strings) {
-  ASSERT_OK(scanner->Open());
+Status ScanToStrings(KuduScanner* scanner, vector<string>* row_strings) {
+  RETURN_NOT_OK(scanner->Open());
   vector<KuduRowResult> rows;
   while (scanner->HasMoreRows()) {
-    ASSERT_OK(scanner->NextBatch(&rows));
+    RETURN_NOT_OK(scanner->NextBatch(&rows));
     for (const KuduRowResult& row : rows) {
       row_strings->push_back(row.ToString());
     }
   }
+  return Status::OK();
 }
 
 KuduSchema KuduSchemaFromSchema(const Schema& schema) {

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/client/client-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test-util.h b/src/kudu/client/client-test-util.h
index 7faed62..f3ff1f6 100644
--- a/src/kudu/client/client-test-util.h
+++ b/src/kudu/client/client-test-util.h
@@ -14,8 +14,8 @@
 // KIND, either express or implied.  See the License for the
 // specific language governing permissions and limitations
 // under the License.
-#ifndef KUDU_CLIENT_CLIENT_TEST_UTIL_H
-#define KUDU_CLIENT_CLIENT_TEST_UTIL_H
+
+#pragma once
 
 #include <string>
 #include <vector>
@@ -54,12 +54,11 @@ int64_t CountTableRows(KuduTable* table);
 // count. The scan operations are retried a few times in case of a timeout.
 Status CountRowsWithRetries(KuduScanner* scanner, size_t* row_count);
 
-void ScanToStrings(KuduScanner* scanner, std::vector<std::string>* row_strings);
+Status ScanToStrings(KuduScanner* scanner,
+                     std::vector<std::string>* row_strings) WARN_UNUSED_RESULT;
 
 // Convert a kudu::Schema to a kudu::client::KuduSchema.
 KuduSchema KuduSchemaFromSchema(const Schema& schema);
 
 } // namespace client
 } // namespace kudu
-
-#endif /* KUDU_CLIENT_CLIENT_TEST_UTIL_H */

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/client/client-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/client/client-test.cc b/src/kudu/client/client-test.cc
index a6c0f03..8e79e32 100644
--- a/src/kudu/client/client-test.cc
+++ b/src/kudu/client/client-test.cc
@@ -1346,7 +1346,7 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
     vector<string> rows;
     KuduScanner scanner(table.get());
     ASSERT_OK(scanner.SetFaultTolerant());
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
     ASSERT_EQ(200, rows.size());
     ASSERT_EQ(R"((int32 key=0, int32 int_val=0, string string_val="hello 0",)"
@@ -1361,7 +1361,7 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
     ASSERT_OK(scanner.SetFaultTolerant());
     ASSERT_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
               "key", KuduPredicate::GREATER_EQUAL, KuduValue::FromInt(100))));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
     ASSERT_EQ(100, rows.size());
     ASSERT_EQ(R"((int32 key=200, int32 int_val=400, string string_val="hello 200",)"
@@ -1376,7 +1376,7 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
     ASSERT_OK(scanner.SetFaultTolerant());
     ASSERT_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
               "key", KuduPredicate::LESS_EQUAL, KuduValue::FromInt(199))));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
     ASSERT_EQ(100, rows.size());
     ASSERT_EQ(R"((int32 key=0, int32 int_val=0, string string_val="hello 0",)"
@@ -1391,9 +1391,9 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
     ASSERT_OK(scanner.SetFaultTolerant());
     ASSERT_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
               "key", KuduPredicate::LESS_EQUAL, KuduValue::FromInt(-1))));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
-    ASSERT_EQ(0, rows.size());
+    ASSERT_TRUE(rows.empty());
   }
 
   { // key >= 120 && key <= 180
@@ -1404,9 +1404,9 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
               "key", KuduPredicate::GREATER_EQUAL, KuduValue::FromInt(120))));
     ASSERT_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
               "key", KuduPredicate::LESS_EQUAL, KuduValue::FromInt(180))));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
-    ASSERT_EQ(0, rows.size());
+    ASSERT_TRUE(rows.empty());
   }
 
   { // key >= 300
@@ -1415,9 +1415,9 @@ TEST_F(ClientTest, TestNonCoveringRangePartitions) {
     ASSERT_OK(scanner.SetFaultTolerant());
     ASSERT_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
               "key", KuduPredicate::GREATER_EQUAL, KuduValue::FromInt(300))));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
 
-    ASSERT_EQ(0, rows.size());
+    ASSERT_TRUE(rows.empty());
   }
 }
 
@@ -1720,7 +1720,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 8));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(8 - 5, rows.size());
     EXPECT_EQ(all_rows[5], rows.front());
     EXPECT_EQ(all_rows[7], rows.back());
@@ -1734,7 +1734,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 15));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(15 - 5, rows.size());
     EXPECT_EQ(all_rows[5], rows.front());
     EXPECT_EQ(all_rows[14], rows.back());
@@ -1748,7 +1748,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 20));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(20 - 15, rows.size());
     EXPECT_EQ(all_rows[15], rows.front());
     EXPECT_EQ(all_rows[19], rows.back());
@@ -1760,7 +1760,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 5));
     ASSERT_OK(scanner.AddLowerBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(95, rows.size());
     EXPECT_EQ(all_rows[5], rows.front());
     EXPECT_EQ(all_rows[99], rows.back());
@@ -1772,7 +1772,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 5));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(5, rows.size());
     EXPECT_EQ(all_rows[0], rows.front());
     EXPECT_EQ(all_rows[4], rows.back());
@@ -1784,7 +1784,7 @@ TEST_F(ClientTest, TestScanWithEncodedRangePredicate) {
     CHECK_OK(row->SetInt32(0, 15));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*row));
     vector<string> rows;
-    ASSERT_NO_FATAL_FAILURE(ScanToStrings(&scanner, &rows));
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
     ASSERT_EQ(15, rows.size());
     EXPECT_EQ(all_rows[0], rows.front());
     EXPECT_EQ(all_rows[14], rows.back());

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/integration-tests/alter_table-randomized-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/alter_table-randomized-test.cc b/src/kudu/integration-tests/alter_table-randomized-test.cc
index 4e125f7..c9af5e2 100644
--- a/src/kudu/integration-tests/alter_table-randomized-test.cc
+++ b/src/kudu/integration-tests/alter_table-randomized-test.cc
@@ -601,7 +601,7 @@ struct MirrorTable {
       ASSERT_OK(scanner.SetSelection(KuduClient::LEADER_ONLY));
       ASSERT_OK(scanner.SetFaultTolerant());
       scanner.SetTimeoutMillis(60000);
-      NO_FATALS(ScanToStrings(&scanner, &rows));
+      ASSERT_OK(ScanToStrings(&scanner, &rows));
     }
 
     // Then get our mock table.

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/integration-tests/alter_table-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/alter_table-test.cc b/src/kudu/integration-tests/alter_table-test.cc
index 03d2395..3360271 100644
--- a/src/kudu/integration-tests/alter_table-test.cc
+++ b/src/kudu/integration-tests/alter_table-test.cc
@@ -1041,7 +1041,7 @@ TEST_F(AlterTableTest, TestReadHistoryAfterAlter) {
   // Delete then is assigned that timestamp.
   ASSERT_OK(scanner.SetSnapshotRaw(ts1 - 1));
   vector<string> row_strings;
-  client::ScanToStrings(&scanner, &row_strings);
+  ASSERT_OK(client::ScanToStrings(&scanner, &row_strings));
   ASSERT_EQ(1, row_strings.size());
   ASSERT_EQ("(int32 c0=0, int32 c1=0, int32 c2=12345)", row_strings[0]);
 }

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/integration-tests/client-stress-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/client-stress-test.cc b/src/kudu/integration-tests/client-stress-test.cc
index 43cc2da..e909b1a 100644
--- a/src/kudu/integration-tests/client-stress-test.cc
+++ b/src/kudu/integration-tests/client-stress-test.cc
@@ -78,7 +78,7 @@ class ClientStressTest : public KuduTest {
     CHECK_OK(scanner.AddConjunctPredicate(table->NewComparisonPredicate(
         "key", client::KuduPredicate::GREATER_EQUAL,
         client::KuduValue::FromInt(start_key))));
-    ScanToStrings(&scanner, &rows);
+    CHECK_OK(ScanToStrings(&scanner, &rows));
   }
 
   virtual bool multi_master() const {

http://git-wip-us.apache.org/repos/asf/kudu/blob/ca2704c7/src/kudu/integration-tests/flex_partitioning-itest.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/flex_partitioning-itest.cc b/src/kudu/integration-tests/flex_partitioning-itest.cc
index 32daa2b..7f90511 100644
--- a/src/kudu/integration-tests/flex_partitioning-itest.cc
+++ b/src/kudu/integration-tests/flex_partitioning-itest.cc
@@ -327,21 +327,21 @@ Status FlexPartitioningITest::InsertRows(const RangePartitionOptions& range_part
 
 void FlexPartitioningITest::CheckScanWithColumnPredicate(Slice col_name, int lower, int upper) {
   KuduScanner scanner(table_.get());
-  CHECK_OK(scanner.SetTimeoutMillis(60000));
-  CHECK_OK(scanner.AddConjunctPredicate(table_->NewComparisonPredicate(
+  ASSERT_OK(scanner.SetTimeoutMillis(60000));
+  ASSERT_OK(scanner.AddConjunctPredicate(table_->NewComparisonPredicate(
       col_name, KuduPredicate::GREATER_EQUAL, KuduValue::FromInt(lower))));
-  CHECK_OK(scanner.AddConjunctPredicate(table_->NewComparisonPredicate(
+  ASSERT_OK(scanner.AddConjunctPredicate(table_->NewComparisonPredicate(
       col_name, KuduPredicate::LESS_EQUAL, KuduValue::FromInt(upper))));
 
   vector<string> rows;
-  ScanToStrings(&scanner, &rows);
+  ASSERT_OK(ScanToStrings(&scanner, &rows));
   std::sort(rows.begin(), rows.end());
 
   // Manually evaluate the predicate against the data we think we inserted.
   vector<string> expected_rows;
   for (auto& row : inserted_rows_) {
     int32_t val;
-    CHECK_OK(row->GetInt32(col_name, &val));
+    ASSERT_OK(row->GetInt32(col_name, &val));
     if (val >= lower && val <= upper) {
       expected_rows.push_back("(" + row->ToString() + ")");
     }
@@ -357,23 +357,23 @@ void FlexPartitioningITest::CheckScanWithColumnPredicate(Slice col_name, int low
 void FlexPartitioningITest::CheckScanTokensWithColumnPredicate(
     Slice col_name, int lower, int upper, const vector<string>& expected_rows) {
   KuduScanTokenBuilder builder(table_.get());
-  CHECK_OK(builder.SetTimeoutMillis(60000));
+  ASSERT_OK(builder.SetTimeoutMillis(60000));
 
-  CHECK_OK(builder.AddConjunctPredicate(table_->NewComparisonPredicate(
+  ASSERT_OK(builder.AddConjunctPredicate(table_->NewComparisonPredicate(
       col_name, KuduPredicate::GREATER_EQUAL, KuduValue::FromInt(lower))));
-  CHECK_OK(builder.AddConjunctPredicate(table_->NewComparisonPredicate(
+  ASSERT_OK(builder.AddConjunctPredicate(table_->NewComparisonPredicate(
       col_name, KuduPredicate::LESS_EQUAL, KuduValue::FromInt(upper))));
 
   vector<KuduScanToken*> tokens;
   ElementDeleter DeleteTable(&tokens);
-  CHECK_OK(builder.Build(&tokens));
+  ASSERT_OK(builder.Build(&tokens));
 
   vector<string> rows;
   for (auto token : tokens) {
     KuduScanner* scanner_ptr;
-    CHECK_OK(token->IntoKuduScanner(&scanner_ptr));
+    ASSERT_OK(token->IntoKuduScanner(&scanner_ptr));
     unique_ptr<KuduScanner> scanner(scanner_ptr);
-    ScanToStrings(scanner.get(), &rows);
+    ASSERT_OK(ScanToStrings(scanner.get(), &rows));
   }
   std::sort(rows.begin(), rows.end());
 
@@ -387,7 +387,7 @@ void FlexPartitioningITest::CheckPKRangeScan(int lower, int upper) {
   ASSERT_OK(scanner.AddLowerBound(*inserted_rows_[lower]));
   ASSERT_OK(scanner.AddExclusiveUpperBound(*inserted_rows_[upper]));
   vector<string> rows;
-  ScanToStrings(&scanner, &rows);
+  ASSERT_OK(ScanToStrings(&scanner, &rows));
   std::sort(rows.begin(), rows.end());
 
   vector<string> expected_rows;
@@ -419,7 +419,7 @@ void FlexPartitioningITest::CheckPartitionKeyRangeScan() {
     scanner.SetTimeoutMillis(60000);
     ASSERT_OK(scanner.AddLowerBoundPartitionKeyRaw(partition_key_start));
     ASSERT_OK(scanner.AddExclusiveUpperBoundPartitionKeyRaw(partition_key_end));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
   }
   std::sort(rows.begin(), rows.end());
 
@@ -454,7 +454,7 @@ void FlexPartitioningITest::CheckPartitionKeyRangeScanWithPKRange(int lower, int
     ASSERT_OK(scanner.AddExclusiveUpperBoundPartitionKeyRaw(partition_key_end));
     ASSERT_OK(scanner.AddLowerBound(*inserted_rows_[lower]));
     ASSERT_OK(scanner.AddExclusiveUpperBound(*inserted_rows_[upper]));
-    ScanToStrings(&scanner, &rows);
+    ASSERT_OK(ScanToStrings(&scanner, &rows));
   }
   std::sort(rows.begin(), rows.end());
 


[2/3] kudu git commit: Move CreateTableForTesting into registration-test

Posted by al...@apache.org.
Move CreateTableForTesting into registration-test

This utility function was only used in one spot, so moving it out of the
header.

Change-Id: Id72a37b2dee05db65f27c27d52b0f18dd5c489f2
Reviewed-on: http://gerrit.cloudera.org:8080/6961
Reviewed-by: Alexey Serbin <as...@cloudera.com>
Tested-by: Kudu Jenkins


Project: http://git-wip-us.apache.org/repos/asf/kudu/repo
Commit: http://git-wip-us.apache.org/repos/asf/kudu/commit/3b934aeb
Tree: http://git-wip-us.apache.org/repos/asf/kudu/tree/3b934aeb
Diff: http://git-wip-us.apache.org/repos/asf/kudu/diff/3b934aeb

Branch: refs/heads/master
Commit: 3b934aeb240059907f113127072b04db05f9c880
Parents: 7f91a11
Author: Todd Lipcon <to...@cloudera.com>
Authored: Mon May 22 19:19:08 2017 -0700
Committer: Todd Lipcon <to...@apache.org>
Committed: Wed May 31 19:59:26 2017 +0000

----------------------------------------------------------------------
 src/kudu/integration-tests/registration-test.cc | 69 ++++++++++++++++++++
 src/kudu/master/master-test-util.h              | 59 -----------------
 2 files changed, 69 insertions(+), 59 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kudu/blob/3b934aeb/src/kudu/integration-tests/registration-test.cc
----------------------------------------------------------------------
diff --git a/src/kudu/integration-tests/registration-test.cc b/src/kudu/integration-tests/registration-test.cc
index 6492adf..a478616 100644
--- a/src/kudu/integration-tests/registration-test.cc
+++ b/src/kudu/integration-tests/registration-test.cc
@@ -56,11 +56,80 @@ namespace kudu {
 using std::vector;
 using std::shared_ptr;
 using std::string;
+
+using master::CatalogManager;
+using master::CreateTableRequestPB;
+using master::CreateTableResponsePB;
+using master::GetTableLocationsResponsePB;
+using master::GetTableSchemaRequestPB;
+using master::GetTableSchemaResponsePB;
+using master::IsCreateTableDoneRequestPB;
+using master::IsCreateTableDoneResponsePB;
 using master::MiniMaster;
 using master::TSDescriptor;
 using master::TabletLocationsPB;
 using tserver::MiniTabletServer;
 
+void CreateTableForTesting(MiniMaster* mini_master,
+                           const string& table_name,
+                           const Schema& schema,
+                           string *tablet_id) {
+  {
+    CreateTableRequestPB req;
+    CreateTableResponsePB resp;
+
+    req.set_name(table_name);
+    req.set_num_replicas(1);
+    ASSERT_OK(SchemaToPB(schema, req.mutable_schema()));
+    CatalogManager* catalog = mini_master->master()->catalog_manager();
+    CatalogManager::ScopedLeaderSharedLock l(catalog);
+    ASSERT_OK(l.first_failed_status());
+    ASSERT_OK(catalog->CreateTable(&req, &resp, NULL));
+  }
+
+  int wait_time = 1000;
+  bool is_table_created = false;
+  for (int i = 0; i < 80; ++i) {
+    IsCreateTableDoneRequestPB req;
+    IsCreateTableDoneResponsePB resp;
+
+    req.mutable_table()->set_table_name(table_name);
+    CatalogManager* catalog = mini_master->master()->catalog_manager();
+    {
+      CatalogManager::ScopedLeaderSharedLock l(catalog);
+      ASSERT_OK(l.first_failed_status());
+      ASSERT_OK(catalog->IsCreateTableDone(&req, &resp));
+    }
+    if (resp.done()) {
+      is_table_created = true;
+      break;
+    }
+
+    VLOG(1) << "Waiting for table '" << table_name << "'to be created";
+
+    SleepFor(MonoDelta::FromMicroseconds(wait_time));
+    wait_time = std::min(wait_time * 5 / 4, 1000000);
+  }
+  ASSERT_TRUE(is_table_created);
+
+  {
+    GetTableSchemaRequestPB req;
+    GetTableSchemaResponsePB resp;
+    req.mutable_table()->set_table_name(table_name);
+    CatalogManager* catalog = mini_master->master()->catalog_manager();
+    CatalogManager::ScopedLeaderSharedLock l(catalog);
+    ASSERT_OK(l.first_failed_status());
+    ASSERT_OK(catalog->GetTableSchema(&req, &resp));
+    ASSERT_TRUE(resp.create_table_done());
+  }
+
+  GetTableLocationsResponsePB resp;
+  ASSERT_OK(WaitForRunningTabletCount(mini_master, table_name, 1, &resp));
+  *tablet_id = resp.tablet_locations(0).tablet_id();
+  LOG(INFO) << "Got tablet " << *tablet_id << " for table " << table_name;
+}
+
+
 // Tests for the Tablet Server registering with the Master,
 // and the master maintaining the tablet descriptor.
 class RegistrationTest : public KuduTest {

http://git-wip-us.apache.org/repos/asf/kudu/blob/3b934aeb/src/kudu/master/master-test-util.h
----------------------------------------------------------------------
diff --git a/src/kudu/master/master-test-util.h b/src/kudu/master/master-test-util.h
index 44a2874..7e7f021 100644
--- a/src/kudu/master/master-test-util.h
+++ b/src/kudu/master/master-test-util.h
@@ -68,65 +68,6 @@ Status WaitForRunningTabletCount(MiniMaster* mini_master,
   return Status::RuntimeError("Unreachable statement"); // Suppress compiler warnings.
 }
 
-void CreateTableForTesting(MiniMaster* mini_master,
-                           const string& table_name,
-                           const Schema& schema,
-                           string *tablet_id) {
-  {
-    CreateTableRequestPB req;
-    CreateTableResponsePB resp;
-
-    req.set_name(table_name);
-    req.set_num_replicas(1);
-    ASSERT_OK(SchemaToPB(schema, req.mutable_schema()));
-    CatalogManager* catalog = mini_master->master()->catalog_manager();
-    CatalogManager::ScopedLeaderSharedLock l(catalog);
-    ASSERT_OK(l.first_failed_status());
-    ASSERT_OK(catalog->CreateTable(&req, &resp, NULL));
-  }
-
-  int wait_time = 1000;
-  bool is_table_created = false;
-  for (int i = 0; i < 80; ++i) {
-    IsCreateTableDoneRequestPB req;
-    IsCreateTableDoneResponsePB resp;
-
-    req.mutable_table()->set_table_name(table_name);
-    CatalogManager* catalog = mini_master->master()->catalog_manager();
-    {
-      CatalogManager::ScopedLeaderSharedLock l(catalog);
-      ASSERT_OK(l.first_failed_status());
-      ASSERT_OK(catalog->IsCreateTableDone(&req, &resp));
-    }
-    if (resp.done()) {
-      is_table_created = true;
-      break;
-    }
-
-    VLOG(1) << "Waiting for table '" << table_name << "'to be created";
-
-    SleepFor(MonoDelta::FromMicroseconds(wait_time));
-    wait_time = std::min(wait_time * 5 / 4, 1000000);
-  }
-  ASSERT_TRUE(is_table_created);
-
-  {
-    GetTableSchemaRequestPB req;
-    GetTableSchemaResponsePB resp;
-    req.mutable_table()->set_table_name(table_name);
-    CatalogManager* catalog = mini_master->master()->catalog_manager();
-    CatalogManager::ScopedLeaderSharedLock l(catalog);
-    ASSERT_OK(l.first_failed_status());
-    ASSERT_OK(catalog->GetTableSchema(&req, &resp));
-    ASSERT_TRUE(resp.create_table_done());
-  }
-
-  GetTableLocationsResponsePB resp;
-  ASSERT_OK(WaitForRunningTabletCount(mini_master, table_name, 1, &resp));
-  *tablet_id = resp.tablet_locations(0).tablet_id();
-  LOG(INFO) << "Got tablet " << *tablet_id << " for table " << table_name;
-}
-
 } // namespace master
 } // namespace kudu