GTestBase

public abstract class GTestBase
extends Object implements IAbiReceiver, IConfigurationReceiver, IRemoteTest, IRuntimeHintProvider, IShardableTest, ITestCollector, ITestFilterReceiver

java.lang.Object
   ↳ com.android.tradefed.testtype.GTestBase


gTest 的基礎類別

摘要

欄位

protected static final String FILTER_EXTENSION

protected static final String GTEST_FLAG_FILE

protected static final String GTEST_FLAG_FILTER

protected static final String GTEST_FLAG_LIST_TESTS

protected static final String GTEST_FLAG_PRINT_TIME

protected static final String GTEST_FLAG_RUN_DISABLED_TESTS

protected static final String GTEST_XML_OUTPUT

公用建構函式

GTestBase()

公用方法

void addAllExcludeFilters( filters)

新增篩選器的 ERROR(/Set),用於排除要排除的測試。

void addAllIncludeFilters( filters)

新增篩選器的 ERROR(/Set),用於指定要納入哪些測試。

void addExcludeFilter(String filter)

新增要排除的測試的篩選器。

void addIncludeFilter(String filter)

新增篩選器,用於指定要納入哪些測試。

String cleanFilter(String filter)
void clearExcludeFilters()

刪除目前追蹤的所有排除篩選條件。

void clearIncludeFilters()

刪除目前追蹤的所有包含篩選器。

IAbi getAbi()
getAfterTestCmd()

取得在 GTest 之後執行的殼層指令。

getBeforeTestCmd()

取得在 GTest 之前執行的 Shell 指令。

getExcludeFilters()

傳回目前「排除」篩選器的 ERROR(/Set)

getFileExclusionFilterRegex()

取得規則運算式,用於排除特定檔案的執行。

getGTestFlags()

取得要傳遞至原生測試的殼層指令的其他旗標值。

getIncludeFilters()

傳回目前的包含篩選器 ERROR(/Set)

long getMaxTestTimeMs()

取得 gtest 執行的最大時間。

String getModuleName()

取得要執行的 Android 原生測試模組。

boolean getRunDisabledTests()

取得 GTest 是否應執行停用的測試。

long getRuntimeHint()

以毫秒為單位,傳回測試的預期執行時間。

int getShardCount()

傳回目前的分割區計數。

int getShardIndex()

取得這項測試的資料分割索引。

String getTestFilterKey()

取得測試篩選器鍵。

String getTestModule()

取得模組名稱。

boolean isCollectTestsOnly()

僅叫用測試二進位檔,以收集適用測試案例的清單。

boolean isEnableXmlOutput()

取得是否使用 gtest XML 輸出測試結果。

boolean isSharded()

取得 isSharded 標記。

void notifyTestExecution(boolean incompleteTestFound, failedTests)

通知父項測試執行作業,以便針對重試作業妥善處理納入/排除篩選條件。

void setAbi(IAbi abi)
void setCollectTestsOnly(boolean shouldCollectTest)

啟用或停用測試收集模式

void setConfiguration(IConfiguration configuration)

插入目前使用的 IConfiguration

void setModuleName(String moduleName)

設定要執行的 Android 原生測試模組。

void setShardCount(int shardCount)

設定此測試的分片數量。

void setShardIndex(int shardIndex)

設定這項測試的分割區索引。

split(int shardCountHint)

split() 的替代版本,同時提供嘗試執行的區塊計數。

受保護的方法

String createFlagFile(String filter)

建立檔案,其中包含將透過 --gtest_flagfile 使用的篩選器,以避免任何 OS 限制在 args 大小。

void erasePrependedFileName( filters, String filename)
String getAllGTestFlags(String path)

取得所有 GTest 旗標以傳遞至 ADB 殼層指令的輔助程式。

IConfiguration getConfiguration()

傳回測試設定。

String getExceptionMessage(Exception e)

請盡可能擷取具體且明確的描述性訊息至特定 Exception

String getGTestCmdLine(String fullPath, String flags)

輔助方法,用於建構要執行的 gtest 指令。

String getGTestCmdLineWrapper(String fullPath, String flags)

輔助程式,可讓衍生類別在其他工具 (chroot、strace、gdb 等) 下包裝 gtest 指令。

String getGTestFilters(String path)

協助取得執行測試的 g-test 篩選器。

