GoogleTest (GTest, также иногда называемый "нативными тестами") для платформы обычно обращается к HAL более низкого уровня или выполняет необработанный IPC для различных системных служб. Поэтому подход к тестированию обычно тесно связан с тестируемым сервисом.
Чтобы интегрировать GTests с инфраструктурой непрерывного тестирования, создайте их с помощью фреймворка GTest.
Примеры
Вот несколько примеров использования GTest в исходном коде платформы:
Список шагов
Следуйте примеру настройки модуля GTest.
Чтобы автоматически включить зависимости GTest, используйте
BUILD_NATIVE_TESTправило сборки в конфигурации тестового модуля.Напишите тестовую конфигурацию, следуя примерам для простых и сложных вариантов.
Создайте тестовый модуль с помощью
mmmдля инкрементной сборки илиmmaдля полной сборки:make hwui_unit_tests -jЗапустите тест локально с помощью Atest:
atest hwui_unit_testsВы также можете добавлять аргументы в GTest. Особенно полезны следующие аргументы:
native-test-flag– дополнительные значения флагов, которые передаются команде оболочки GTest.native-test-timeout– значение времени ожидания теста в микросекундах.В следующем примере кода используются оба этих аргумента:
atest test-name -- --module-arg test-name:native-test-flag:"\"argument1 argument2\"" \ --module-arg test-name:native-test-timeout:60000
Запустите тест с помощью тестовой среды Trade Federation:
make tradefed-all -j tradefed.sh run template/local_min --template:map test=hwui_unit_testsУстановите и запустите вручную:
Перенесите сгенерированный тестовый двоичный файл на устройство:
adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \ /data/nativetest/hwui_unit_tests/hwui_unit_testsЗапустите GTest и выполните тест, вызвав тестовый двоичный файл на устройстве:
adb shell /data/nativetest/hwui_unit_tests/hwui_unit_testsЧтобы узнать больше о настройке выполнения тестов, добавьте параметр
--helpв двоичный файл теста. Дополнительную информацию о параметрах можно найти в расширенном руководстве по GTest.