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;
+};
