11a5a3217595b183deee7a31b25e77eeed707e381Kenny Root/* 21a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Copyright (C) 2007 The Android Open Source Project 31a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 41a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Licensed under the Apache License, Version 2.0 (the "License"); 51a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * you may not use this file except in compliance with the License. 61a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * You may obtain a copy of the License at 71a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 81a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * http://www.apache.org/licenses/LICENSE-2.0 91a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * 101a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * Unless required by applicable law or agreed to in writing, software 111a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * distributed under the License is distributed on an "AS IS" BASIS, 121a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * See the License for the specific language governing permissions and 141a5a3217595b183deee7a31b25e77eeed707e381Kenny Root * limitations under the License. 151a5a3217595b183deee7a31b25e77eeed707e381Kenny Root */ 161a5a3217595b183deee7a31b25e77eeed707e381Kenny Root 171a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.util; 189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.Assert; 209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase; 219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemProperties; 239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.PerformanceTestCase; 249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.Suppress; 259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log; 269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//This is an empty TestCase. 289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@Suppress 299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class LogTest extends TestCase { 309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String PROPERTY_TAG = "log.tag.LogTest"; 319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final String LOG_TAG = "LogTest"; 329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // TODO: remove this test once we uncomment out the following test. 359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testLogTestDummy() { 369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return; 379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project /* TODO: This test is commented out because we will not be able to set properities. Fix the test. 419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testIsLoggable() { 429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // First clear any SystemProperty setting for our test key. 439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, null); 449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project String value = SystemProperties.get(PROPERTY_TAG); 469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(value == null || value.length() == 0); 479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Check to make sure that all levels expect for INFO, WARN, ERROR, and ASSERT are loggable. 499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO)); 529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN)); 539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be VERBOSE for this tag. 579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "VERBOSE"); 589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= VERBOSE are loggable. 609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG)); 629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO)); 639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN)); 649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be DEBUG for this tag. 689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "DEBUG"); 699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= DEBUG are loggable. 719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG)); 739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO)); 749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN)); 759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be INFO for this tag. 799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "INFO"); 809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= INFO are loggable. 829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO)); 859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN)); 869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be WARN for this tag. 909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "WARN"); 919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= WARN are loggable. 939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO)); 969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN)); 979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be ERROR for this tag. 1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "ERROR"); 1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= ERROR are loggable. 1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO)); 1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN)); 1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR)); 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be ASSERT for this tag. 1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "ASSERT"); 1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= ASSERT are loggable. 1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO)); 1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN)); 1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR)); 1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT)); 1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Set the log level to be SUPPRESS for this tag. 1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(PROPERTY_TAG, "SUPPRESS"); 1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project // Test to make sure all log levels >= ASSERT are loggable. 1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE)); 1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG)); 1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO)); 1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN)); 1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR)); 1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ASSERT)); 1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project */ 1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public static class PerformanceTest extends TestCase implements PerformanceTestCase { 1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project private static final int ITERATIONS = 1000; 1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project @Override 1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void setUp() { 1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project SystemProperties.set(LOG_TAG, "VERBOSE"); 1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public boolean isPerformanceOnly() { 1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return true; 1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public int startPerformance(PerformanceTestCase.Intermediates intermediates) { 1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project intermediates.setInternalIterations(ITERATIONS * 10); 1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project return 0; 1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project public void testIsLoggable() { 1539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project boolean canLog = false; 1549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project for (int i = ITERATIONS - 1; i >= 0; i--) { 1559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE); 1659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project } 1689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project} 169