Home | History | Annotate | Download | only in testtype
      1 /*
      2  * Copyright (C) 2015 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.compatibility.common.tradefed.testtype;
     18 
     19 import com.android.tradefed.config.ConfigurationDescriptor;
     20 import com.android.tradefed.device.DeviceNotAvailableException;
     21 import com.android.tradefed.metrics.proto.MetricMeasurement.Metric;
     22 import com.android.tradefed.result.ITestInvocationListener;
     23 import com.android.tradefed.targetprep.ITargetPreparer;
     24 import com.android.tradefed.testtype.Abi;
     25 import com.android.tradefed.testtype.IAbi;
     26 import com.android.tradefed.testtype.IAbiReceiver;
     27 import com.android.tradefed.testtype.IRemoteTest;
     28 import com.android.tradefed.testtype.IRuntimeHintProvider;
     29 import com.android.tradefed.testtype.ITestCollector;
     30 import com.android.tradefed.testtype.ITestFilterReceiver;
     31 import com.android.tradefed.util.AbiUtils;
     32 
     33 import junit.framework.TestCase;
     34 
     35 import org.easymock.EasyMock;
     36 
     37 import java.util.ArrayList;
     38 import java.util.HashMap;
     39 import java.util.List;
     40 import java.util.Set;
     41 
     42 public class ModuleDefTest extends TestCase {
     43 
     44     private static final String NAME = "ModuleName";
     45     private static final String ABI = "mips64";
     46     private static final String ID = AbiUtils.createId(ABI, NAME);
     47 
     48     public void testAccessors() throws Exception {
     49         IAbi abi = new Abi(ABI, "");
     50         MockRemoteTest mockTest = new MockRemoteTest();
     51         IModuleDef def = new ModuleDef(NAME, abi, mockTest, new ArrayList<ITargetPreparer>(),
     52                 new ConfigurationDescriptor());
     53         assertEquals("Incorrect ID", ID, def.getId());
     54         assertEquals("Incorrect ABI", ABI, def.getAbi().getName());
     55         assertEquals("Incorrect Name", NAME, def.getName());
     56     }
     57 
     58     public void testModuleFinisher() throws Exception {
     59         IAbi abi = new Abi(ABI, "");
     60         MockRemoteTest mockTest = new MockRemoteTest();
     61         IModuleDef def = new ModuleDef(NAME, abi, mockTest,
     62                 new ArrayList<ITargetPreparer>(), new ConfigurationDescriptor());
     63         ITestInvocationListener mockListener = EasyMock.createMock(ITestInvocationListener.class);
     64         // listener should receive testRunStarted/testRunEnded events even for no-op run() method
     65         mockListener.testRunStarted(ID, 0);
     66         EasyMock.expectLastCall().once();
     67         mockListener.testRunEnded(0, new HashMap<String, Metric>());
     68         EasyMock.expectLastCall().once();
     69         EasyMock.replay(mockListener);
     70         def.run(mockListener);
     71         EasyMock.verify(mockListener);
     72     }
     73 
     74     private class MockRemoteTest implements IRemoteTest, ITestFilterReceiver, IAbiReceiver,
     75             IRuntimeHintProvider, ITestCollector {
     76 
     77         private final List<String> mIncludeFilters = new ArrayList<>();
     78         private final List<String> mExcludeFilters = new ArrayList<>();
     79 
     80         @Override
     81         public void addIncludeFilter(String filter) {
     82             mIncludeFilters.add(filter);
     83         }
     84 
     85         @Override
     86         public void addAllIncludeFilters(Set<String> filters) {
     87             mIncludeFilters.addAll(filters);
     88         }
     89 
     90         @Override
     91         public void addExcludeFilter(String filter) {
     92             mExcludeFilters.add(filter);
     93         }
     94 
     95         @Override
     96         public void addAllExcludeFilters(Set<String> filters) {
     97             mExcludeFilters.addAll(filters);
     98         }
     99 
    100         @Override
    101         public void run(ITestInvocationListener listener) throws DeviceNotAvailableException {
    102             // Do nothing
    103         }
    104 
    105         @Override
    106         public void setAbi(IAbi abi) {
    107             // Do nothing
    108         }
    109 
    110         @Override
    111         public IAbi getAbi() {
    112             return null;
    113         }
    114 
    115         @Override
    116         public long getRuntimeHint() {
    117             return 1L;
    118         }
    119 
    120         @Override
    121         public void setCollectTestsOnly(boolean shouldCollectTest) {
    122             // Do nothing
    123         }
    124     }
    125 }
    126