mirror of
				https://github.com/espressif/esp-idf.git
				synced 2025-10-31 21:14:37 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| // Copyright 2016-2021 Espressif Systems (Shanghai) Co. Ltd.
 | |
| //
 | |
| // Licensed under the Apache License, Version 2.0 (the "License");
 | |
| // you may not use this file except in compliance with the License.
 | |
| // You may obtain a copy of the License at
 | |
| //
 | |
| //     http://www.apache.org/licenses/LICENSE-2.0
 | |
| //
 | |
| // Unless required by applicable law or agreed to in writing, software
 | |
| // distributed under the License is distributed on an "AS IS" BASIS,
 | |
| // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | |
| // See the License for the specific language governing permissions and
 | |
| // limitations under the License.
 | |
| 
 | |
| /* IDF-specific additions to "Unity Fixture".
 | |
|  * This file doesn't need to be included directly, it gets included into unity.h
 | |
|  * through unity_config.h.
 | |
|  */
 | |
| 
 | |
| #pragma once
 | |
| 
 | |
| #include "sdkconfig.h"
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #if !defined(CONFIG_IDF_TARGET) || defined(CONFIG_IDF_TARGET_LINUX)
 | |
| #define UNITY_MAYBE_EXIT(rc)  do { exit(rc); } while(0)
 | |
| #else
 | |
| #define UNITY_MAYBE_EXIT(rc)  do { (void) rc; } while(0)
 | |
| #endif
 | |
| 
 | |
| /* A shorthand for running all tests called from one function "func_", from the app_main function.
 | |
|  * Use this when there is more than one test group.
 | |
|  *
 | |
|  * Example:
 | |
|  *
 | |
|  *    #include "unity.h"
 | |
|  *    #include "unity_fixture.h"
 | |
|  *
 | |
|  *    static_void run_all_tests(void) {
 | |
|  *        RUN_TEST_GROUP(group1);   // test group defined in another file, e.g. test_group1.c
 | |
|  *        RUN_TEST_GROUP(group2);   // test group defined in another file, e.g. test_group2.c
 | |
|  *    }
 | |
|  *
 | |
|  *    void app_main(void) {
 | |
|  *        UNITY_MAIN_FUNC(run_all_tests);
 | |
|  *    }
 | |
|  */
 | |
| #define UNITY_MAIN_FUNC(func_) do { \
 | |
|     const char* argv[] = { "test", "-v" }; \
 | |
|     const int argc = sizeof(argv)/sizeof(argv[0]); \
 | |
|     int rc = UnityMain(argc, argv, func_); \
 | |
|     printf("\nTests finished, rc=%d\n", rc); \
 | |
|     UNITY_MAYBE_EXIT(rc); \
 | |
| } while(0)
 | |
| 
 | |
| /* A shorthand for running one test group from the app_main function, when there is only
 | |
|  * one test group and it is defined in the same file.
 | |
|  *
 | |
|  * Example:
 | |
|  *
 | |
|  *    #include "unity.h"
 | |
|  *    #include "unity_fixture.h"
 | |
|  *
 | |
|  *    TEST_GROUP(my_feature);
 | |
|  *    // also define TEST_SETUP, TEST_TEARDOWN, TESTs, TEST_GROUP_RUNNER
 | |
|  *
 | |
|  *    void app_main(void) {
 | |
|  *        UNITY_MAIN(my_feature);
 | |
|  *    }
 | |
|  */
 | |
| #define UNITY_MAIN(group_) UNITY_MAIN_FUNC(TEST_ ## group_ ## _GROUP_RUNNER)
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 | 
