Home | History | Annotate | Download | only in util
      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