summaryrefslogtreecommitdiff
path: root/cmds/statsd/tests/StatsService_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cmds/statsd/tests/StatsService_test.cpp')
-rw-r--r--cmds/statsd/tests/StatsService_test.cpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/cmds/statsd/tests/StatsService_test.cpp b/cmds/statsd/tests/StatsService_test.cpp
index a7b413666266..560fb9f02174 100644
--- a/cmds/statsd/tests/StatsService_test.cpp
+++ b/cmds/statsd/tests/StatsService_test.cpp
@@ -58,6 +58,45 @@ TEST(StatsServiceTest, TestAddConfig_invalid) {
service.addConfigurationChecked(123, 12345, {serialized.begin(), serialized.end()}));
}
+TEST(StatsServiceTest, TestGetUidFromArgs) {
+ Vector<String8> args;
+ args.push(String8("-1"));
+ args.push(String8("0"));
+ args.push(String8("1"));
+ args.push(String8("9999999999999999999999999999999999"));
+ args.push(String8("a1"));
+ args.push(String8(""));
+
+ int32_t uid;
+
+ StatsService service(nullptr);
+ service.mEngBuild = true;
+
+ // "-1"
+ EXPECT_FALSE(service.getUidFromArgs(args, 0, uid));
+
+ // "0"
+ EXPECT_TRUE(service.getUidFromArgs(args, 1, uid));
+ EXPECT_EQ(0, uid);
+
+ // "1"
+ EXPECT_TRUE(service.getUidFromArgs(args, 2, uid));
+ EXPECT_EQ(1, uid);
+
+ // "999999999999999999"
+ EXPECT_FALSE(service.getUidFromArgs(args, 3, uid));
+
+ // "a1"
+ EXPECT_FALSE(service.getUidFromArgs(args, 4, uid));
+
+ // ""
+ EXPECT_FALSE(service.getUidFromArgs(args, 5, uid));
+
+ // For a non-userdebug, uid "1" cannot be impersonated.
+ service.mEngBuild = false;
+ EXPECT_FALSE(service.getUidFromArgs(args, 2, uid));
+}
+
#else
GTEST_LOG_(INFO) << "This test does nothing.\n";
#endif