diff --git a/examples/android/CHIPTest/BUILD.gn b/examples/android/CHIPTest/BUILD.gn index 673a8c416f3260..ad6ce1d9820afe 100644 --- a/examples/android/CHIPTest/BUILD.gn +++ b/examples/android/CHIPTest/BUILD.gn @@ -33,7 +33,6 @@ shared_library("jni") { "${chip_root}/src/lib/support", "${chip_root}/src/lib/support:pw_tests_wrapper", "${chip_root}/src/lib/support:test_utils", - "${chip_root}/src/lib/support:testing_nlunit", "${chip_root}/src/lib/support/jsontlv", "${chip_root}/src/platform", "${chip_root}/src/platform/android", diff --git a/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp b/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp index 9f663b4afad8d7..e24e6098cdd17a 100644 --- a/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp +++ b/examples/android/CHIPTest/app/src/main/cpp/CHIPTest-JNI.cpp @@ -29,12 +29,12 @@ #include #include #include -#include -#include #include #include -#include +#include "pw_unit_test/framework.h" +#include "pw_unit_test/googletest_style_event_handler.h" +#include "pw_unit_test/logging_event_handler.h" using namespace chip; @@ -146,57 +146,60 @@ static void onLog(const char * fmt, ...) VerifyOrReturn(err != CHIP_NO_ERROR, ReportError(env, err, __FUNCTION__)); } -static void jni_log_name(struct _nlTestSuite * inSuite) -{ - onLog("[ %s ]\n", inSuite->name); -} +namespace pw::unit_test { -static void jni_log_initialize(struct _nlTestSuite * inSuite, int inResult, int inWidth) +class AndroidLoggingEventHandler : public pw::unit_test::LoggingEventHandler { - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Initialize", inResult == FAILURE ? "FAILED" : "PASSED"); -} -static void jni_log_terminate(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Terminate", inResult == FAILURE ? "FAILED" : "PASSED"); -} +public: + void RunAllTestsStart() override { onLog(PW_UNIT_TEST_GOOGLETEST_RUN_ALL_TESTS_START); } -static void jni_log_setup(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "Setup", inResult == FAILURE ? "FAILED" : "PASSED"); -} - -static void jni_log_test(struct _nlTestSuite * inSuite, int inWidth, int inIndex) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, inSuite->tests[inIndex].name, inSuite->flagError ? "FAILED" : "PASSED"); -} - -static void jni_log_teardown(struct _nlTestSuite * inSuite, int inResult, int inWidth) -{ - onLog("[ %s : %-*s ] : %s\n", inSuite->name, inWidth, "TearDown", inResult == FAILURE ? "FAILED" : "PASSED"); -} - -static void jni_log_statTest(struct _nlTestSuite * inSuite) -{ - onLog("Failed Tests: %d / %d\n", inSuite->failedTests, inSuite->runTests); -} + void RunAllTestsEnd(const RunTestsSummary & run_tests_summary) override + { + onLog(PW_UNIT_TEST_GOOGLETEST_RUN_ALL_TESTS_END); + onLog(PW_UNIT_TEST_GOOGLETEST_PASSED_SUMMARY, run_tests_summary.passed_tests); + if (run_tests_summary.skipped_tests) + { + onLog(PW_UNIT_TEST_GOOGLETEST_DISABLED_SUMMARY, run_tests_summary.skipped_tests); + } + if (run_tests_summary.failed_tests) + { + onLog(PW_UNIT_TEST_GOOGLETEST_FAILED_SUMMARY, run_tests_summary.failed_tests); + } + } -static void jni_log_statAssert(struct _nlTestSuite * inSuite) -{ - onLog("Failed Asserts: %d / %d\n", inSuite->failedAssertions, inSuite->performedAssertions); -} + void TestCaseStart(const TestCase & test_case) override + { + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_START, test_case.suite_name, test_case.test_name); + } -static nl_test_output_logger_t jni_test_logger = { - jni_log_name, jni_log_initialize, jni_log_terminate, jni_log_setup, - jni_log_test, jni_log_teardown, jni_log_statTest, jni_log_statAssert, + void TestCaseEnd(const TestCase & test_case, TestResult result) override + { + // Use a switch with no default to detect changes in the test result enum. + switch (result) + { + case TestResult::kSuccess: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_OK, test_case.suite_name, test_case.test_name); + break; + case TestResult::kFailure: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_FAILED, test_case.suite_name, test_case.test_name); + break; + case TestResult::kSkipped: + onLog(PW_UNIT_TEST_GOOGLETEST_CASE_DISABLED, test_case.suite_name, test_case.test_name); + break; + } + } }; +}; // namespace pw::unit_test extern "C" JNIEXPORT jint Java_com_tcl_chip_chiptest_TestEngine_runTest(JNIEnv * env, jclass clazz) { - nlTestSetLogger(&jni_test_logger); chip::DeviceLayer::StackLock lock; - // TODO [PW_MIGRATION] Remove NLUnit tests call after migration - jint ret = RunRegisteredUnitTests(); - ret += chip::test::RunAllTests(); + + // Running Pigweed Tests + testing::InitGoogleTest(nullptr, static_cast(nullptr)); + pw::unit_test::AndroidLoggingEventHandler handler; + pw::unit_test::RegisterEventHandler(&handler); + jint ret = RUN_ALL_TESTS(); return ret; }