Merge "Move ScopedUidChange to test_utils.h"
diff --git a/tests/binder_test.cpp b/tests/binder_test.cpp
index ba05813..2ca21ff 100644
--- a/tests/binder_test.cpp
+++ b/tests/binder_test.cpp
@@ -3516,23 +3516,6 @@
namespace {
-class ScopedUidChange {
- public:
- explicit ScopedUidChange(uid_t uid) : mInputUid(uid) {
- mStoredUid = geteuid();
- if (mInputUid == mStoredUid) return;
- EXPECT_TRUE(seteuid(uid) == 0);
- }
- ~ScopedUidChange() {
- if (mInputUid == mStoredUid) return;
- EXPECT_TRUE(seteuid(mStoredUid) == 0);
- }
-
- private:
- uid_t mInputUid;
- uid_t mStoredUid;
-};
-
void clearQueue(int tunFd) {
char buf[4096];
int ret;
diff --git a/tests/test_utils.h b/tests/test_utils.h
index de6c221..2564255 100644
--- a/tests/test_utils.h
+++ b/tests/test_utils.h
@@ -21,6 +21,9 @@
#include <string>
#include <vector>
+#include <gtest/gtest.h>
+#include <unistd.h>
+
int randomUid();
std::vector<std::string> runCommand(const std::string& command);
@@ -37,3 +40,21 @@
bool ipRouteExists(const char* ipVersion, const char* table,
const std::vector<std::string>& ipRouteSubstrings);
+
+// Require root (for seteuid).
+class ScopedUidChange {
+ public:
+ explicit ScopedUidChange(uid_t uid) : mInputUid(uid) {
+ mStoredUid = geteuid();
+ if (mInputUid == mStoredUid) return;
+ EXPECT_TRUE(seteuid(uid) == 0);
+ }
+ ~ScopedUidChange() {
+ if (mInputUid == mStoredUid) return;
+ EXPECT_TRUE(seteuid(mStoredUid) == 0);
+ }
+
+ private:
+ uid_t mInputUid;
+ uid_t mStoredUid;
+};