diff options
Diffstat (limited to 'cmds/statsd/tests/StatsService_test.cpp')
-rw-r--r-- | cmds/statsd/tests/StatsService_test.cpp | 39 |
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 |