Home | History | Annotate | Download | only in targetprep
      1 /*
      2  * Copyright (C) 2011 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 
     18 package com.android.tradefed.targetprep;
     19 
     20 import com.android.tradefed.build.IDeviceBuildInfo;
     21 import com.android.tradefed.device.DeviceNotAvailableException;
     22 import com.android.tradefed.device.ITestDevice;
     23 
     24 import java.util.Collection;
     25 
     26 /**
     27  * Installs tests from a tests zip file (as outputted by the build system) on
     28  * a device.
     29  */
     30 public interface ITestsZipInstaller {
     31 
     32     /**
     33      * Pushes the contents of the tests.zip file onto the device's data partition.
     34      *
     35      * @param device the {@link ITestDevice} to flash, assumed to be in adb mode.
     36      * @param deviceBuild the {@link IDeviceBuildInfo} that contains the tests zip to flash
     37      * @throws DeviceNotAvailableException
     38      * @throws TargetSetupError
     39      */
     40     public void pushTestsZipOntoData(ITestDevice device, IDeviceBuildInfo deviceBuild)
     41             throws DeviceNotAvailableException, TargetSetupError;
     42 
     43     /**
     44      * Sets the list of paths under {@code /data} to avoid clearing.
     45      *
     46      * @param skipList the list of directories to skip.
     47      * <p />
     48      * Note that the granularity of the skip list is direct children of {@code /data}.
     49      *
     50      * @see #deleteData
     51      */
     52     public void setDataWipeSkipList(Collection<String> skipList);
     53 
     54     /**
     55      * Sets the list of paths under {@code /data} to avoid clearing.
     56      *
     57      * @param skipList the list of directories to skip.
     58      * <p />
     59      * Note that the granularity of the skip list is direct children of {@code /data}.
     60      *
     61      * @see #deleteData
     62      */
     63     public void setDataWipeSkipList(String... skipList);
     64 
     65     /**
     66      * Removes all of the files/directories from {@code /data} on the specified device, with the
     67      * exception of those excluded by the skip list.
     68      * <p/>
     69      * Implementation will stop the runtime on device. It is highly recommended to reboot the device
     70      * upon completion of this method.
     71      *
     72      * @param device The {@link ITestDevice} to act on
     73      * @see #setDataWipeSkipList
     74      */
     75     public void deleteData(ITestDevice device) throws DeviceNotAvailableException, TargetSetupError;
     76 
     77 }
     78