This is an automated email from the ASF dual-hosted git repository.
alexey pushed a commit to branch branch-1.9.x
in repository https://gitbox.apache.org/repos/asf/kudu.git
commit 24341a7d2089921355aacb0eb0d8f2f4dc2a4e1b
Author: Alexey Serbin <alexey@apache.org>
AuthorDate: Thu Feb 14 12:17:43 2019 -0800
[tests] fix running tests under the super-user
Recently I found myself running Kudu tests as a super-user on a VM.
A couple of test failed, and this patch fixes that.
This is a test-only changelist, it doesn't change any functionality.
Change-Id: I05bf220ee8000209a3e36faa9f21fd43ab8bdc9f
Reviewed-on: http://gerrit.cloudera.org:8080/12486
Reviewed-by: Adar Dembo <adar@cloudera.com>
Tested-by: Kudu Jenkins
(cherry picked from commit 8f6d2f9a492d9ab3e92e6e24d2b9810ab108379a)
Reviewed-on: http://gerrit.cloudera.org:8080/12782
Reviewed-by: Andrew Wong <awong@cloudera.com>
---
src/kudu/rpc/negotiation-test.cc | 9 +++++++--
src/kudu/util/env-test.cc | 17 +++++++++++++----
2 files changed, 20 insertions(+), 6 deletions(-)
diff --git a/src/kudu/rpc/negotiation-test.cc b/src/kudu/rpc/negotiation-test.cc
index f3990ac..bebc5e9 100644
--- a/src/kudu/rpc/negotiation-test.cc
+++ b/src/kudu/rpc/negotiation-test.cc
@@ -1166,10 +1166,15 @@ TEST_F(TestNegotiation, TestPreflight) {
// Try with an inaccessible keytab.
CHECK_ERR(chmod(kt_path.c_str(), 0000));
s = ServerNegotiation::PreflightCheckGSSAPI("kudu");
- ASSERT_FALSE(s.ok());
+ if (geteuid() == 0) {
+ // The super-user can acess the 'inaccessible' keytab file anyway.
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ } else {
+ ASSERT_FALSE(s.ok()) << s.ToString();
#ifndef KRB5_VERSION_LE_1_10
- ASSERT_STR_MATCHES(s.ToString(), "error accessing keytab: Permission denied");
+ ASSERT_STR_MATCHES(s.ToString(), "error accessing keytab: Permission denied");
#endif
+ }
CHECK_ERR(unlink(kt_path.c_str()));
// Try with a keytab that has the wrong credentials.
diff --git a/src/kudu/util/env-test.cc b/src/kudu/util/env-test.cc
index 1c7f899..5bc1f0b 100644
--- a/src/kudu/util/env-test.cc
+++ b/src/kudu/util/env-test.cc
@@ -771,10 +771,15 @@ TEST_F(TestEnv, TestWalkBadPermissions) {
PCHECK(chmod(kTestPath.c_str(), stat_buf.st_mode) == 0);
});
- // A walk on a directory without execute permission should fail.
+ // A walk on a directory without execute permission should fail,
+ // unless the calling process has super-user's effective ID.
Status s = env_->Walk(kTestPath, Env::PRE_ORDER, Bind(&NoopTestWalkCb));
- ASSERT_TRUE(s.IsIOError());
- ASSERT_STR_CONTAINS(s.ToString(), "One or more errors occurred");
+ if (geteuid() == 0) {
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ } else {
+ ASSERT_TRUE(s.IsIOError()) << s.ToString();
+ ASSERT_STR_CONTAINS(s.ToString(), "One or more errors occurred");
+ }
}
static Status TestWalkErrorCb(int* num_calls,
@@ -836,7 +841,11 @@ TEST_F(TestEnv, TestGlobPermissionDenied) {
});
vector<string> matches;
Status s = env_->Glob(JoinPathSegments(dir, "*"), &matches);
- ASSERT_STR_MATCHES(s.ToString(), "IO error: glob failed for /.*: Permission denied");
+ if (geteuid() == 0) {
+ ASSERT_TRUE(s.ok()) << s.ToString();
+ } else {
+ ASSERT_STR_MATCHES(s.ToString(), "IO error: glob failed for /.*: Permission denied");
+ }
}
TEST_F(TestEnv, TestGetBlockSize) {
|