LogTest.java revision 1a44d5dcabc18cd5ef111f732ccff91683a1a093
11a44d5dcabc18cd5ef111f732ccff91683a1a093Neal Nguyenpackage android.util;
29066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
39066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.Assert;
49066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport junit.framework.TestCase;
59066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
69066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.os.SystemProperties;
79066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.PerformanceTestCase;
89066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.test.suitebuilder.annotation.Suppress;
99066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectimport android.util.Log;
109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project//This is an empty TestCase.
129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project@Suppress
139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectpublic class LogTest extends TestCase {
149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static final String PROPERTY_TAG = "log.tag.LogTest";
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    private static final String LOG_TAG = "LogTest";
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    // TODO: remove this test once we uncomment out the following test.
199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testLogTestDummy() {
209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project      return;
219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    /* TODO: This test is commented out because we will not be able to set properities. Fix the test.
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public void testIsLoggable() {
269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // First clear any SystemProperty setting for our test key.
279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, null);
289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        String value = SystemProperties.get(PROPERTY_TAG);
309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(value == null || value.length() == 0);
319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Check to make sure that all levels expect for INFO, WARN, ERROR, and ASSERT are loggable.
339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be VERBOSE for this tag.
419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "VERBOSE");
429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= VERBOSE are loggable.
449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.VERBOSE));
459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG));
469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be DEBUG for this tag.
529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "DEBUG");
539066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
549066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= DEBUG are loggable.
559066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
569066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.DEBUG));
579066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
589066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
599066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
609066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
619066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
629066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be INFO for this tag.
639066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "INFO");
649066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
659066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= INFO are loggable.
669066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
679066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
689066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.INFO));
699066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
709066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
719066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
729066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
739066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be WARN for this tag.
749066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "WARN");
759066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
769066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= WARN are loggable.
779066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
789066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
799066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
809066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.WARN));
819066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
829066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
839066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
849066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be ERROR for this tag.
859066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "ERROR");
869066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
879066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= ERROR are loggable.
889066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
899066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
909066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
919066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
929066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ERROR));
939066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be ASSERT for this tag.
969066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "ASSERT");
979066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
989066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= ASSERT are loggable.
999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR));
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertTrue(Log.isLoggable(LOG_TAG, Log.ASSERT));
1059066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Set the log level to be SUPPRESS for this tag.
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        SystemProperties.set(PROPERTY_TAG, "SUPPRESS");
1089066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        // Test to make sure all log levels >= ASSERT are loggable.
1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.VERBOSE));
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.DEBUG));
1129066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.INFO));
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.WARN));
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ERROR));
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        Assert.assertFalse(Log.isLoggable(LOG_TAG, Log.ASSERT));
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1179066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    */
1189066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1199066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    public static class PerformanceTest extends TestCase implements PerformanceTestCase {
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        private static final int ITERATIONS = 1000;
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        @Override
1239066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void setUp() {
1249066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            SystemProperties.set(LOG_TAG, "VERBOSE");
1259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1269066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1279066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public boolean isPerformanceOnly() {
1289066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return true;
1299066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1309066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1319066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public int startPerformance(PerformanceTestCase.Intermediates intermediates) {
1329066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            intermediates.setInternalIterations(ITERATIONS * 10);
1339066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            return 0;
1349066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1359066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1369066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        public void testIsLoggable() {
1379066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            boolean canLog = false;
1389066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            for (int i = ITERATIONS - 1; i >= 0; i--) {
1399066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1409066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1419066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1429066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1439066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1449066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1459066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1469066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1479066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1489066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project                canLog = Log.isLoggable(LOG_TAG, Log.VERBOSE);
1499066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project            }
1509066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project        }
1519066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project    }
1529066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project}
153