Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of mbed-os by
utest_greentea_handlers.cpp
00001 /**************************************************************************** 00002 * Copyright (c) 2015, ARM Limited, All Rights Reserved 00003 * SPDX-License-Identifier: Apache-2.0 00004 * 00005 * Licensed under the Apache License, Version 2.0 (the "License"); you may 00006 * not use this file except in compliance with the License. 00007 * You may obtain a copy of the License at 00008 * 00009 * http://www.apache.org/licenses/LICENSE-2.0 00010 * 00011 * Unless required by applicable law or agreed to in writing, software 00012 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 00013 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 00014 * See the License for the specific language governing permissions and 00015 * limitations under the License. 00016 **************************************************************************** 00017 */ 00018 00019 #include "utest/utest_default_handlers.h" 00020 #include "utest/utest_case.h" 00021 #include "greentea-client/test_env.h" 00022 #include "utest/utest_stack_trace.h" 00023 #include "utest/utest_serial.h" 00024 00025 using namespace utest::v1; 00026 00027 static void selftest_failure_handler(const failure_t); 00028 static void test_failure_handler(const failure_t); 00029 00030 00031 const handlers_t utest::v1::greentea_abort_handlers = { 00032 default_greentea_test_setup_handler, 00033 greentea_test_teardown_handler, 00034 test_failure_handler, 00035 greentea_case_setup_handler, 00036 greentea_case_teardown_handler, 00037 greentea_case_failure_abort_handler 00038 }; 00039 00040 const handlers_t utest::v1::greentea_continue_handlers = { 00041 default_greentea_test_setup_handler, 00042 greentea_test_teardown_handler, 00043 test_failure_handler, 00044 greentea_case_setup_handler, 00045 greentea_case_teardown_handler, 00046 greentea_case_failure_continue_handler 00047 }; 00048 00049 const handlers_t utest::v1::selftest_handlers = { 00050 default_greentea_test_setup_handler, 00051 greentea_test_teardown_handler, 00052 selftest_failure_handler, 00053 greentea_case_setup_handler, 00054 greentea_case_teardown_handler, 00055 greentea_case_failure_continue_handler 00056 }; 00057 00058 00059 // --- SPECIAL HANDLERS --- 00060 00061 static void selftest_failure_handler(const failure_t failure) { 00062 UTEST_LOG_FUNCTION(); 00063 if (failure.location == LOCATION_TEST_SETUP || failure.location == LOCATION_TEST_TEARDOWN || failure.reason == REASON_ASSERTION) { 00064 verbose_test_failure_handler(failure); 00065 } 00066 if (failure.reason == REASON_ASSERTION) { 00067 UTEST_DUMP_TRACE 00068 GREENTEA_TESTSUITE_RESULT(false); 00069 while(1) ; 00070 } 00071 } 00072 00073 static void test_failure_handler(const failure_t failure) { 00074 UTEST_LOG_FUNCTION(); 00075 if (failure.location == LOCATION_TEST_SETUP || failure.location == LOCATION_TEST_TEARDOWN) { 00076 verbose_test_failure_handler(failure); 00077 GREENTEA_TESTSUITE_RESULT(false); 00078 while(1) ; 00079 } 00080 } 00081 00082 // --- GREENTEA HANDLERS --- 00083 00084 void utest::v1::greentea_testcase_notification_handler(const char *testcase) 00085 { 00086 UTEST_LOG_FUNCTION(); 00087 greentea_send_kv(GREENTEA_TEST_ENV_TESTCASE_NAME, testcase); 00088 } 00089 00090 utest::v1::status_t utest::v1::default_greentea_test_setup_handler(const size_t number_of_cases) 00091 { 00092 UTEST_LOG_FUNCTION(); 00093 GREENTEA_SETUP(UTEST_DEFAULT_GREENTEA_TIMEOUT, UTEST_DEFAULT_HOST_TEST_NAME); 00094 return greentea_test_setup_handler(number_of_cases); 00095 } 00096 00097 00098 utest::v1::status_t utest::v1::greentea_test_setup_handler(const size_t number_of_cases) 00099 { 00100 UTEST_LOG_FUNCTION(); 00101 greentea_send_kv(TEST_ENV_TESTCASE_COUNT, number_of_cases); 00102 return verbose_test_setup_handler(number_of_cases); 00103 } 00104 00105 void utest::v1::greentea_test_teardown_handler(const size_t passed, const size_t failed, const failure_t failure) 00106 { 00107 UTEST_LOG_FUNCTION(); 00108 verbose_test_teardown_handler(passed, failed, failure); 00109 greentea_send_kv(TEST_ENV_TESTCASE_SUMMARY, passed, failed); 00110 int result = !(failed || (failure.reason && !(failure.reason & REASON_IGNORE))); 00111 GREENTEA_TESTSUITE_RESULT(result); 00112 } 00113 00114 void utest::v1::greentea_test_failure_handler(const failure_t failure) 00115 { 00116 UTEST_LOG_FUNCTION(); 00117 verbose_test_failure_handler(failure); 00118 } 00119 00120 // --- GREENTEA CASE HANDLERS --- 00121 utest::v1::status_t utest::v1::greentea_case_setup_handler(const Case *const source, const size_t index_of_case) 00122 { 00123 UTEST_LOG_FUNCTION(); 00124 utest::v1::status_t status = verbose_case_setup_handler(source, index_of_case); 00125 greentea_send_kv(TEST_ENV_TESTCASE_START, source->get_description ()); 00126 return status; 00127 } 00128 00129 utest::v1::status_t utest::v1::greentea_case_teardown_handler(const Case *const source, const size_t passed, const size_t failed, const failure_t failure) 00130 { 00131 UTEST_LOG_FUNCTION(); 00132 greentea_send_kv(TEST_ENV_TESTCASE_FINISH, source->get_description (), passed, failed); 00133 return verbose_case_teardown_handler(source, passed, failed, failure); 00134 } 00135 00136 utest::v1::status_t utest::v1::greentea_case_failure_abort_handler(const Case *const source, const failure_t failure) 00137 { 00138 UTEST_LOG_FUNCTION(); 00139 utest::v1::status_t status = verbose_case_failure_handler(source, failure); 00140 return (status == STATUS_IGNORE) ? STATUS_IGNORE : STATUS_ABORT; 00141 } 00142 00143 utest::v1::status_t utest::v1::greentea_case_failure_continue_handler(const Case *const source, const failure_t failure) 00144 { 00145 UTEST_LOG_FUNCTION(); 00146 return verbose_case_failure_handler(source, failure); 00147 }
Generated on Tue Jul 12 2022 13:16:19 by
