1 /* 2 * Copyright (C) 2014 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package com.android.tradefed.util; 18 19 import com.android.tradefed.device.ITestDevice; 20 import junit.framework.TestCase; 21 import org.easymock.EasyMock; 22 23 /** 24 * Unit tests for the {@link AbiFormatter} utility class 25 */ 26 public class AbiFormatterTest extends TestCase { 27 /** 28 * Verify that {@link AbiFormatter#formatCmdForAbi} works as expected. 29 */ 30 public void testFormatCmdForAbi() throws Exception { 31 String a = "test foo|#ABI#| bar|#ABI32#| foobar|#ABI64#|"; 32 // if abi is null, remove all place holders. 33 assertEquals("test foo bar foobar", AbiFormatter.formatCmdForAbi(a, null)); 34 // if abi is "", remove all place holders. 35 assertEquals("test foo bar foobar", AbiFormatter.formatCmdForAbi(a, "")); 36 // if abi is 32 37 assertEquals("test foo32 bar foobar32", AbiFormatter.formatCmdForAbi(a, "32")); 38 // if abi is 64 39 assertEquals("test foo64 bar64 foobar", AbiFormatter.formatCmdForAbi(a, "64")); 40 // test null input string 41 assertNull(AbiFormatter.formatCmdForAbi(null, "32")); 42 } 43 44 /** 45 * Verify that {@link AbiFormatter#getDefaultAbi} works as expected. 46 */ 47 public void testGetDefaultAbi() throws Exception { 48 ITestDevice device = EasyMock.createMock(ITestDevice.class); 49 50 EasyMock.expect(device.getProperty("ro.product.cpu.abilist32")).andReturn(null); 51 EasyMock.expect(device.getProperty("ro.product.cpu.abi")).andReturn(null); 52 EasyMock.replay(device); 53 assertEquals(null, AbiFormatter.getDefaultAbi(device, "32")); 54 55 EasyMock.reset(device); 56 EasyMock.expect(device.getProperty(EasyMock.eq("ro.product.cpu.abilist32"))) 57 .andReturn("abi,abi2,abi3"); 58 EasyMock.replay(device); 59 assertEquals("abi", AbiFormatter.getDefaultAbi(device, "32")); 60 61 EasyMock.reset(device); 62 EasyMock.expect(device.getProperty(EasyMock.eq("ro.product.cpu.abilist64"))).andReturn(""); 63 EasyMock.expect(device.getProperty("ro.product.cpu.abi")).andReturn(null); 64 EasyMock.replay(device); 65 assertEquals(null, AbiFormatter.getDefaultAbi(device, "64")); 66 } 67 68 /** 69 * Verify that {@link AbiFormatter#getSupportedAbis} works as expected. 70 */ 71 public void testGetSupportedAbis() throws Exception { 72 ITestDevice device = EasyMock.createMock(ITestDevice.class); 73 74 EasyMock.expect(device.getProperty("ro.product.cpu.abilist32")).andReturn("abi1,abi2"); 75 EasyMock.replay(device); 76 String[] supportedAbiArray = AbiFormatter.getSupportedAbis(device, "32"); 77 assertEquals("abi1", supportedAbiArray[0]); 78 assertEquals("abi2", supportedAbiArray[1]); 79 80 EasyMock.reset(device); 81 EasyMock.expect(device.getProperty("ro.product.cpu.abilist32")).andReturn(null); 82 EasyMock.expect(device.getProperty("ro.product.cpu.abi")).andReturn("abi"); 83 EasyMock.replay(device); 84 supportedAbiArray = AbiFormatter.getSupportedAbis(device, "32"); 85 assertEquals("abi", supportedAbiArray[0]); 86 87 EasyMock.reset(device); 88 EasyMock.expect(device.getProperty("ro.product.cpu.abilist")).andReturn(""); 89 EasyMock.expect(device.getProperty("ro.product.cpu.abi")).andReturn("abi"); 90 EasyMock.replay(device); 91 supportedAbiArray = AbiFormatter.getSupportedAbis(device, ""); 92 assertEquals("abi", supportedAbiArray[0]); 93 } 94 } 95