1a51a9564fd53b661446cd63eea23208656acc678Craig Mautner/* 2a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * Copyright (C) 2012 The Android Open Source Project 3a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * 4a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * Licensed under the Apache License, Version 2.0 (the "License"); 5a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * you may not use this file except in compliance with the License. 6a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * You may obtain a copy of the License at 7a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * 8a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * http://www.apache.org/licenses/LICENSE-2.0 9a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * 10a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * Unless required by applicable law or agreed to in writing, software 11a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * distributed under the License is distributed on an "AS IS" BASIS, 12a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * See the License for the specific language governing permissions and 14a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * limitations under the License. 15a51a9564fd53b661446cd63eea23208656acc678Craig Mautner */ 16a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 17a51a9564fd53b661446cd63eea23208656acc678Craig Mautnerpackage com.android.internal.os; 18a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 19a51a9564fd53b661446cd63eea23208656acc678Craig Mautnerimport android.os.Debug; 20a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 21a51a9564fd53b661446cd63eea23208656acc678Craig Mautnerimport android.test.suitebuilder.annotation.SmallTest; 22a51a9564fd53b661446cd63eea23208656acc678Craig Mautnerimport junit.framework.TestCase; 23a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 24a51a9564fd53b661446cd63eea23208656acc678Craig Mautner@SmallTest 25a51a9564fd53b661446cd63eea23208656acc678Craig Mautnerpublic class DebugTest extends TestCase { 26a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 27a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private final static String EXPECTED_GET_CALLER = 28a51a9564fd53b661446cd63eea23208656acc678Craig Mautner "com\\.android\\.internal\\.os\\.DebugTest\\.testGetCaller:\\d\\d"; 29a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private final static String EXPECTED_GET_CALLERS = 30a51a9564fd53b661446cd63eea23208656acc678Craig Mautner "com\\.android\\.internal\\.os\\.DebugTest.callDepth3:\\d\\d " + 31a51a9564fd53b661446cd63eea23208656acc678Craig Mautner "com\\.android\\.internal\\.os\\.DebugTest.callDepth2:\\d\\d " + 32a51a9564fd53b661446cd63eea23208656acc678Craig Mautner "com\\.android\\.internal\\.os\\.DebugTest.callDepth1:\\d\\d "; 33a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 34a51a9564fd53b661446cd63eea23208656acc678Craig Mautner /** 35a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * @return String consisting of the caller to this method. 36a51a9564fd53b661446cd63eea23208656acc678Craig Mautner */ 37a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private String callDepth0() { 38a51a9564fd53b661446cd63eea23208656acc678Craig Mautner return Debug.getCaller(); 39a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 40a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 41a51a9564fd53b661446cd63eea23208656acc678Craig Mautner public void testGetCaller() { 42a51a9564fd53b661446cd63eea23208656acc678Craig Mautner assertTrue(callDepth0().matches(EXPECTED_GET_CALLER)); 43a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 44a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 45a51a9564fd53b661446cd63eea23208656acc678Craig Mautner /** 46a51a9564fd53b661446cd63eea23208656acc678Craig Mautner * @return String consisting of the callers to this method. 47a51a9564fd53b661446cd63eea23208656acc678Craig Mautner */ 48a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private String callDepth4() { 49a51a9564fd53b661446cd63eea23208656acc678Craig Mautner return Debug.getCallers(3); 50a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 51a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 52a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private String callDepth3() { 53a51a9564fd53b661446cd63eea23208656acc678Craig Mautner return callDepth4(); 54a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 55a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 56a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private String callDepth2() { 57a51a9564fd53b661446cd63eea23208656acc678Craig Mautner return callDepth3(); 58a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 59a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 60a51a9564fd53b661446cd63eea23208656acc678Craig Mautner private String callDepth1() { 61a51a9564fd53b661446cd63eea23208656acc678Craig Mautner return callDepth2(); 62a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 63a51a9564fd53b661446cd63eea23208656acc678Craig Mautner 64a51a9564fd53b661446cd63eea23208656acc678Craig Mautner public void testGetCallers() { 65a51a9564fd53b661446cd63eea23208656acc678Craig Mautner assertTrue(callDepth1().matches(EXPECTED_GET_CALLERS)); 66a51a9564fd53b661446cd63eea23208656acc678Craig Mautner } 67a51a9564fd53b661446cd63eea23208656acc678Craig Mautner} 68