1a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu/* 2a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Copyright 2015 The Android Open Source Project 3a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * 4a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Licensed under the Apache License, Version 2.0 (the "License"); 5a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * you may not use this file except in compliance with the License. 6a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * You may obtain a copy of the License at 7a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * 8a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * http://www.apache.org/licenses/LICENSE-2.0 9a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * 10a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * Unless required by applicable law or agreed to in writing, software 11a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * distributed under the License is distributed on an "AS IS" BASIS, 12a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * See the License for the specific language governing permissions and 14a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu * limitations under the License. 15a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu */ 16a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 17a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu//#define LOG_NDEBUG 0 18a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#define LOG_TAG "ServiceLog_test" 19a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include <utils/Log.h> 20a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 21a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include <gtest/gtest.h> 22a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 23a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu#include "ServiceLog.h" 24a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 25a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wunamespace android { 26a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 27a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wuclass ServiceLogTest : public ::testing::Test { 28a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wupublic: 29a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu ServiceLogTest() : mServiceLog(new ServiceLog(3)) { 30a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu } 31a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 32a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wuprotected: 33a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu sp<ServiceLog> mServiceLog; 34a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu}; 35a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 36a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua WuTEST_F(ServiceLogTest, addThenToString) { 37022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu String8 logString; 38022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu 39a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu mServiceLog->add(String8("log1")); 40022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(); 41022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log1")); 42022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 43022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu 44022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu static const char kTestLogPrefix[] = "testlogprefix: "; 45022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(kTestLogPrefix); 46022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains(kTestLogPrefix)); 47022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log1")); 48022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 49a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 50a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu mServiceLog->add(String8("log2")); 51022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(); 52022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log1")); 53022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log2")); 54022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 55a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 56a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu mServiceLog->add(String8("log3")); 57022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(); 58022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log1")); 59022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log2")); 60022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log3")); 61022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 62a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 63a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu mServiceLog->add(String8("log4")); 64022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(); 65022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_FALSE(logString.contains("log1")); 66022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log2")); 67022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log3")); 68022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log4")); 69022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 70a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 71a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu mServiceLog->add(String8("log5")); 72022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu logString = mServiceLog->toString(); 73022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_FALSE(logString.contains("log1")); 74022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_FALSE(logString.contains("log2")); 75022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log3")); 76022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log4")); 77022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu EXPECT_TRUE(logString.contains("log5")); 78022ed72e650f756288492ac7a10a7b41e0b14f82Ronghua Wu ALOGV("toString:\n%s", logString.string()); 79a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu} 80a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu 81a8ec8fcf6982ef158daf897faaab3e45285d0bf1Ronghua Wu} // namespace android 82