ITestInvocationListener getGTestListener(ITestInvocationListener... listeners)

傳回提供額外偵錯資訊的 GTestListener,例如在 mDisabledDuplicateCheck 為 false 時偵測並回報重複的測試。

abstract String loadFilter(String path)

定義 get 篩選器方法。

void setRunDisabled(boolean runDisabled)

設定 GTest 是否應執行停用的測試。

欄位

FILTER_EXTENSION

protected static final String FILTER_EXTENSION

GTEST_FLAG_FILE

protected static final String GTEST_FLAG_FILE

GTEST_FLAG_FILTER

protected static final String GTEST_FLAG_FILTER

GTEST_FLAG_LIST_TESTS

protected static final String GTEST_FLAG_LIST_TESTS

GTEST_FLAG_PRINT_TIME

protected static final String GTEST_FLAG_PRINT_TIME

GTEST_FLAG_RUN_DISABLED_TESTS

protected static final String GTEST_FLAG_RUN_DISABLED_TESTS

GTEST_XML_OUTPUT

protected static final String GTEST_XML_OUTPUT

公用建構函式

GTestBase

public GTestBase ()

公用方法

addAllExcludeFilters

public void addAllExcludeFilters ( filters)

新增要排除測試的篩選器 ERROR(/Set)

參數
filters

addAllIncludeFilters

public void addAllIncludeFilters ( filters)

新增篩選器的 ERROR(/Set),用於指定要納入哪些測試。

參數
filters

addExcludeFilter

public void addExcludeFilter (String filter)

新增篩選器,用於排除要排除的測試。

參數
filter String

addIncludeFilter

public void addIncludeFilter (String filter)

新增篩選器,指出要納入哪些測試。

參數
filter String

cleanFilter

public String cleanFilter (String filter)

參數
filter String

傳回
String

clearExcludeFilters

public void clearExcludeFilters ()

刪除目前追蹤的所有「排除」篩選器。

ClearIncludeFilters

public void clearIncludeFilters ()

刪除目前追蹤的所有包含篩選器。

getAbi

public IAbi getAbi ()

傳回
IAbi

getAfterTestCmd

public  getAfterTestCmd ()

取得在 GTest 之後執行的殼層指令。

傳回

getBeforeTestCmd

public  getBeforeTestCmd ()

取得在 GTest 前執行的殼層指令。

傳回

取得排除篩選器

public  getExcludeFilters ()

傳回排除篩選器的目前 ERROR(/Set)

傳回

getFileExclusionFilterRegex

public  getFileExclusionFilterRegex ()

取得規則運算式,排除特定檔案的執行。

傳回

getGTestFlags

public  getGTestFlags ()

取得要傳遞至原生測試 shell 指令的其他旗標值。

傳回

getIncludeFilters

public  getIncludeFilters ()

傳回「包含」篩選器的目前 ERROR(/Set)

傳回

getMaxTestTimeMs

public long getMaxTestTimeMs ()

取得執行 gtest 的時間上限。

傳回
long

getModuleName

public String getModuleName ()

取得要執行的 Android 原生測試模組。

傳回
String 要執行的原生測試模組名稱,如果未設定,則為 null

getRunDisabledTests

public boolean getRunDisabledTests ()

取得 GTest 是否應執行停用的測試。

傳回
boolean 如果應執行停用的測試,則傳回「是」;否則傳回「否」

getRuntimeHint

public long getRuntimeHint ()

以毫秒為單位,傳回測試的預期執行時間。這段時間用於負載平衡分割執行作業

傳回
long

getShardCount

public int getShardCount ()

傳回目前的分割區數量。

傳回
int

getShardIndex

public int getShardIndex ()

取得此測試的區塊索引。

傳回
int

getTestFilterKey

public String getTestFilterKey ()

取得測試篩選器金鑰。

傳回
String

getTestModule

public String getTestModule ()

取得模組名稱。

傳回
String

isCollectTestsOnly

public boolean isCollectTestsOnly ()

只會取得是否要叫用測試二進位檔,以收集適用的測試案例清單。

傳回
boolean

isEnableXmlOutput

public boolean isEnableXmlOutput ()

取得是否使用 gtest xml 輸出測試結果。

傳回
boolean

isSharded

public boolean isSharded ()

Getssharded 標記。

傳回
boolean

