SecurityTestCase

public class SecurityTestCase
extends StsExtraBusinessLogicHostTestBase

java.lang.Object
   ↳ com.android.tradefed.testtype.junit4.BaseHostJUnit4Test
     ↳ com.android.compatibility.common.tradefed.testtype.BusinessLogicHostTestBase
       ↳ com.android.compatibility.common.tradefed.testtype.ExtraBusinessLogicHostTestBase
         ↳ com.android.sts.common.tradefed.testtype.StsExtraBusinessLogicHostTestBase
           ↳ com.android.sts.common.tradefed.testtype.SecurityTestCase


所有 STS 測試的基本測試類別。

請改用 RootSecurityTestCaseNonRootSecurityTestCase

摘要

常數

int TIMEOUT_DEFAULT

int TIMEOUT_NONDETERMINISTIC

欄位

public PocPusher pocPusher

public TestName testName

公用建構函式

SecurityTestCase()

公用方法

void assertMatches(String pattern, String input)
void assertMatchesMultiLine(String pattern, String input)
void assertNotKernelPointer(Callable<String> getPtrFunction, ITestDevice deviceToReboot)

執行提供的函式,收集字串以測試核心指標外洩。

void assertNotMatches(String pattern, String input)
void assertNotMatchesMultiLine(String pattern, String input)
void assertWifiConnected(ITestDevice device)

斷言 Wi-Fi 連線狀態已連線。

void assumeIsSupportedNfcDevice(ITestDevice device)
static MetricsReportLog buildMetricsReportLog(ITestDevice device)
WifiHelper createWifiHelper()
static IAbi getAbi(ITestDevice device)
static IBuildInfo getBuildInfo(ITestDevice device)
static PocPusher getPocPusher(ITestDevice device)
static String getTestName(ITestDevice device)
boolean moduleIsPlayManaged(String modulePackageName)

如果模組是 Play 管理的模組,則傳回 true。

void safeReboot()
void setUp()

等待裝置上線,並標記裝置最近的啟動時間

void tearDown()

確認手機是否已連上網路,並檢查裝置是否當機

void updateKernelStartTime()

如果在預定重新啟動後呼叫,則允許測試通過。

受保護的方法

boolean containsDriver(ITestDevice device, String driver, boolean checkReadable)

檢查機器上是否有驅動程式。

boolean containsDriver(ITestDevice device, String driver)

檢查是否有可讀取的驅動程式。

常數

TIMEOUT_DEFAULT

protected static final int TIMEOUT_DEFAULT

常數值: 60 (0x0000003c)

TIMEOUT_NONDETERMINISTIC

public static final int TIMEOUT_NONDETERMINISTIC

常數值: 315 (0x0000013b)

欄位

pocPusher

public PocPusher pocPusher

testName

public TestName testName

公用建構函式

SecurityTestCase

public SecurityTestCase ()

公用方法

assertMatches

public void assertMatches (String pattern, 
                String input)

參數
pattern String

input String

擲回
Exception

assertMatchesMultiLine

public void assertMatchesMultiLine (String pattern, 
                String input)

參數
pattern String

input String

擲回
Exception

assertNotKernelPointer

public void assertNotKernelPointer (Callable<String> getPtrFunction, 
                ITestDevice deviceToReboot)

執行提供的函式,收集字串,以便測試核心指標外洩。getPtrFunction 函式實作必須傳回以指標開頭的字串。例如「01234567」。尾隨字元可使用,但 [0-9a-fA-F] 除外。如果指標似乎有安全漏洞,系統就會擲回 JUnit 斷言。由於核心指標可以進行雜湊,因此雜湊指標可能會重疊至一般核心空間。測試會重新執行,讓偽陽性在統計上不具意義。如果核心指標在未重新啟動裝置的情況下不會變更,請提供要重新啟動的裝置。

參數
getPtrFunction Callable:傳回開頭為指標的字串的函式

deviceToReboot ITestDevice:當核心指標不會變更時,裝置會重新啟動

擲回
Exception

assertNotMatches

public void assertNotMatches (String pattern, 
                String input)

參數
pattern String

input String

擲回
Exception

assertNotMatchesMultiLine

public void assertNotMatchesMultiLine (String pattern, 
                String input)

參數
pattern String

input String

擲回
Exception

assertWifiConnected

public void assertWifiConnected (ITestDevice device)

斷言 Wi-Fi 連線狀態已連線。由於 STS 可以在執行測試前立即重新啟動裝置,因此可能在測試執行前就已連上 Wi-Fi。我們會輪詢 Wi-Fi,直到逾時或 Wi-Fi 連線為止。

參數
device ITestDevice:要執行的裝置

擲回
Exception

assumeIsSupportedNfcDevice

public void assumeIsSupportedNfcDevice (ITestDevice device)

參數
device ITestDevice

擲回
Exception

buildMetricsReportLog

public static MetricsReportLog buildMetricsReportLog (ITestDevice device)

參數
device ITestDevice

傳回
MetricsReportLog

createWifiHelper

public WifiHelper createWifiHelper ()

傳回
WifiHelper

擲回
DeviceNotAvailableException

getAbi

public static IAbi getAbi (ITestDevice device)

參數
device ITestDevice

傳回
IAbi

getBuildInfo

public static IBuildInfo getBuildInfo (ITestDevice device)

參數
device ITestDevice

傳回
IBuildInfo

getPocPusher

public static PocPusher getPocPusher (ITestDevice device)

參數
device ITestDevice

傳回
PocPusher

getTestName

public static String getTestName (ITestDevice device)

參數
device ITestDevice

傳回
String

moduleIsPlayManaged

public boolean moduleIsPlayManaged (String modulePackageName)

如果模組是 Play 管理的模組,則傳回 true。

根據主線程模組略過測試的範例:

  @Test
  public void testPocCVE_1234_5678() throws Exception {
      // This will skip the test if MODULE_METADATA mainline module is play managed.
      assumeFalse(moduleIsPlayManaged("com.google.android.captiveportallogin"));
      // Do testing...
  }
 

參數
modulePackageName String

傳回
boolean

擲回
Exception

safeReboot

public void safeReboot ()

擲回
DeviceNotAvailableException

setUp

public void setUp ()

等待裝置上線,並標記裝置最近的啟動時間

擲回
Exception

tearDown

public void tearDown ()

確認手機已連上網路,並檢查裝置是否當機

擲回
Exception

updateKernelStartTime

public void updateKernelStartTime ()

如果在預定重新啟動後呼叫,則允許測試通過。

擲回
DeviceNotAvailableException

受保護的方法

containsDriver

protected boolean containsDriver (ITestDevice device, 
                String driver, 
                boolean checkReadable)

檢查機器上是否有驅動程式。

參數
device ITestDevice

driver String

checkReadable boolean

傳回
boolean

擲回
Exception

containsDriver

protected boolean containsDriver (ITestDevice device, 
                String driver)

檢查是否有驅動程式,且可供讀取。

參數
device ITestDevice

driver String

傳回
boolean

擲回
Exception