/* * Copyright © 2015 Samsung Electronics Co., Ltd * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sublicense, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ #ifndef Z_UNIT_C_IMPL_H #define Z_UNIT_C_IMPL_H /** * @file * Internal details to bridge the public API - should not be used * directly in user code. */ #include #include #ifdef __cplusplus extern "C" { #endif enum zuc_check_op { ZUC_OP_TRUE, ZUC_OP_FALSE, ZUC_OP_NULL, ZUC_OP_NOT_NULL, ZUC_OP_EQ, ZUC_OP_NE, ZUC_OP_GE, ZUC_OP_GT, ZUC_OP_LE, ZUC_OP_LT, ZUC_OP_TERMINATE, ZUC_OP_TRACEPOINT }; enum zuc_check_valtype { ZUC_VAL_INT, ZUC_VAL_CSTR, ZUC_VAL_PTR, }; typedef void (*zucimpl_test_fn)(void); typedef void (*zucimpl_test_fn_f)(void *); /** * Internal use structure for automatic test case registration. * Should not be used directly in code. */ struct zuc_registration { const char *tcase; /**< Name of the test case. */ const char *test; /**< Name of the specific test. */ const struct zuc_fixture* fxt; /**< Optional fixture for test/case. */ zucimpl_test_fn fn; /**< function implementing base test. */ zucimpl_test_fn_f fn_f; /**< function implementing test with fixture. */ } __attribute__ ((aligned (32))); int zucimpl_run_tests(void); void zucimpl_terminate(char const *file, int line, bool fail, bool fatal, const char *msg); int zucimpl_tracepoint(char const *file, int line, const char *fmt, ...) __attribute__ ((format (printf, 3, 4))); int zucimpl_expect_pred2(char const *file, int line, enum zuc_check_op, enum zuc_check_valtype valtype, bool fatal, intptr_t lhs, intptr_t rhs, const char *lhs_str, const char* rhs_str); #ifdef __cplusplus } #endif #endif /* Z_UNIT_C_IMPL_H */