通知 TestExecution

public void notifyTestExecution (boolean incompleteTestFound, 
                 failedTests)

通知測試執行作業的父項,以便正確處理包含/排除篩選器的重試作業。

參數
incompleteTestFound boolean

failedTests

setAbi

public void setAbi (IAbi abi)

參數
abi IAbi

setCollectTestsOnly

public void setCollectTestsOnly (boolean shouldCollectTest)

啟用或停用測試收集模式

setConfiguration

public void setConfiguration (IConfiguration configuration)

插入使用中的 IConfiguration

參數
configuration IConfiguration

setModuleName

public void setModuleName (String moduleName)

設定要執行的 Android 原生測試模組。

參數
moduleName String:要執行的原生測試模組名稱

setShardCount

public void setShardCount (int shardCount)

設定這項測試的資料分割數量。

參數
shardCount int

setShardIndex

public void setShardIndex (int shardIndex)

設定此測試的分割區索引。

參數
shardIndex int

分割

public  split (int shardCountHint)

split() 的替代版本,同時提供嘗試執行的區塊計數。這對某些無法隨意決定的測試執行程式相當實用。

參數
shardCountHint int:嘗試的分割區數量。

傳回
要個別執行的子測試集合,或如果測試目前無法分割,則為 null

受保護的方法

createFlagFile

protected String createFlagFile (String filter)

建立檔案,其中包含將透過 --gtest_flagfile 使用的篩選器,以避免 OS 對 args 大小的限制。

參數
filter String:篩選器字串

傳回
String 包含篩選器的檔案路徑。

擲回
com.android.tradefed.device.DeviceNotAvailableException
DeviceNotAvailableException

erasePrependedFileName

protected void erasePrependedFileName ( filters, 
                String filename)

參數
filters

filename String

getAllGTestFlags

protected String getAllGTestFlags (String path)

輔助程式,可取得所有 GTest 旗標,並傳遞至 ADB 殼層指令。

參數
path String:裝置上二進位檔的完整路徑。

傳回
String 所有應傳遞至 GTest 的 GTest 標記的 String

擲回
DeviceNotAvailableException

getConfiguration

protected IConfiguration getConfiguration ()

傳回測試設定。

傳回
IConfiguration IConfiguration

getExceptionMessage

protected String getExceptionMessage (Exception e)

盡力嘗試針對給定的 Exception 擷取有意義的簡短說明訊息

參數
e ExceptionException

傳回
String 簡短訊息

getGTestCmdLine

protected String getGTestCmdLine (String fullPath, 
                String flags)

輔助方法,用於建構要執行的 gtest 指令。

參數
fullPath String:裝置上 gtest 二進位檔案的絕對檔案系統路徑

flags String:gtest 執行標記

傳回
String 要為 gtest 執行的 Shell 指令列

getGTestCmdLineWrapper

protected String getGTestCmdLineWrapper (String fullPath, 
                String flags)

輔助程式,可讓衍生類別在其他工具 (chroot、strace、gdb 等) 下包裝 gtest 指令。

參數
fullPath String

flags String

傳回
String

getGTestFilters

protected String getGTestFilters (String path)

取得要執行的測試 g-test 篩選器的輔助程式。

請注意,篩選器只會篩選函式名稱 (例如 Google Test「Test」);所有 Google Test「Test Cases」都會納入考量。

參數
path String:裝置上二進位檔的完整路徑。

傳回
String 要傳遞至 g-test 的完整篩選器旗標,如未指定,則為空白字串

擲回
DeviceNotAvailableException

getGTestListener

protected ITestInvocationListener getGTestListener (ITestInvocationListener... listeners)

傳回提供額外偵錯資訊的 GTestListener,例如在 mDisabledDuplicateCheck 為 false 時偵測並回報重複的測試。否則,會傳回傳入的監聽器。

參數
listeners ITestInvocationListener

傳回
ITestInvocationListener

loadFilter

protected abstract String loadFilter (String path)

定義 get 篩選器方法。

子類別必須實作如何取得自己的篩選器。

參數
path String:篩選器檔案的完整路徑。

傳回
String 篩選器字串。

擲回
DeviceNotAvailableException

setRunDisabled

protected void setRunDisabled (boolean runDisabled)

設定 GTest 是否應執行停用的測試。

參數
runDisabled boolean