GoogleTest

플랫폼의 GoogleTest(GTest, '네이티브 테스트'라고도 함)는 일반적으로 하위 수준 HAL에 액세스하거나 다양한 시스템 서비스를 대상으로 원시 IPC를 실행합니다. 이 때문에 테스트 접근 방식은 일반적으로 테스트 중인 서비스와 밀접한 관련이 있습니다.

지속적인 테스트 인프라와 통합하려면 GTest 프레임워크를 사용하여 GTest를 빌드합니다.

다음은 플랫폼 소스에 있는 GTest의 예입니다.

단계 요약

  1. GTest 모듈 설정 예를 따릅니다.

  2. GTest 종속 항목을 자동으로 포함하려면 테스트 모듈 구성에서 BUILD_NATIVE_TEST 빌드 규칙을 사용합니다.

  3. 단순한 옵션과 복잡한 옵션의 예에 따라 테스트 구성을 작성합니다.

  4. 증분 빌드에는 mmm을 사용하고 전체 빌드에는 mma를 사용하여 테스트 모듈을 빌드합니다.

    make hwui_unit_tests -j
    
  5. 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
      
  6. Trade Federation 테스트 하네스를 사용하여 테스트를 실행합니다.

    make tradefed-all -j
    tradefed.sh run template/local_min --template:map test=hwui_unit_tests
    
  7. 수동으로 설치 및 실행합니다.

    1. 생성된 테스트 바이너리를 기기로 푸시합니다.

       adb push ${OUT}/data/nativetest/hwui_unit_tests/hwui_unit_tests \
       /data/nativetest/hwui_unit_tests/hwui_unit_tests
      
    2. GTest를 실행하고, 기기에서 테스트 바이너리를 호출하여 테스트를 실행합니다.

       adb shell /data/nativetest/hwui_unit_tests/hwui_unit_tests
      

      테스트 실행 맞춤설정에 관한 자세한 내용을 확인하려면 --help 매개변수를 테스트 바이너리에 추가하세요. 매개변수에 관한 자세한 내용은 GTest 고급 가이드를 참고하세요.