Um GoogleTest (GTest, também chamado de "testes nativos") para a plataforma normalmente acessa HALs de nível inferior ou realiza uma IPC bruta em vários serviços do sistema. Por isso, a abordagem de teste geralmente está rigidamente acoplada ao serviço em teste.
Para integrar com a infraestrutura de testes contínuos, crie seus GTests usando o framework GTest.
Exemplos
Confira alguns exemplos de GTest na origem da plataforma:
Resumo das etapas
Para incluir automaticamente as dependências do GTest, use a regra de build
BUILD_NATIVE_TEST
na configuração do módulo de teste.Escreva uma configuração de teste, seguindo os exemplos de opções simples e complexas.
Crie o módulo de teste com
mmm
para builds incrementais oumma
para builds completos:make hwui_unit_tests -j
Execute o teste localmente usando o Atest:
atest hwui_unit_tests
Também é possível adicionar argumentos aos GTests. Os argumentos a seguir são especialmente úteis:
native-test-flag
especifica valores de sinalizações adicionais para serem transmitidos ao comando do shell do GTest.native-test-timeout
especifica um valor de tempo limite de teste em microssegundos.O exemplo de código a seguir usa os dois argumentos:
atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
Faça o teste com o arcabouço de testes da Trade Federation:
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_tests
Instale e execute manualmente:
Envie o binário de teste gerado para o dispositivo:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_tests
Inicie o GTest e execute o teste chamando o binário de teste no dispositivo:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
Para mais informações sobre a personalização da execução de teste, adicione o parâmetro
--help
ao seu binário de teste. Para mais informações sobre parâmetros, consulte o guia avançado do GTest.