Initial Release
This commit is contained in:
4
test/pico_test/CMakeLists.txt
Normal file
4
test/pico_test/CMakeLists.txt
Normal file
@ -0,0 +1,4 @@
|
||||
add_library(pico_test INTERFACE)
|
||||
|
||||
target_include_directories(pico_test INTERFACE ${CMAKE_CURRENT_LIST_DIR}/include)
|
||||
target_link_libraries(pico_test INTERFACE pico_stdlib)
|
61
test/pico_test/include/pico/test.h
Normal file
61
test/pico_test/include/pico/test.h
Normal file
@ -0,0 +1,61 @@
|
||||
/**
|
||||
* Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
|
||||
*
|
||||
* SPDX-License-Identifier: BSD-3-Clause
|
||||
*/
|
||||
|
||||
#ifndef _PICO_TEST_H
|
||||
#define _PICO_TEST_H
|
||||
|
||||
#include "pico.h"
|
||||
|
||||
/* Various macros to help with test harnesses
|
||||
|
||||
Note: really need to change the returns to exit()
|
||||
but not sure that is implemented yet.
|
||||
*/
|
||||
|
||||
#define PICOTEST_MODULE_NAME(n,d) const char *picotest_module=n; const char *picotest_description=d; int picotest_error_code;
|
||||
|
||||
#define PICOTEST_START() printf("Starting Picotest for %s\n", picotest_description);
|
||||
|
||||
#define PICOTEST_START_SECTION(NAME) if (1) {const char *picotest_section_name=NAME; picotest_error_code = 0;
|
||||
|
||||
#define PICOTEST_END_SECTION() if (picotest_error_code != 0) { \
|
||||
printf("Module %s: Section %s : Failed test\n", picotest_module, picotest_section_name);\
|
||||
return -1; \
|
||||
} else \
|
||||
printf("Module %s: Section %s : Passed\n", picotest_module, picotest_section_name); \
|
||||
}
|
||||
|
||||
#define PICOTEST_CHECK(COND, MESSAGE) if (!(COND)) { \
|
||||
printf("Module %s: %s\n", picotest_module, MESSAGE); \
|
||||
picotest_error_code = -1; \
|
||||
}
|
||||
#define PICOTEST_CHECK_CHANNEL(CHANNEL, COND, MESSAGE) if (!(COND)) { \
|
||||
printf("Module %s, channel %d: %s\n", picotest_module, CHANNEL, MESSAGE); \
|
||||
picotest_error_code = -1; \
|
||||
}
|
||||
|
||||
#define PICOTEST_CHECK_AND_ABORT(COND, MESSAGE) if (!(COND)) { \
|
||||
printf("Module %s: %s\n", picotest_module, MESSAGE); \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define PICOTEST_CHECK_CHANNEL_AND_ABORT(CHANNEL, COND, MESSAGE) if (!(COND)) { \
|
||||
printf("Module %s, channel %d: %s\n", picotest_module, CHANNEL, MESSAGE); \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define PICOTEST_ABORT_IF_FAILED() if (picotest_error_code != 0) { \
|
||||
printf("Module %s: Aborting\n", picotest_module); \
|
||||
return -1; \
|
||||
}
|
||||
|
||||
#define PICOTEST_END_TEST() if (picotest_error_code != 0) \
|
||||
{printf("%s: Failed\n", picotest_description); return -1;} \
|
||||
else \
|
||||
{printf("%s: Success\n", picotest_description); return 0;}
|
||||
|
||||
|
||||
#endif
|
Reference in New Issue
Block a user