diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 00000000..e69de29b diff --git a/FAQ.html b/FAQ.html new file mode 100644 index 00000000..cf23c2d7 --- /dev/null +++ b/FAQ.html @@ -0,0 +1,114 @@ + + + + + + + +cutest: FAQ + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
FAQ
+
+
+

+Syntax error : missing 'token' before identifier ...

+

It is likely that you are using version 1.x.x and trying to use syntax like ASSERT_EQ_INT(a, b, fmt, ...) to print something custom.

+

Due to a bug of MSVC (VA_ARGS incorrectly passed to nested macro as a single argument), we are not able to pass a const char* string to parameter fmt.

+

To avoid this compiler error, use:

ASSERT_EQ_INT(a, b, "example print %d", _L);
+
#define ASSERT_EQ_INT(a, b,...)
Definition: cutest.h:894
+

instead of:

const char* fmt = "example print %d";
+
ASSERT_EQ_INT(a, b, fmt, _L);
+
+
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..c2ce10b9 --- /dev/null +++ b/annotated.html @@ -0,0 +1,111 @@ + + + + + + + +cutest: Data Structures + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+
+
Here are the data structures with brief descriptions:
+ + + +
 Ccutest_hook_tCUnitTest hook
 Ccutest_porting_timespec_t
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 00000000..0b1ac224 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,5 @@ +var annotated_dup = +[ + [ "cutest_hook_t", "structcutest__hook__t.html", "structcutest__hook__t" ], + [ "cutest_porting_timespec_t", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#structcutest__porting__timespec__t", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME_structcutest__porting__timespec__t" ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 00000000..224b29aa Binary files /dev/null and b/bc_s.png differ diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 00000000..31ca888d Binary files /dev/null and b/bc_sd.png differ diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 00000000..940a0b95 Binary files /dev/null and b/bdwn.png differ diff --git a/classes.html b/classes.html new file mode 100644 index 00000000..c4dadab3 --- /dev/null +++ b/classes.html @@ -0,0 +1,111 @@ + + + + + + + +cutest: Data Structure Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structure Index
+
+
+ + +
+
+ + + + diff --git a/closed.png b/closed.png new file mode 100644 index 00000000..98cc2c90 Binary files /dev/null and b/closed.png differ diff --git a/cutest_8h.html b/cutest_8h.html new file mode 100644 index 00000000..f0661d37 --- /dev/null +++ b/cutest_8h.html @@ -0,0 +1,654 @@ + + + + + + + +cutest: include/cutest.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
cutest.h File Reference
+
+
+
#include <stdio.h>
+#include <stdarg.h>
+
+ + Include dependency graph for cutest.h:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + +

+Data Structures

struct  cutest_hook_t
 CUnitTest hook. More...
 
struct  cutest_porting_timespec_t
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define CUTEST_VERSION_MAJOR   3
 Major version.
 
#define CUTEST_VERSION_MINOR   0
 Minor version.
 
#define CUTEST_VERSION_PATCH   1
 Patch version.
 
#define CUTEST_VERSION_PREREL   0
 Development version.
 
#define TEST_C_API
 Ensure the api is exposed as C function.
 
#define TEST_FIXTURE_SETUP(fixture)    TEST_C_API static void s_cutest_fixture_setup_##fixture(void)
 Setup test fixture.
 
#define TEST_FIXTURE_TEARDOWN(fixture)    TEST_C_API static void s_cutest_fixture_teardown_##fixture(void)
 TearDown test suit.
 
#define TEST_GET_PARAM()    (_test_parameterized_data[_test_parameterized_idx])
 Get parameterized data.
 
#define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE, ...)
 Define parameterized data for fixture.
 
#define TEST_PARAMETERIZED_SUPPRESS_UNUSED    (void)_test_parameterized_data; (void)_test_parameterized_idx
 Suppress unused parameter warning if TEST_GET_PARAM() is not used.
 
#define TEST_P(fixture, test)
 Parameterized Test.
 
#define TEST_F(fixture, test)
 Test Fixture.
 
#define TEST(fixture, test)
 Simple Test.
 
#define TEST_INITIALIZER(f)    TEST_C_API void f(void)
 Function constructor.
 
#define TEST_NEED_MANUAL_REGISTRATION   1
 
#define TEST_MANUAL_DECLARE_TEST_INTERFACE(fixture, test)    TEST_C_API void cutest_usertest_interface_##fixture##_##test();
 Whether manual registration is needed.
 
#define TEST_MANUAL_REGISTER_TEST_INTERFACE(fixture, test)    cutest_usertest_interface_##fixture##_##test();
 Call test interface.
 
#define ASSERT_EQ_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INT(a, b, ...)   ASSERT_TEMPLATE(int, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT(a, b, ...)   ASSERT_TEMPLATE(int, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT(a, b, ...)   ASSERT_TEMPLATE(int, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT(a, b, ...)   ASSERT_TEMPLATE(int, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT(a, b, ...)   ASSERT_TEMPLATE(int, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT(a, b, ...)   ASSERT_TEMPLATE(int, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_LONG(a, b, ...)   ASSERT_TEMPLATE(long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_LONG(a, b, ...)   ASSERT_TEMPLATE(long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_LONG(a, b, ...)   ASSERT_TEMPLATE(long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_STR(a, b, ...)   ASSERT_TEMPLATE(const char*, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_STR(a, b, ...)   ASSERT_TEMPLATE(const char*, !=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, >=, a, b, __VA_ARGS__)
 
#define ASSERT_EQ_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, >=, a, b, __VA_ARGS__)
 
#define TEST_REGISTER_TYPE_ONCE(TYPE, fn_cmp, fn_dump)
 Declare and register custom type.
 
#define ASSERT_TEMPLATE(TYPE, OP, a, b, fmt, ...)
 Compare template.
 
+ + + + + + + + + +

+Typedefs

typedef struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t
 
typedef void(* cutest_porting_longjmp_fn) (cutest_porting_jmpbuf_t *buf, int val)
 Function protocol for longjmp().
 
typedef void(* cutest_porting_setjmp_fn) (cutest_porting_jmpbuf_t *buf, cutest_porting_longjmp_fn fn_longjmp, int val, void *data)
 Execute function when call setjmp().
 
+ + + +

+Enumerations

enum  cutest_porting_color_t { CUTEST_COLOR_DEFAULT +, CUTEST_COLOR_RED +, CUTEST_COLOR_GREEN +, CUTEST_COLOR_YELLOW + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int cutest_run_tests (int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
 Run all test cases.
 
const char * cutest_get_current_fixture (void)
 Get current running suit name.
 
const char * cutest_get_current_test (void)
 Get current running case name.
 
void cutest_skip_test (void)
 Skip current test case.
 
void cutest_porting_abort (const char *fmt,...)
 
void cutest_porting_clock_gettime (cutest_porting_timespec_t *tp)
 
int cutest_porting_cvfprintf (FILE *stream, int color, const char *fmt, va_list ap)
 Colorful print.
 
void * cutest_porting_gettid (void)
 Get current thread ID.
 
void cutest_porting_setjmp (cutest_porting_setjmp_fn execute, void *data)
 Wrapper for setjmp() and longjmp().
 
int cutest_porting_compare_floating_number (int type, const void *v1, const void *v2)
 Floating number compare.
 
+

Macro Definition Documentation

+ +

◆ CUTEST_VERSION_MAJOR

+ +
+
+ + + + +
#define CUTEST_VERSION_MAJOR   3
+
+ +

Major version.

+ +

Definition at line 103 of file cutest.h.

+ +
+
+ +

◆ CUTEST_VERSION_MINOR

+ +
+
+ + + + +
#define CUTEST_VERSION_MINOR   0
+
+ +

Minor version.

+ +

Definition at line 108 of file cutest.h.

+ +
+
+ +

◆ CUTEST_VERSION_PATCH

+ +
+
+ + + + +
#define CUTEST_VERSION_PATCH   1
+
+ +

Patch version.

+ +

Definition at line 113 of file cutest.h.

+ +
+
+ +

◆ CUTEST_VERSION_PREREL

+ +
+
+ + + + +
#define CUTEST_VERSION_PREREL   0
+
+ +

Development version.

+ +

Definition at line 118 of file cutest.h.

+ +
+
+ +

◆ TEST_C_API

+ +
+
+ + + + +
#define TEST_C_API
+
+ +

Ensure the api is exposed as C function.

+ +

Definition at line 126 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/cutest_8h.js b/cutest_8h.js new file mode 100644 index 00000000..95f622cc --- /dev/null +++ b/cutest_8h.js @@ -0,0 +1,199 @@ +var cutest_8h = +[ + [ "ASSERT_EQ_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga429e4d95fbcf76282b66cc06a3a8ab7b", null ], + [ "ASSERT_EQ_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga9292f067fd55493ed1cd8d6aa9c4c29d", null ], + [ "ASSERT_EQ_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#gadaf1c30e0609832f337b7c51a066f698", null ], + [ "ASSERT_EQ_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gae5e8e16bb4b7090837f02fd5d3f6ac22", null ], + [ "ASSERT_EQ_INT", "group__TEST__ASSERTION__C89__INT.html#ga00e936c37503216d792143e051f37f98", null ], + [ "ASSERT_EQ_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga4ccecf97c64c88badfe03402e4ddfb51", null ], + [ "ASSERT_EQ_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga41d93574e8d950c8a89ac6e0a42c3b02", null ], + [ "ASSERT_EQ_INT64", "group__TEST__ASSERTION__C99__INT64.html#ga20fb7aa4ffb63f14ada3ba65e981140f", null ], + [ "ASSERT_EQ_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga57686c5ec380de8a7807971bc017bd6f", null ], + [ "ASSERT_EQ_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga2a89144f4cb7fa05a76419a7fb7ead9f", null ], + [ "ASSERT_EQ_LONG", "group__TEST__ASSERTION__C89__LONG.html#gab13fe26ce4f584ed49f16e2e3b28b87f", null ], + [ "ASSERT_EQ_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gad8681a5e7e11320e0c76f0a709dedc8e", null ], + [ "ASSERT_EQ_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga77e1fde009a80b15e5ecf03ac6ab3368", null ], + [ "ASSERT_EQ_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gafe118fb3e83abff21548271c55c9939e", null ], + [ "ASSERT_EQ_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#gae9ea65fbbf12d6d0e4e3fd245b5c5f72", null ], + [ "ASSERT_EQ_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gac2bfadf5321a6b587d1565fdcc49dafb", null ], + [ "ASSERT_EQ_STR", "group__TEST__ASSERTION__C89__STR.html#ga07ead71abb14e877880a8761691289ba", null ], + [ "ASSERT_EQ_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga5a73c95c12ea13f45f7eb6fc5c1337ee", null ], + [ "ASSERT_EQ_UINT", "group__TEST__ASSERTION__C89__UINT.html#gae6547cac4da13bf5248d9eb613808227", null ], + [ "ASSERT_EQ_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga8c95b8c29bc5df68d7dad0dfe3ce94e1", null ], + [ "ASSERT_EQ_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga910eb9c631435a63f5d08e63f0b78e62", null ], + [ "ASSERT_EQ_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#gafd2c8020ed2ff7b9e5a22267e0322253", null ], + [ "ASSERT_EQ_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga673192226de10989d45951e43602cd31", null ], + [ "ASSERT_EQ_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga8ff92f05d129a5bcc2ece76df3469295", null ], + [ "ASSERT_EQ_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gaa2b14762cbffdfb5576d10efe27162fb", null ], + [ "ASSERT_EQ_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gace4e1a652da5db10edecb5b227219406", null ], + [ "ASSERT_EQ_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga753765df6af3fc210c52f41b00bbc68b", null ], + [ "ASSERT_GE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga99ae329bffa596b0519db7ae225cf7ab", null ], + [ "ASSERT_GE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#gaa2407db1328a647b1d851ecc6e577aff", null ], + [ "ASSERT_GE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga57803af4fc559aab0b3bcaff017ee1ac", null ], + [ "ASSERT_GE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga71c04dce8fdb1116bd794f9581f483a7", null ], + [ "ASSERT_GE_INT", "group__TEST__ASSERTION__C89__INT.html#ga721b733e8417ff0b2ee5bc140e2de897", null ], + [ "ASSERT_GE_INT16", "group__TEST__ASSERTION__C99__INT16.html#gab17d555fe0144894a44a7430c238ed52", null ], + [ "ASSERT_GE_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga0afc705b5064ecc1ec9f61afa5e19572", null ], + [ "ASSERT_GE_INT64", "group__TEST__ASSERTION__C99__INT64.html#gab035565e23b6f32dd420427b9d2fcc15", null ], + [ "ASSERT_GE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga58c128a90dec195120fe3928c1f4827a", null ], + [ "ASSERT_GE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gab721d6ac0a703ed8eb4c0f9fd925eccd", null ], + [ "ASSERT_GE_LONG", "group__TEST__ASSERTION__C89__LONG.html#ga74bb5df9d455475740d8d00dd285e343", null ], + [ "ASSERT_GE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#ga669b932c96f41e17b5b699fcab04f2f9", null ], + [ "ASSERT_GE_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga5f743c7c8de0b86490614ee2417c5b62", null ], + [ "ASSERT_GE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gaf7611d2f88579f3b0394f844eb114a76", null ], + [ "ASSERT_GE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga68894034ee57581b1ead55c58cef18b0", null ], + [ "ASSERT_GE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gab7c72c6ad745b70e8a561a8905100e0e", null ], + [ "ASSERT_GE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga1b4d82808fcffa015e8a60413a20af0d", null ], + [ "ASSERT_GE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga1f1fb8e938d372e0b7649f196bf8c5b7", null ], + [ "ASSERT_GE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga0b62ddcdec1765e20d7adcfe0088efc7", null ], + [ "ASSERT_GE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga2f6338b8386b8231219483e5c0a5f162", null ], + [ "ASSERT_GE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga131c7214d2b1ee9c8ea2ae670d09791e", null ], + [ "ASSERT_GE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga13588bc525f815d73bee46a4df6f5fda", null ], + [ "ASSERT_GE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga625f0ea2304d3ba69ea53001919b70fc", null ], + [ "ASSERT_GE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gad0c5ba5a5cdfa3068dccab5390a9c9f2", null ], + [ "ASSERT_GE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga627c4a05500e8cf7f76f31e93bb3c28f", null ], + [ "ASSERT_GE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gaf230d7180a3e7855fde15ca2bf46f645", null ], + [ "ASSERT_GT_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga3f70a37d27bc6586632b4a86e547217b", null ], + [ "ASSERT_GT_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga93eb1c1e9ff7d1af8df24b7015818cca", null ], + [ "ASSERT_GT_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga5aa7de3b507f8fdea9bd8860d803bea0", null ], + [ "ASSERT_GT_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga91df0bd3d25f6688aeb71efb144b69d6", null ], + [ "ASSERT_GT_INT", "group__TEST__ASSERTION__C89__INT.html#ga2d6d286aea4fd9d47eed8969ab3c4315", null ], + [ "ASSERT_GT_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga1fc0463169acfb467d9f12f85faf10ef", null ], + [ "ASSERT_GT_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga18a5c6e5a019a02ccac47a740e1819b8", null ], + [ "ASSERT_GT_INT64", "group__TEST__ASSERTION__C99__INT64.html#gaf94360783a2768e380b32b1aeafe48b6", null ], + [ "ASSERT_GT_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga484bf02b3c8d784ea880ae8a9e3c313b", null ], + [ "ASSERT_GT_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gac6a3ee89ad18c31f474bd1a482369b8e", null ], + [ "ASSERT_GT_LONG", "group__TEST__ASSERTION__C89__LONG.html#gac40120428f370a97e7229fe16ed3c2a5", null ], + [ "ASSERT_GT_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gac4d927735bf26d9dacfbe59977fb5c97", null ], + [ "ASSERT_GT_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga1dae1ad2e70074b5709728e22786ffaa", null ], + [ "ASSERT_GT_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gaf225ea7c10b3753cee4544917897a05e", null ], + [ "ASSERT_GT_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#gaa662186b41eb948d69b91859ab7945d1", null ], + [ "ASSERT_GT_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#ga7a89f38c7a24b2ddf4e191d52b86a48a", null ], + [ "ASSERT_GT_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga7126812923fe80d35b4b09bdf7b79fc3", null ], + [ "ASSERT_GT_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga8a6b626bef56290f44aabab665a48fad", null ], + [ "ASSERT_GT_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga8c5a5839a1742f3748168be216d0491b", null ], + [ "ASSERT_GT_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga0c6169f4d492e29e602064435e35f9d6", null ], + [ "ASSERT_GT_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga372379e092c8e5b3877ec21556e6381b", null ], + [ "ASSERT_GT_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#gae8213420f9e7206127882b723cd24d73", null ], + [ "ASSERT_GT_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga7c4ca3b99ef12e06fb4c3ec68b6829cc", null ], + [ "ASSERT_GT_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#ga34ebb67ce239794522a1207bc9f96baf", null ], + [ "ASSERT_GT_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga90c4b76c11db6f40637c8551436d152a", null ], + [ "ASSERT_GT_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gaaaea95a22d8025fce8b21f1250040211", null ], + [ "ASSERT_LE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga3e0b6bea91db3e5435678b5da7cd9b71", null ], + [ "ASSERT_LE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga71a24aec138a0b0aeac0c9853314028b", null ], + [ "ASSERT_LE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga2a38dd68eb793738525f85526561c48f", null ], + [ "ASSERT_LE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gab45f4639ad1b30443c35ec6f48db4d6a", null ], + [ "ASSERT_LE_INT", "group__TEST__ASSERTION__C89__INT.html#gadf74641e1759fe90d4d9e3878081a9f6", null ], + [ "ASSERT_LE_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga4edc66a4ee0033c9df3df0e270020bb7", null ], + [ "ASSERT_LE_INT32", "group__TEST__ASSERTION__C99__INT32.html#gaf2f805c4c9f6061b9a35e3ca20e4dffc", null ], + [ "ASSERT_LE_INT64", "group__TEST__ASSERTION__C99__INT64.html#ga66dbd10e228de205147ad76eee86884e", null ], + [ "ASSERT_LE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga3aed8576c3bf350e56baea5816d08ab3", null ], + [ "ASSERT_LE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gacd1eafe33842a7ff4e890d02d256cdf4", null ], + [ "ASSERT_LE_LONG", "group__TEST__ASSERTION__C89__LONG.html#gafd0f588791bf146245d3c96cdad15c96", null ], + [ "ASSERT_LE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#ga6da3e2421c79c673a6c6fd50d730ccff", null ], + [ "ASSERT_LE_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga7c82aad52fd04d2e0bdaa63f45a5fa40", null ], + [ "ASSERT_LE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga23e0a6ae785600a40fc0afbdf5ec77e7", null ], + [ "ASSERT_LE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga9d711bc304a53ea629ed5d6e131a92cf", null ], + [ "ASSERT_LE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#ga5cd1efc35944e10ed981baa713799789", null ], + [ "ASSERT_LE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga0df3bed443b0ad3b6d3c27bb99d5f47d", null ], + [ "ASSERT_LE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga73417ff497326f02f7e28bdc2b7e4d00", null ], + [ "ASSERT_LE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#gaf19e64ab38c8aa5540e14efa3855f122", null ], + [ "ASSERT_LE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#gab3ed94c26325efdb5c6d6aefe6de8964", null ], + [ "ASSERT_LE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#gabd50a70f60c547e597ed0682563fd91b", null ], + [ "ASSERT_LE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga244aa40f164e4b4a4ff7465242e2cdc0", null ], + [ "ASSERT_LE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga7c593288a85644cc53a36f3c8dceb1e3", null ], + [ "ASSERT_LE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gaea4e359a0d01466a73697150bd024ede", null ], + [ "ASSERT_LE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga1a64507846731914b63fb0a9a938c8dc", null ], + [ "ASSERT_LE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga94d6121b2805d6c44876317249d1cb42", null ], + [ "ASSERT_LT_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#gafee34cd9be1878086460036c8348314c", null ], + [ "ASSERT_LT_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga6abef20b8bd0ea3697f1700f47e5613e", null ], + [ "ASSERT_LT_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga8bd1dc9da9ff3347e69dcc46ce20947f", null ], + [ "ASSERT_LT_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gac1508ae1737d673ea3afed6282f6c1dd", null ], + [ "ASSERT_LT_INT", "group__TEST__ASSERTION__C89__INT.html#ga6914c45a92ec29d5404668f1e0e92c77", null ], + [ "ASSERT_LT_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga8d31ead11197c6dc894a095bfaf43aff", null ], + [ "ASSERT_LT_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga9de332509b999c1c755324a072a4381c", null ], + [ "ASSERT_LT_INT64", "group__TEST__ASSERTION__C99__INT64.html#gac9d935df51ae2c9cb7c4807c4ef3ddca", null ], + [ "ASSERT_LT_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga368c842be7f3fcc3081af854d87686d4", null ], + [ "ASSERT_LT_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga33e1d48b54ef225dedf2340a3f29922f", null ], + [ "ASSERT_LT_LONG", "group__TEST__ASSERTION__C89__LONG.html#ga7e6a5a8d5597afa453fc936a98c48ce7", null ], + [ "ASSERT_LT_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gae6a2c47becbc02a43485703c6c6265d1", null ], + [ "ASSERT_LT_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga2440793a866c6cc0a8ddabac0f7397c6", null ], + [ "ASSERT_LT_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga8b87c905be8d2d99447076d6d4dcb01f", null ], + [ "ASSERT_LT_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga2f20ef618b8c74025598b445e2675c73", null ], + [ "ASSERT_LT_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gab1fbae9b414a0ab59514ad35d7033e8e", null ], + [ "ASSERT_LT_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga0c314d76dc653f46292e6633d55627ff", null ], + [ "ASSERT_LT_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga2ad9c498573a42817ed297af029f2896", null ], + [ "ASSERT_LT_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#gabb9dd87fa385e4947af582c98e514ef8", null ], + [ "ASSERT_LT_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga60a38e1664f957cc913f4f1ef2855280", null ], + [ "ASSERT_LT_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga974f1f232481464f2f2274b76fd5b7ed", null ], + [ "ASSERT_LT_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga132596e386e185aff33cb64bd5bde088", null ], + [ "ASSERT_LT_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga0a90fbcdca9d48d7aa7de3fa4dd65748", null ], + [ "ASSERT_LT_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gadf477662adf7d4ba438369cd47cb9d67", null ], + [ "ASSERT_LT_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gab2fa067fa63cae555dc68da2de385b9e", null ], + [ "ASSERT_LT_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gac7bfc10f4ddce619577ff50fa44a267f", null ], + [ "ASSERT_NE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#gac0190044e2845928566fbb52be78370a", null ], + [ "ASSERT_NE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga162896fca9ea7e6599dfac15cd9fb246", null ], + [ "ASSERT_NE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga24b7526c5adde11cca7566e798eec989", null ], + [ "ASSERT_NE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga42d69efefb68acdb5bce3dccec4d8955", null ], + [ "ASSERT_NE_INT", "group__TEST__ASSERTION__C89__INT.html#ga295a890a62535abaf81bd967cf7bf990", null ], + [ "ASSERT_NE_INT16", "group__TEST__ASSERTION__C99__INT16.html#gad956dc677bca82b8550e4f6d9c0af5d5", null ], + [ "ASSERT_NE_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga706c6538fe3693df977e95958ae38a41", null ], + [ "ASSERT_NE_INT64", "group__TEST__ASSERTION__C99__INT64.html#gae7d158708de8c49d6c446ffb65d2e64c", null ], + [ "ASSERT_NE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga216d5fbdf919e3c97a0e95b4383b4fbb", null ], + [ "ASSERT_NE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga5280c05b9355c44933f8327336096eaa", null ], + [ "ASSERT_NE_LONG", "group__TEST__ASSERTION__C89__LONG.html#gae2c3c8f431131b1ff02c8b92234788fc", null ], + [ "ASSERT_NE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gaf23562a67c62d0371fd69c5ae3030248", null ], + [ "ASSERT_NE_PTR", "group__TEST__ASSERTION__C89__PTR.html#gab7fc4346e2bef7569bd8512975654fda", null ], + [ "ASSERT_NE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga0e64badd193ddbbd02a8dabe94d17e6d", null ], + [ "ASSERT_NE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga4b4c42dc5046760bedead101210d6b9f", null ], + [ "ASSERT_NE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gaa19694ad3b0c2b4943aaec3f087a0993", null ], + [ "ASSERT_NE_STR", "group__TEST__ASSERTION__C89__STR.html#ga26aded1f804f203d209583d561e670e6", null ], + [ "ASSERT_NE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga720e7ca030acd20644669395531ffe0b", null ], + [ "ASSERT_NE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga66111c2726120ee052ccd28935fadb62", null ], + [ "ASSERT_NE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga6b8fe9830899581b39e91af63f2debe7", null ], + [ "ASSERT_NE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#gad2ca6f079bb4c1f6e9d23e8bd41726c7", null ], + [ "ASSERT_NE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga5c9c65b487f96014ae884748c57d408f", null ], + [ "ASSERT_NE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga8d0919935d7f2f75f5f9f498adc730dc", null ], + [ "ASSERT_NE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#gac97b2b7385009404ecafbf79133bc3a5", null ], + [ "ASSERT_NE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#ga2dec6dbf5284659c8afb55df7e73d282", null ], + [ "ASSERT_NE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gafeda3486e47756df9e2d0c04cb9524d8", null ], + [ "ASSERT_NE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga88b55d8eea3bb390e2ad63bccc3aa569", null ], + [ "ASSERT_TEMPLATE", "group__TEST__CUSTOM__TYPE.html#ga92ca4696dab06a5102f29d080c23bde7", null ], + [ "CUTEST_VERSION_MAJOR", "cutest_8h.html#a90efd23c3749664e7802aea66f6259f8", null ], + [ "CUTEST_VERSION_MINOR", "cutest_8h.html#ac4bb316988e289b6949511b4c1f9327a", null ], + [ "CUTEST_VERSION_PATCH", "cutest_8h.html#a7de8c4408e84461c4f93a3368bf1047a", null ], + [ "CUTEST_VERSION_PREREL", "cutest_8h.html#a9a70533ef1f680682a7fe6bbf135c7a5", null ], + [ "TEST", "group__TEST__DEFINE.html#gac93f21795a575d224cfe3e3b66f48acf", null ], + [ "TEST_C_API", "cutest_8h.html#ac3c2c470a197a8a315fe87afafaa2887", null ], + [ "TEST_F", "group__TEST__DEFINE.html#ga575a559e1183281e6639b661b177e247", null ], + [ "TEST_FIXTURE_SETUP", "group__TEST__DEFINE.html#gadb2fe247b7b65cb1fb5a6dd1b7b0124c", null ], + [ "TEST_FIXTURE_TEARDOWN", "group__TEST__DEFINE.html#ga62c5baa0dd19af30aa89f4c709012744", null ], + [ "TEST_GET_PARAM", "group__TEST__DEFINE.html#gaa478699429dd8fe58d204887bdc59bc9", null ], + [ "TEST_INITIALIZER", "group__TEST__MANUAL__REGISTRATION.html#gaf8423fba14309d2ec748e8fea8140cd0", null ], + [ "TEST_MANUAL_DECLARE_TEST_INTERFACE", "group__TEST__MANUAL__REGISTRATION.html#ga088b89f4f8b396a46ebd37cd5232c2d9", null ], + [ "TEST_MANUAL_REGISTER_TEST_INTERFACE", "group__TEST__MANUAL__REGISTRATION.html#ga1b927d6ac5457b8dd2388996370304b2", null ], + [ "TEST_NEED_MANUAL_REGISTRATION", "group__TEST__MANUAL__REGISTRATION.html#gab0041e70abff2e3b9239e783785b2260", null ], + [ "TEST_P", "group__TEST__DEFINE.html#ga3fe7e1133df7c29b10ae1975ba63c67d", null ], + [ "TEST_PARAMETERIZED_DEFINE", "group__TEST__DEFINE.html#gabe6f4afe8aa2d3cef6ee4a8df9d48a0e", null ], + [ "TEST_PARAMETERIZED_SUPPRESS_UNUSED", "group__TEST__DEFINE.html#gab26fb171905a6e620f1c091c9e0a022e", null ], + [ "TEST_REGISTER_TYPE_ONCE", "group__TEST__CUSTOM__TYPE.html#ga656b672186d93ed68416528c22251bbc", null ], + [ "cutest_porting_jmpbuf_t", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#gae6162236e92ca8c6991397ed0fd9a3cc", null ], + [ "cutest_porting_longjmp_fn", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga0c294a17e3d1c9b27dc1d01283dfc986", null ], + [ "cutest_porting_setjmp_fn", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga5da79e2d6db714f235703020ebc75534", null ], + [ "cutest_porting_color_t", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga5d1a457b08b19877db1868e2148d17d5", [ + [ "CUTEST_COLOR_DEFAULT", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5af940b3892295db55283cf41f48c12eae", null ], + [ "CUTEST_COLOR_RED", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1208fcc6dddc82fabf31735a12d98f68", null ], + [ "CUTEST_COLOR_GREEN", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1c8b09131a6368c1eb4227d220540b62", null ], + [ "CUTEST_COLOR_YELLOW", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5ab1b815014a22539750632e9b1db6cfc3", null ] + ] ], + [ "cutest_get_current_fixture", "group__TEST__RUN.html#ga7636bc77112126ea53aba25a3b757645", null ], + [ "cutest_get_current_test", "group__TEST__RUN.html#gaf6e4d455b57144a4740fea63e0c4d413", null ], + [ "cutest_porting_abort", "group__TEST__PORTING__SYSTEM__API__ABORT.html#ga108296e67136ae44b4fc30d459b8f05b", null ], + [ "cutest_porting_clock_gettime", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ga8167c2a3896fdad9761be02ba482a48c", null ], + [ "cutest_porting_compare_floating_number", "group__TEST__FLOATING__NUMBER.html#gaf2a94c291e6f3b9a86df24d8b768bcda", null ], + [ "cutest_porting_cvfprintf", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga1d13aa9e1315a076a42136933e710320", null ], + [ "cutest_porting_gettid", "group__TEST__PORTING__SYSTEM__API__GETTID.html#gaa01eddddeefc427e31411d493d1d8f91", null ], + [ "cutest_porting_setjmp", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#gaec860c1f1f9652d824b13abc8046d1cc", null ], + [ "cutest_run_tests", "group__TEST__RUN.html#ga68b356be458390a148ad1761e4b9355c", null ], + [ "cutest_skip_test", "group__TEST__RUN.html#gaf7cd1ae6ee5222ec410d37377f9f79f6", null ] +]; \ No newline at end of file diff --git a/cutest_8h__incl.map b/cutest_8h__incl.map new file mode 100644 index 00000000..02a80731 --- /dev/null +++ b/cutest_8h__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/cutest_8h__incl.md5 b/cutest_8h__incl.md5 new file mode 100644 index 00000000..5b06e7ff --- /dev/null +++ b/cutest_8h__incl.md5 @@ -0,0 +1 @@ +9138e818e8f7dc23a64579aa91111ea4 \ No newline at end of file diff --git a/cutest_8h__incl.png b/cutest_8h__incl.png new file mode 100644 index 00000000..ec731c64 Binary files /dev/null and b/cutest_8h__incl.png differ diff --git a/cutest_8h_source.html b/cutest_8h_source.html new file mode 100644 index 00000000..38c254c2 --- /dev/null +++ b/cutest_8h_source.html @@ -0,0 +1,785 @@ + + + + + + + +cutest: include/cutest.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
cutest.h
+
+
+Go to the documentation of this file.
1
+
90#ifndef __C_UNIT_TEST_H__
+
91#define __C_UNIT_TEST_H__
+
92
+
93#include <stdio.h>
+
94#include <stdarg.h>
+
95
+
96#ifdef __cplusplus
+
97extern "C" {
+
98#endif
+
99
+
103#define CUTEST_VERSION_MAJOR 3
+
104
+
108#define CUTEST_VERSION_MINOR 0
+
109
+
113#define CUTEST_VERSION_PATCH 1
+
114
+
118#define CUTEST_VERSION_PREREL 0
+
119
+
123#if defined(__cplusplus)
+
124#define TEST_C_API extern "C"
+
125#else
+
126#define TEST_C_API
+
127#endif
+
128
+
187#define TEST_FIXTURE_SETUP(fixture) \
+
188 TEST_C_API static void s_cutest_fixture_setup_##fixture(void)
+
189
+
196#define TEST_FIXTURE_TEARDOWN(fixture) \
+
197 TEST_C_API static void s_cutest_fixture_teardown_##fixture(void)
+
198
+
206#define TEST_GET_PARAM() \
+
207 (_test_parameterized_data[_test_parameterized_idx])
+
208
+
218#define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE, ...) \
+
219 TEST_C_API static void cutest_usertest_parameterized_register_##fixture##_##test(void (*cb)(TYPE*, unsigned long)) {\
+
220 static TYPE s_parameterized_userdata[] = { __VA_ARGS__ };\
+
221 static cutest_case_t s_tests[TEST_NARG(__VA_ARGS__)];\
+
222 unsigned long number_of_parameterized_data = sizeof(s_parameterized_userdata) / sizeof(s_parameterized_userdata[0]);\
+
223 unsigned long i = 0;\
+
224 for (i = 0; i < number_of_parameterized_data; i++) {\
+
225 s_tests[i].node = (cutest_map_node_t){ NULL, NULL, NULL };\
+
226 s_tests[i].info.fixture_name = #fixture;\
+
227 s_tests[i].info.case_name = #test;\
+
228 s_tests[i].stage.setup = s_cutest_fixture_setup_##fixture;\
+
229 s_tests[i].stage.teardown = s_cutest_fixture_teardown_##fixture;\
+
230 s_tests[i].stage.body = (void(*)(void*, unsigned long))cb;\
+
231 s_tests[i].data.mask = 0;\
+
232 s_tests[i].data.randkey = 0;\
+
233 s_tests[i].parameterized.type_name = #TYPE;\
+
234 s_tests[i].parameterized.test_data_cstr = TEST_STRINGIFY(__VA_ARGS__);\
+
235 s_tests[i].parameterized.param_data = s_parameterized_userdata;\
+
236 s_tests[i].parameterized.param_idx = i;\
+
237 cutest_register_case(&s_tests[i]);\
+
238 }\
+
239 }\
+
240 typedef TYPE u_cutest_parameterized_type_##fixture##_##test\
+
241
+
246#define TEST_PARAMETERIZED_SUPPRESS_UNUSED \
+
247 (void)_test_parameterized_data; (void)_test_parameterized_idx
+
248
+
273#define TEST_P(fixture, test) \
+
274 TEST_C_API void u_cutest_body_##fixture##_##test(\
+
275 u_cutest_parameterized_type_##fixture##_##test*, unsigned long);\
+
276 TEST_INITIALIZER(cutest_usertest_interface_##fixture##_##test) {\
+
277 static unsigned char s_token = 0;\
+
278 if (s_token == 0) {\
+
279 s_token = 1;\
+
280 cutest_usertest_parameterized_register_##fixture##_##test(u_cutest_body_##fixture##_##test);\
+
281 }\
+
282 }\
+
283 TEST_C_API void u_cutest_body_##fixture##_##test(\
+
284 u_cutest_parameterized_type_##fixture##_##test* _test_parameterized_data,\
+
285 unsigned long _test_parameterized_idx)
+
286
+
294#define TEST_F(fixture, test) \
+
295 TEST_C_API void cutest_usertest_body_##fixture##_##test(void);\
+
296 TEST_C_API static void s_cutest_proxy_##fixture##_##test(void* _test_parameterized_data,\
+
297 unsigned long _test_parameterized_idx) {\
+
298 TEST_PARAMETERIZED_SUPPRESS_UNUSED;\
+
299 cutest_usertest_body_##fixture##_##test();\
+
300 }\
+
301 TEST_INITIALIZER(cutest_usertest_interface_##fixture##_##test) {\
+
302 static cutest_case_t _case_##fixture##_##test = {\
+
303 {\
+
304 NULL, NULL, NULL,\
+
305 }, /* .node */\
+
306 {\
+
307 #fixture,\
+
308 #test,\
+
309 }, /* .info */\
+
310 {\
+
311 s_cutest_fixture_setup_##fixture,\
+
312 s_cutest_fixture_teardown_##fixture,\
+
313 s_cutest_proxy_##fixture##_##test,\
+
314 }, /* .stage */\
+
315 {\
+
316 0, 0,\
+
317 }, /* .data */\
+
318 {\
+
319 NULL, NULL, NULL, 0,\
+
320 }, /* .parameterized */\
+
321 };\
+
322 static unsigned char s_token = 0;\
+
323 if (s_token == 0) {\
+
324 s_token = 1;\
+
325 cutest_register_case(&_case_##fixture##_##test);\
+
326 }\
+
327 }\
+
328 TEST_C_API void cutest_usertest_body_##fixture##_##test(void)
+
329
+
340#define TEST(fixture, test) \
+
341 TEST_C_API void cutest_usertest_body_##fixture##_##test(void);\
+
342 TEST_C_API static void s_cutest_proxy_##fixture##_##test(void* _test_parameterized_data,\
+
343 unsigned long _test_parameterized_idx) {\
+
344 TEST_PARAMETERIZED_SUPPRESS_UNUSED;\
+
345 cutest_usertest_body_##fixture##_##test();\
+
346 }\
+
347 TEST_INITIALIZER(cutest_usertest_interface_##fixture##_##test) {\
+
348 static cutest_case_t _case_##fixture##_##test = {\
+
349 {\
+
350 NULL, NULL, NULL,\
+
351 }, /* .node */\
+
352 {\
+
353 #fixture,\
+
354 #test,\
+
355 }, /* .info */\
+
356 {\
+
357 NULL, NULL,\
+
358 s_cutest_proxy_##fixture##_##test,\
+
359 }, /* .stage */\
+
360 {\
+
361 0, 0,\
+
362 }, /* .data */\
+
363 {\
+
364 NULL, NULL, NULL, 0,\
+
365 }, /* parameterized */\
+
366 };\
+
367 static unsigned char s_token = 0;\
+
368 if (s_token == 0) {\
+
369 s_token = 1;\
+
370 cutest_register_case(&_case_##fixture##_##test);\
+
371 }\
+
372 }\
+
373 TEST_C_API void cutest_usertest_body_##fixture##_##test(void)
+
374
+
381#ifdef _MSC_VER // Microsoft compilers
+
382# define TEST_NARG(...) \
+
383 TEST_INTERNAL_NARG3(TEST_INTERNAL_NARG4(__VA_ARGS__))
+
384# define TEST_INTERNAL_NARG4(...) \
+
385 unused, __VA_ARGS__
+
386# define TEST_INTERNAL_NARG3(...) \
+
387 TEST_EXPAND(TEST_INTERNAL_NARG(__VA_ARGS__, \
+
388 63, 62, 61, 60, 59, 58, 57, 56, \
+
389 55, 54, 53, 52, 51, 50, 49, 48, \
+
390 47, 46, 45, 44, 43, 42, 41, 40, \
+
391 39, 38, 37, 36, 35, 34, 33, 32, \
+
392 31, 30, 29, 28, 27, 26, 25, 24, \
+
393 23, 22, 21, 20, 19, 18, 17, 16, \
+
394 15, 14, 13, 12, 11, 10, 9, 8, \
+
395 7, 6, 5, 4, 3, 2, 1, 0) \
+
396 )
+
397# define TEST_INTERNAL_NARG(\
+
398 _1, _2, _3, _4, _5, _6, _7, _8, \
+
399 _9, _10, _11, _12, _13, _14, _15, _16, \
+
400 _17, _18, _19, _20, _21, _22, _23, _24, \
+
401 _25, _26, _27, _28, _29, _30, _31, _32, \
+
402 _33, _34, _35, _36, _37, _38, _39, _40, \
+
403 _41, _42, _43, _44, _45, _46, _47, _48, \
+
404 _49, _50, _51, _52, _53, _54, _55, _56, \
+
405 _57, _58, _59, _60, _61, _62, _63, _64, \
+
406 count, ...) count
+
407#else // Non-Microsoft compilers
+
408# define TEST_NARG(...) \
+
409 TEST_INTERNAL_NARG(0, ## __VA_ARGS__, 64, \
+
410 63, 62, 61, 60, 59, 58, 57, 56, \
+
411 55, 54, 53, 52, 51, 50, 49, 48, \
+
412 47, 46, 45, 44, 43, 42, 41, 40, \
+
413 39, 38, 37, 36, 35, 34, 33, 32, \
+
414 31, 30, 29, 28, 27, 26, 25, 24, \
+
415 23, 22, 21, 20, 19, 18, 17, 16, \
+
416 15, 14, 13, 12, 11, 10, 9, 8, \
+
417 7, 6, 5, 4, 3, 2, 1, 0)
+
418# define TEST_INTERNAL_NARG(_0, \
+
419 _1, _2, _3, _4, _5, _6, _7, _8, \
+
420 _9, _10, _11, _12, _13, _14, _15, _16, \
+
421 _17, _18, _19, _20, _21, _22, _23, _24, \
+
422 _25, _26, _27, _28, _29, _30, _31, _32, \
+
423 _33, _34, _35, _36, _37, _38, _39, _40, \
+
424 _41, _42, _43, _44, _45, _46, _47, _48, \
+
425 _49, _50, _51, _52, _53, _54, _55, _56, \
+
426 _57, _58, _59, _60, _61, _62, _63, _64, \
+
427 count, ...) count
+
428#endif
+
429
+
434#if defined(_MSC_VER)
+
435# define TEST_BARG(...) \
+
436 TEST_INTERNAL_BARG3(TEST_INTERNAL_BARG4(__VA_ARGS__))
+
437# define TEST_INTERNAL_BARG4(...) \
+
438 unused, __VA_ARGS__
+
439# define TEST_INTERNAL_BARG3(...) \
+
440 TEST_EXPAND(TEST_INTERNAL_BARG(__VA_ARGS__, \
+
441 1, 1, 1, 1, 1, 1, 1, 1, \
+
442 1, 1, 1, 1, 1, 1, 1, 1, \
+
443 1, 1, 1, 1, 1, 1, 1, 1, \
+
444 1, 1, 1, 1, 1, 1, 1, 1, \
+
445 1, 1, 1, 1, 1, 1, 1, 1, \
+
446 1, 1, 1, 1, 1, 1, 1, 1, \
+
447 1, 1, 1, 1, 1, 1, 1, 1, \
+
448 1, 1, 1, 1, 1, 1, 1, 0) \
+
449 )
+
450# define TEST_INTERNAL_BARG(\
+
451 _1, _2, _3, _4, _5, _6, _7, _8, \
+
452 _9, _10, _11, _12, _13, _14, _15, _16, \
+
453 _17, _18, _19, _20, _21, _22, _23, _24, \
+
454 _25, _26, _27, _28, _29, _30, _31, _32, \
+
455 _33, _34, _35, _36, _37, _38, _39, _40, \
+
456 _41, _42, _43, _44, _45, _46, _47, _48, \
+
457 _49, _50, _51, _52, _53, _54, _55, _56, \
+
458 _57, _58, _59, _60, _61, _62, _63, _64, \
+
459 count, ...) count
+
460#else
+
461# define TEST_BARG(...) \
+
462 TEST_INTERNAL_BARG(0, ## __VA_ARGS__, 1, \
+
463 1, 1, 1, 1, 1, 1, 1, 1, \
+
464 1, 1, 1, 1, 1, 1, 1, 1, \
+
465 1, 1, 1, 1, 1, 1, 1, 1, \
+
466 1, 1, 1, 1, 1, 1, 1, 1, \
+
467 1, 1, 1, 1, 1, 1, 1, 1, \
+
468 1, 1, 1, 1, 1, 1, 1, 1, \
+
469 1, 1, 1, 1, 1, 1, 1, 1, \
+
470 1, 1, 1, 1, 1, 1, 1, 0)
+
471# define TEST_INTERNAL_BARG(_0, \
+
472 _1, _2, _3, _4, _5, _6, _7, _8, \
+
473 _9, _10, _11, _12, _13, _14, _15, _16, \
+
474 _17, _18, _19, _20, _21, _22, _23, _24, \
+
475 _25, _26, _27, _28, _29, _30, _31, _32, \
+
476 _33, _34, _35, _36, _37, _38, _39, _40, \
+
477 _41, _42, _43, _44, _45, _46, _47, _48, \
+
478 _49, _50, _51, _52, _53, _54, _55, _56, \
+
479 _57, _58, _59, _60, _61, _62, _63, _64, \
+
480 count, ...) count
+
481#endif
+
482
+
483#define TEST_STRINGIFY(...) TEST_STRINGIFY_2(__VA_ARGS__)
+
484#define TEST_STRINGIFY_2(...) #__VA_ARGS__
+
485
+
486#define TEST_EXPAND(x) x
+
487#define TEST_JOIN(a, b) TEST_JOIN2(a, b)
+
488#define TEST_JOIN2(a, b) a##b
+
489
+
490typedef struct cutest_map_node
+
491{
+
492 struct cutest_map_node* __rb_parent_color;
+
493 struct cutest_map_node* rb_right;
+
494 struct cutest_map_node* rb_left;
+
495} cutest_map_node_t;
+
496
+
497typedef struct cutest_case
+
498{
+
499 cutest_map_node_t node;
+
500
+
501 struct
+
502 {
+
503 const char* fixture_name;
+
504 const char* case_name;
+
505 } info;
+
506
+
507 struct
+
508 {
+
509 void (*setup)(void);
+
510 void (*teardown)(void);
+
511 void (*body)(void*, unsigned long);
+
512 } stage;
+
513
+
514 struct
+
515 {
+
516 unsigned long mask;
+
517 unsigned long randkey;
+
518 } data;
+
519
+
520 struct
+
521 {
+
522 const char* type_name;
+
523 const char* test_data_cstr;
+
524 void* param_data;
+
525 unsigned long param_idx;
+
526 } parameterized;
+
527} cutest_case_t;
+
528
+
533void cutest_register_case(cutest_case_t* test_case);
+
534
+
659#ifdef TEST_INITIALIZER
+
660/*
+
661 * Do nothing.
+
662 * We assume user have their own way to register test entrypoint.
+
663 *
+
664 * @warning Function must have protocol of `void (*)(void)`.
+
665 */
+
666#elif __cplusplus
+
667# define TEST_INITIALIZER(f) \
+
668 TEST_C_API void f(void); \
+
669 struct f##_t_ { f##_t_(void) { f(); } }; f##_t_ f##_; \
+
670 TEST_C_API void f(void)
+
671#elif defined(_MSC_VER)
+
672# pragma section(".CRT$XCU",read)
+
673# define TEST_INITIALIZER2_(f,p) \
+
674 TEST_C_API void f(void); \
+
675 __declspec(allocate(".CRT$XCU")) void (*f##_)(void) = f; \
+
676 __pragma(comment(linker,"/include:" p #f "_")) \
+
677 TEST_C_API void f(void)
+
678# ifdef _WIN64
+
679# define TEST_INITIALIZER(f) TEST_INITIALIZER2_(f,"")
+
680# else
+
681# define TEST_INITIALIZER(f) TEST_INITIALIZER2_(f,"_")
+
682# endif
+
683#elif defined(__GNUC__) || defined(__clang__) || defined(__llvm__)
+
684# define TEST_INITIALIZER(f) \
+
685 TEST_C_API void f(void) __attribute__((__constructor__)); \
+
686 TEST_C_API void f(void)
+
687#else
+
688# define TEST_INITIALIZER(f) \
+
689 TEST_C_API void f(void)
+
690# define TEST_NEED_MANUAL_REGISTRATION 1
+
691#endif
+
692
+
699#if !defined(TEST_NEED_MANUAL_REGISTRATION)
+
700# define TEST_NEED_MANUAL_REGISTRATION 0
+
701#endif
+
702
+
708#define TEST_MANUAL_DECLARE_TEST_INTERFACE(fixture, test) \
+
709 TEST_C_API void cutest_usertest_interface_##fixture##_##test();
+
710
+
716#define TEST_MANUAL_REGISTER_TEST_INTERFACE(fixture, test) \
+
717 cutest_usertest_interface_##fixture##_##test();
+
718
+
824#define ASSERT_EQ_CHAR(a, b, ...) ASSERT_TEMPLATE(char, ==, a, b, __VA_ARGS__)
+
825#define ASSERT_NE_CHAR(a, b, ...) ASSERT_TEMPLATE(char, !=, a, b, __VA_ARGS__)
+
826#define ASSERT_LT_CHAR(a, b, ...) ASSERT_TEMPLATE(char, <, a, b, __VA_ARGS__)
+
827#define ASSERT_LE_CHAR(a, b, ...) ASSERT_TEMPLATE(char, <=, a, b, __VA_ARGS__)
+
828#define ASSERT_GT_CHAR(a, b, ...) ASSERT_TEMPLATE(char, >, a, b, __VA_ARGS__)
+
829#define ASSERT_GE_CHAR(a, b, ...) ASSERT_TEMPLATE(char, >=, a, b, __VA_ARGS__)
+
838#define ASSERT_EQ_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, ==, a, b, __VA_ARGS__)
+
839#define ASSERT_NE_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, !=, a, b, __VA_ARGS__)
+
840#define ASSERT_LT_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, <, a, b, __VA_ARGS__)
+
841#define ASSERT_LE_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, <=, a, b, __VA_ARGS__)
+
842#define ASSERT_GT_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, >, a, b, __VA_ARGS__)
+
843#define ASSERT_GE_DCHAR(a, b, ...) ASSERT_TEMPLATE(signed char, >=, a, b, __VA_ARGS__)
+
852#define ASSERT_EQ_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, ==, a, b, __VA_ARGS__)
+
853#define ASSERT_NE_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, !=, a, b, __VA_ARGS__)
+
854#define ASSERT_LT_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, <, a, b, __VA_ARGS__)
+
855#define ASSERT_LE_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, <=, a, b, __VA_ARGS__)
+
856#define ASSERT_GT_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, >, a, b, __VA_ARGS__)
+
857#define ASSERT_GE_UCHAR(a, b, ...) ASSERT_TEMPLATE(unsigned char, >=, a, b, __VA_ARGS__)
+
866#define ASSERT_EQ_SHORT(a, b, ...) ASSERT_TEMPLATE(short, ==, a, b, __VA_ARGS__)
+
867#define ASSERT_NE_SHORT(a, b, ...) ASSERT_TEMPLATE(short, !=, a, b, __VA_ARGS__)
+
868#define ASSERT_LT_SHORT(a, b, ...) ASSERT_TEMPLATE(short, <, a, b, __VA_ARGS__)
+
869#define ASSERT_LE_SHORT(a, b, ...) ASSERT_TEMPLATE(short, <=, a, b, __VA_ARGS__)
+
870#define ASSERT_GT_SHORT(a, b, ...) ASSERT_TEMPLATE(short, >, a, b, __VA_ARGS__)
+
871#define ASSERT_GE_SHORT(a, b, ...) ASSERT_TEMPLATE(short, >=, a, b, __VA_ARGS__)
+
880#define ASSERT_EQ_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, ==, a, b, __VA_ARGS__)
+
881#define ASSERT_NE_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, !=, a, b, __VA_ARGS__)
+
882#define ASSERT_LT_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, <, a, b, __VA_ARGS__)
+
883#define ASSERT_LE_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, <=, a, b, __VA_ARGS__)
+
884#define ASSERT_GT_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, >, a, b, __VA_ARGS__)
+
885#define ASSERT_GE_USHORT(a, b, ...) ASSERT_TEMPLATE(unsigned short, >=, a, b, __VA_ARGS__)
+
894#define ASSERT_EQ_INT(a, b, ...) ASSERT_TEMPLATE(int, ==, a, b, __VA_ARGS__)
+
895#define ASSERT_NE_INT(a, b, ...) ASSERT_TEMPLATE(int, !=, a, b, __VA_ARGS__)
+
896#define ASSERT_LT_INT(a, b, ...) ASSERT_TEMPLATE(int, <, a, b, __VA_ARGS__)
+
897#define ASSERT_LE_INT(a, b, ...) ASSERT_TEMPLATE(int, <=, a, b, __VA_ARGS__)
+
898#define ASSERT_GT_INT(a, b, ...) ASSERT_TEMPLATE(int, >, a, b, __VA_ARGS__)
+
899#define ASSERT_GE_INT(a, b, ...) ASSERT_TEMPLATE(int, >=, a, b, __VA_ARGS__)
+
908#define ASSERT_EQ_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, ==, a, b, __VA_ARGS__)
+
909#define ASSERT_NE_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, !=, a, b, __VA_ARGS__)
+
910#define ASSERT_LT_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, <, a, b, __VA_ARGS__)
+
911#define ASSERT_LE_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, <=, a, b, __VA_ARGS__)
+
912#define ASSERT_GT_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, >, a, b, __VA_ARGS__)
+
913#define ASSERT_GE_UINT(a, b, ...) ASSERT_TEMPLATE(unsigned int, >=, a, b, __VA_ARGS__)
+
922#define ASSERT_EQ_LONG(a, b, ...) ASSERT_TEMPLATE(long, ==, a, b, __VA_ARGS__)
+
923#define ASSERT_NE_LONG(a, b, ...) ASSERT_TEMPLATE(long, !=, a, b, __VA_ARGS__)
+
924#define ASSERT_LT_LONG(a, b, ...) ASSERT_TEMPLATE(long, <, a, b, __VA_ARGS__)
+
925#define ASSERT_LE_LONG(a, b, ...) ASSERT_TEMPLATE(long, <=, a, b, __VA_ARGS__)
+
926#define ASSERT_GT_LONG(a, b, ...) ASSERT_TEMPLATE(long, >, a, b, __VA_ARGS__)
+
927#define ASSERT_GE_LONG(a, b, ...) ASSERT_TEMPLATE(long, >=, a, b, __VA_ARGS__)
+
936#define ASSERT_EQ_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, ==, a, b, __VA_ARGS__)
+
937#define ASSERT_NE_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, !=, a, b, __VA_ARGS__)
+
938#define ASSERT_LT_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, <, a, b, __VA_ARGS__)
+
939#define ASSERT_LE_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, <=, a, b, __VA_ARGS__)
+
940#define ASSERT_GT_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, >, a, b, __VA_ARGS__)
+
941#define ASSERT_GE_ULONG(a, b, ...) ASSERT_TEMPLATE(unsigned long, >=, a, b, __VA_ARGS__)
+
950#define ASSERT_EQ_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, ==, a, b, __VA_ARGS__)
+
951#define ASSERT_NE_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, !=, a, b, __VA_ARGS__)
+
952#define ASSERT_LT_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, <, a, b, __VA_ARGS__)
+
953#define ASSERT_LE_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, <=, a, b, __VA_ARGS__)
+
954#define ASSERT_GT_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, >, a, b, __VA_ARGS__)
+
955#define ASSERT_GE_FLOAT(a, b, ...) ASSERT_TEMPLATE(float, >=, a, b, __VA_ARGS__)
+
964#define ASSERT_EQ_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, ==, a, b, __VA_ARGS__)
+
965#define ASSERT_NE_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, !=, a, b, __VA_ARGS__)
+
966#define ASSERT_LT_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, <, a, b, __VA_ARGS__)
+
967#define ASSERT_LE_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, <=, a, b, __VA_ARGS__)
+
968#define ASSERT_GT_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, >, a, b, __VA_ARGS__)
+
969#define ASSERT_GE_DOUBLE(a, b, ...) ASSERT_TEMPLATE(double, >=, a, b, __VA_ARGS__)
+
978#define ASSERT_EQ_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, ==, a, b, __VA_ARGS__)
+
979#define ASSERT_NE_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, !=, a, b, __VA_ARGS__)
+
980#define ASSERT_LT_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, <, a, b, __VA_ARGS__)
+
981#define ASSERT_LE_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, <=, a, b, __VA_ARGS__)
+
982#define ASSERT_GT_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, >, a, b, __VA_ARGS__)
+
983#define ASSERT_GE_PTR(a, b, ...) ASSERT_TEMPLATE(const void*, >=, a, b, __VA_ARGS__)
+
992#define ASSERT_EQ_STR(a, b, ...) ASSERT_TEMPLATE(const char*, ==, a, b, __VA_ARGS__)
+
993#define ASSERT_NE_STR(a, b, ...) ASSERT_TEMPLATE(const char*, !=, a, b, __VA_ARGS__)
+
1052#define ASSERT_EQ_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, ==, a, b, __VA_ARGS__)
+
1053#define ASSERT_NE_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, !=, a, b, __VA_ARGS__)
+
1054#define ASSERT_LT_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, <, a, b, __VA_ARGS__)
+
1055#define ASSERT_LE_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, <=, a, b, __VA_ARGS__)
+
1056#define ASSERT_GT_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, >, a, b, __VA_ARGS__)
+
1057#define ASSERT_GE_LONGLONG(a, b, ...) ASSERT_TEMPLATE(long long, >=, a, b, __VA_ARGS__)
+
1066#define ASSERT_EQ_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, ==, a, b, __VA_ARGS__)
+
1067#define ASSERT_NE_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, !=, a, b, __VA_ARGS__)
+
1068#define ASSERT_LT_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, <, a, b, __VA_ARGS__)
+
1069#define ASSERT_LE_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, <=, a, b, __VA_ARGS__)
+
1070#define ASSERT_GT_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, >, a, b, __VA_ARGS__)
+
1071#define ASSERT_GE_ULONGLONG(a, b, ...) ASSERT_TEMPLATE(unsigned long long, >=, a, b, __VA_ARGS__)
+
1080#define ASSERT_EQ_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, ==, a, b, __VA_ARGS__)
+
1081#define ASSERT_NE_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, !=, a, b, __VA_ARGS__)
+
1082#define ASSERT_LT_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, <, a, b, __VA_ARGS__)
+
1083#define ASSERT_LE_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, <=, a, b, __VA_ARGS__)
+
1084#define ASSERT_GT_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, >, a, b, __VA_ARGS__)
+
1085#define ASSERT_GE_INT8(a, b, ...) ASSERT_TEMPLATE(int8_t, >=, a, b, __VA_ARGS__)
+
1094#define ASSERT_EQ_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, ==, a, b, __VA_ARGS__)
+
1095#define ASSERT_NE_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, !=, a, b, __VA_ARGS__)
+
1096#define ASSERT_LT_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, <, a, b, __VA_ARGS__)
+
1097#define ASSERT_LE_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, <=, a, b, __VA_ARGS__)
+
1098#define ASSERT_GT_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, >, a, b, __VA_ARGS__)
+
1099#define ASSERT_GE_UINT8(a, b, ...) ASSERT_TEMPLATE(uint8_t, >=, a, b, __VA_ARGS__)
+
1108#define ASSERT_EQ_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, ==, a, b, __VA_ARGS__)
+
1109#define ASSERT_NE_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, !=, a, b, __VA_ARGS__)
+
1110#define ASSERT_LT_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, <, a, b, __VA_ARGS__)
+
1111#define ASSERT_LE_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, <=, a, b, __VA_ARGS__)
+
1112#define ASSERT_GT_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, >, a, b, __VA_ARGS__)
+
1113#define ASSERT_GE_INT16(a, b, ...) ASSERT_TEMPLATE(int16_t, >=, a, b, __VA_ARGS__)
+
1123#define ASSERT_EQ_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, ==, a, b, __VA_ARGS__)
+
1124#define ASSERT_NE_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, !=, a, b, __VA_ARGS__)
+
1125#define ASSERT_LT_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, <, a, b, __VA_ARGS__)
+
1126#define ASSERT_LE_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, <=, a, b, __VA_ARGS__)
+
1127#define ASSERT_GT_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, >, a, b, __VA_ARGS__)
+
1128#define ASSERT_GE_UINT16(a, b, ...) ASSERT_TEMPLATE(uint16_t, >=, a, b, __VA_ARGS__)
+
1137#define ASSERT_EQ_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, ==, a, b, __VA_ARGS__)
+
1138#define ASSERT_NE_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, !=, a, b, __VA_ARGS__)
+
1139#define ASSERT_LT_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, <, a, b, __VA_ARGS__)
+
1140#define ASSERT_LE_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, <=, a, b, __VA_ARGS__)
+
1141#define ASSERT_GT_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, >, a, b, __VA_ARGS__)
+
1142#define ASSERT_GE_INT32(a, b, ...) ASSERT_TEMPLATE(int32_t, >=, a, b, __VA_ARGS__)
+
1151#define ASSERT_EQ_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, ==, a, b, __VA_ARGS__)
+
1152#define ASSERT_NE_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, !=, a, b, __VA_ARGS__)
+
1153#define ASSERT_LT_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, <, a, b, __VA_ARGS__)
+
1154#define ASSERT_LE_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, <=, a, b, __VA_ARGS__)
+
1155#define ASSERT_GT_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, >, a, b, __VA_ARGS__)
+
1156#define ASSERT_GE_UINT32(a, b, ...) ASSERT_TEMPLATE(uint32_t, >=, a, b, __VA_ARGS__)
+
1165#define ASSERT_EQ_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, ==, a, b, __VA_ARGS__)
+
1166#define ASSERT_NE_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, !=, a, b, __VA_ARGS__)
+
1167#define ASSERT_LT_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, <, a, b, __VA_ARGS__)
+
1168#define ASSERT_LE_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, <=, a, b, __VA_ARGS__)
+
1169#define ASSERT_GT_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, >, a, b, __VA_ARGS__)
+
1170#define ASSERT_GE_INT64(a, b, ...) ASSERT_TEMPLATE(int64_t, >=, a, b, __VA_ARGS__)
+
1179#define ASSERT_EQ_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, ==, a, b, __VA_ARGS__)
+
1180#define ASSERT_NE_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, !=, a, b, __VA_ARGS__)
+
1181#define ASSERT_LT_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, <, a, b, __VA_ARGS__)
+
1182#define ASSERT_LE_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, <=, a, b, __VA_ARGS__)
+
1183#define ASSERT_GT_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, >, a, b, __VA_ARGS__)
+
1184#define ASSERT_GE_UINT64(a, b, ...) ASSERT_TEMPLATE(uint64_t, >=, a, b, __VA_ARGS__)
+
1193#define ASSERT_EQ_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, ==, a, b, __VA_ARGS__)
+
1194#define ASSERT_NE_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, !=, a, b, __VA_ARGS__)
+
1195#define ASSERT_LT_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, <, a, b, __VA_ARGS__)
+
1196#define ASSERT_LE_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, <=, a, b, __VA_ARGS__)
+
1197#define ASSERT_GT_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, >, a, b, __VA_ARGS__)
+
1198#define ASSERT_GE_SIZE(a, b, ...) ASSERT_TEMPLATE(size_t, >=, a, b, __VA_ARGS__)
+
1207#define ASSERT_EQ_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, ==, a, b, __VA_ARGS__)
+
1208#define ASSERT_NE_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, !=, a, b, __VA_ARGS__)
+
1209#define ASSERT_LT_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, <, a, b, __VA_ARGS__)
+
1210#define ASSERT_LE_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, <=, a, b, __VA_ARGS__)
+
1211#define ASSERT_GT_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, >, a, b, __VA_ARGS__)
+
1212#define ASSERT_GE_PTRDIFF(a, b, ...) ASSERT_TEMPLATE(ptrdiff_t, >=, a, b, __VA_ARGS__)
+
1221#define ASSERT_EQ_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, ==, a, b, __VA_ARGS__)
+
1222#define ASSERT_NE_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, !=, a, b, __VA_ARGS__)
+
1223#define ASSERT_LT_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, <, a, b, __VA_ARGS__)
+
1224#define ASSERT_LE_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, <=, a, b, __VA_ARGS__)
+
1225#define ASSERT_GT_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, >, a, b, __VA_ARGS__)
+
1226#define ASSERT_GE_INTPTR(a, b, ...) ASSERT_TEMPLATE(intptr_t, >=, a, b, __VA_ARGS__)
+
1235#define ASSERT_EQ_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, ==, a, b, __VA_ARGS__)
+
1236#define ASSERT_NE_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, !=, a, b, __VA_ARGS__)
+
1237#define ASSERT_LT_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, <, a, b, __VA_ARGS__)
+
1238#define ASSERT_LE_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, <=, a, b, __VA_ARGS__)
+
1239#define ASSERT_GT_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, >, a, b, __VA_ARGS__)
+
1240#define ASSERT_GE_UINTPTR(a, b, ...) ASSERT_TEMPLATE(uintptr_t, >=, a, b, __VA_ARGS__)
+
1334#define TEST_REGISTER_TYPE_ONCE(TYPE, fn_cmp, fn_dump) \
+
1335 do {\
+
1336 /* Try our best to check function protocol. */\
+
1337 int (*ckeck_type_cmp)(TYPE*,TYPE*) = fn_cmp; (void)ckeck_type_cmp;\
+
1338 int (*check_type_dump)(FILE*, TYPE*) = fn_dump; (void)check_type_dump;\
+
1339 /* Register type information. */\
+
1340 static cutest_type_info_t s_info = {\
+
1341 { NULL, NULL, NULL },\
+
1342 #TYPE,\
+
1343 (cutest_custom_type_cmp_fn)fn_cmp,\
+
1344 (cutest_custom_type_dump_fn)fn_dump,\
+
1345 };\
+
1346 static int s_token = 0;\
+
1347 if (s_token == 0) {\
+
1348 s_token = 1;\
+
1349 cutest_internal_register_type(&s_info);\
+
1350 }\
+
1351 } TEST_MSVC_WARNNING_GUARD(while (0), 4127)
+
1352
+
1363#define ASSERT_TEMPLATE(TYPE, OP, a, b, fmt, ...) \
+
1364 do {\
+
1365 TYPE _L = (a); TYPE _R = (b);\
+
1366 if (cutest_internal_compare(#TYPE, (const void*)&_L, (const void*)&_R) OP 0) {\
+
1367 break;\
+
1368 }\
+
1369 cutest_internal_dump(__FILE__, __LINE__, \
+
1370 #TYPE, #OP, #a, #b, (const void*)&_L, (const void*)&_R);\
+
1371 TEST_INTERNAL_SELECT(TEST_INTERNAL_NONE, cutest_internal_printf, fmt)(fmt, ##__VA_ARGS__);\
+
1372 if (cutest_internal_break_on_failure()) {\
+
1373 TEST_DEBUGBREAK;\
+
1374 }\
+
1375 cutest_internal_assert_failure();\
+
1376 } TEST_MSVC_WARNNING_GUARD(while (0), 4127)
+
1377
+
1380#define TEST_INTERNAL_SELECT(a, b, ...) \
+
1381 TEST_JOIN(TEST_INTERNAL_SELECT_, TEST_BARG(__VA_ARGS__))(a, b)
+
1382
+
1383#define TEST_INTERNAL_SELECT_0(a, b) a
+
1384#define TEST_INTERNAL_SELECT_1(a, b) b
+
1385
+
1386#define TEST_INTERNAL_NONE(...)
+
1387
+
1394typedef int (*cutest_custom_type_cmp_fn)(const void* addr1, const void* addr2);
+
1395
+
1402typedef int (*cutest_custom_type_dump_fn)(FILE* stream, const void* addr);
+
1403
+
1408typedef struct cutest_type_info
+
1409{
+
1410 cutest_map_node_t node;
+
1411 const char* type_name;
+
1412 cutest_custom_type_cmp_fn cmp;
+
1413 cutest_custom_type_dump_fn dump;
+
1414} cutest_type_info_t;
+
1415
+
1421void cutest_internal_register_type(cutest_type_info_t* info);
+
1422
+
1428#if defined(_MSC_VER) && _MSC_VER < 1900
+
1429# define TEST_MSVC_WARNNING_GUARD(exp, code) \
+
1430 __pragma(warning(push)) \
+
1431 __pragma(warning(disable : code)) \
+
1432 exp \
+
1433 __pragma(warning(pop))
+
1434#else
+
1435# define TEST_MSVC_WARNNING_GUARD(exp, code) \
+
1436 exp
+
1437#endif
+
1438
+
1444#if defined(_MSC_VER)
+
1445# define TEST_DEBUGBREAK __debugbreak()
+
1446#elif (defined(__clang__) || defined(__GNUC__)) && (defined(__x86_64__) || defined(__i386__))
+
1447# define TEST_DEBUGBREAK __asm__ volatile("int $0x03")
+
1448#elif (defined(__clang__) || defined(__GNUC__)) && defined(__thumb__)
+
1449# define TEST_DEBUGBREAK __asm__ volatile(".inst 0xde01")
+
1450#elif (defined(__clang__) || defined(__GNUC__)) && defined(__arm__) && !defined(__thumb__)
+
1451# define TEST_DEBUGBREAK __asm__ volatile(".inst 0xe7f001f0")
+
1452#elif (defined(__clang__) || defined(__GNUC__)) && defined(__aarch64__) && defined(__APPLE__)
+
1453# define TEST_DEBUGBREAK __builtin_debugtrap()
+
1454#elif (defined(__clang__) || defined(__GNUC__)) && defined(__aarch64__)
+
1455# define TEST_DEBUGBREAK __asm__ volatile(".inst 0xd4200000")
+
1456#elif (defined(__clang__) || defined(__GNUC__)) && defined(__powerpc__)
+
1457# define TEST_DEBUGBREAK __asm__ volatile(".4byte 0x7d821008")
+
1458#elif (defined(__clang__) || defined(__GNUC__)) && defined(__riscv)
+
1459# define TEST_DEBUGBREAK __asm__ volatile(".4byte 0x00100073")
+
1460#else
+
1461# define TEST_DEBUGBREAK *(volatile int*)NULL = 1
+
1462#endif
+
1463
+
1471int cutest_internal_compare(const char* type_name, const void* addr1, const void* addr2);
+
1472
+
1486void cutest_internal_dump(const char* file, int line, const char* type_name,
+
1487 const char* op, const char* op_l, const char* op_r,
+
1488 const void* addr1, const void* addr2);
+
1489
+
1490void cutest_internal_printf(const char* fmt, ...);
+
1491
+
1496int cutest_internal_break_on_failure(void);
+
1497
+
1503void cutest_internal_assert_failure(void);
+
1504
+
1520typedef struct cutest_hook
+
1521{
+
1527 void(*before_all_test)(int argc, char* argv[]);
+
1528
+
1532 void(*after_all_test)(void);
+
1533
+
1538 void(*before_setup)(const char* fixture);
+
1539
+
1545 void(*after_setup)(const char* fixture, int ret);
+
1546
+
1551 void(*before_teardown)(const char* fixture);
+
1552
+
1558 void(*after_teardown)(const char* fixture, int ret);
+
1559
+
1565 void(*before_test)(const char* fixture, const char* test_name);
+
1566
+
1573 void(*after_test)(const char* fixture, const char* test_name, int ret);
+ +
1575
+
1585int cutest_run_tests(int argc, char* argv[], FILE* out, const cutest_hook_t* hook);
+
1586
+ +
1592
+
1597const char* cutest_get_current_test(void);
+
1598
+ +
1605
+
1655void cutest_porting_abort(const char* fmt, ...);
+
1656
+
1667typedef struct cutest_porting_timespec
+
1668{
+ + + +
1672
+ +
1677
+
1688typedef enum cutest_porting_color
+
1689{
+ + + + + +
1695
+
1727int cutest_porting_cvfprintf(FILE* stream, int color, const char* fmt, va_list ap);
+
1728
+ +
1749
+
1760typedef struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t;
+
1761
+ +
1768
+ +
1777 cutest_porting_longjmp_fn fn_longjmp, int val, void* data);
+
1778
+ +
1808
+
1844int cutest_porting_compare_floating_number(int type, const void* v1, const void* v2);
+
1845
+
1855#ifdef __cplusplus
+
1856}
+
1857#endif
+
1858#endif
+
int cutest_porting_compare_floating_number(int type, const void *v1, const void *v2)
Floating number compare.
+
void cutest_porting_abort(const char *fmt,...)
+ + +
void cutest_porting_clock_gettime(cutest_porting_timespec_t *tp)
+ +
int cutest_porting_cvfprintf(FILE *stream, int color, const char *fmt, va_list ap)
Colorful print.
+
cutest_porting_color_t
Definition: cutest.h:1689
+
@ CUTEST_COLOR_RED
Definition: cutest.h:1691
+
@ CUTEST_COLOR_GREEN
Definition: cutest.h:1692
+
@ CUTEST_COLOR_YELLOW
Definition: cutest.h:1693
+
@ CUTEST_COLOR_DEFAULT
Definition: cutest.h:1690
+
void * cutest_porting_gettid(void)
Get current thread ID.
+
void(* cutest_porting_longjmp_fn)(cutest_porting_jmpbuf_t *buf, int val)
Function protocol for longjmp().
Definition: cutest.h:1767
+
void(* cutest_porting_setjmp_fn)(cutest_porting_jmpbuf_t *buf, cutest_porting_longjmp_fn fn_longjmp, int val, void *data)
Execute function when call setjmp().
Definition: cutest.h:1776
+
struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t
Definition: cutest.h:1760
+
void cutest_porting_setjmp(cutest_porting_setjmp_fn execute, void *data)
Wrapper for setjmp() and longjmp().
+
int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
Run all test cases.
+
const char * cutest_get_current_fixture(void)
Get current running suit name.
+
const char * cutest_get_current_test(void)
Get current running case name.
+
void cutest_skip_test(void)
Skip current test case.
+
CUnitTest hook.
Definition: cutest.h:1521
+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 00000000..07bb94ed --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,112 @@ + + + + + + + +cutest: include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+ + + + +

+Files

file  cutest.h [code]
 
+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 00000000..e5af9018 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,4 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "cutest.h", "cutest_8h.html", "cutest_8h" ] +]; \ No newline at end of file diff --git a/doc.png b/doc.png new file mode 100644 index 00000000..17edabff Binary files /dev/null and b/doc.png differ diff --git a/docd.png b/docd.png new file mode 100644 index 00000000..d7c94fda Binary files /dev/null and b/docd.png differ diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 00000000..08cc53ab --- /dev/null +++ b/doxygen.css @@ -0,0 +1,2007 @@ +/* The standard CSS for doxygen 1.9.6*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #3D578C; +--page-visited-link-color: #4665A2; + +/* index */ +--index-odd-item-bg-color: #F8F9FC; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F9FAFC; +--header-separator-color: #C4CFE5; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #879ECB; +--group-header-color: #354C7B; +--inherit-header-color: gray; + +--footer-foreground-color: #2A3D61; +--footer-logo-width: 104px; +--citation-label-color: #334975; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #5373B4; +--directory-separator-color: #9CAFD4; +--separator-color: #4A6AAA; + +--blockquote-background-color: #F7F8FB; +--blockquote-border-color: #9CAFD4; + +--scrollbar-thumb-color: #9CAFD4; +--scrollbar-background-color: #F9FAFC; + +--icon-background-color: #728DC1; +--icon-foreground-color: white; +--icon-doc-image: url('doc.png'); + +/* brief member declaration list */ +--memdecl-background-color: #F9FAFC; +--memdecl-separator-color: #DEE4F0; +--memdecl-foreground-color: #555; +--memdecl-template-color: #4665A2; + +/* detailed member list */ +--memdef-border-color: #A8B8D9; +--memdef-title-background-color: #E2E8F2; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #DFE5F1; +--memdef-proto-text-color: #253555; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #4665A2; + +/* tables */ +--table-cell-border-color: #2D4068; +--table-header-background-color: #374F7F; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #728DC1; +--label-left-top-border-color: #5373B4; +--label-right-bottom-border-color: #C4CFE5; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F9FAFC; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #C2CDE4; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #283A5D; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #364D7C; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #9CAFD4; +--nav-arrow-selected-color: #9CAFD4; + +/* table of contents */ +--toc-background-color: #F4F6FA; +--toc-border-color: #D8DFEE; +--toc-header-color: #4665A2; + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F9FAFC; +--search-filter-foreground-color: black; +--search-filter-border-color: #90A5CE; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #3D578C; +--search-results-foreground-color: #425E97; +--search-results-background-color: #EEF1F7; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #4665A2; +--code-external-link-color: #4665A2; +--fragment-foreground-color: black; +--fragment-background-color: #FBFCFD; +--fragment-border-color: #C4CFE5; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #4665A2; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #4665A2; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #4665A2; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #90A5CE; +--page-visited-link-color: #A3B4D7; + +/* index */ +--index-odd-item-bg-color: #0B101A; +--index-even-item-bg-color: black; +--index-header-color: #C4CFE5; +--index-separator-color: #334975; + +/* header */ +--header-background-color: #070B11; +--header-separator-color: #141C2E; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #283A5D; +--group-header-color: #90A5CE; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #5B7AB7; +--footer-logo-width: 60px; +--citation-label-color: #90A5CE; +--glow-color: cyan; + +--title-background-color: #090D16; +--title-separator-color: #354C79; +--directory-separator-color: #283A5D; +--separator-color: #283A5D; + +--blockquote-background-color: #101826; +--blockquote-border-color: #283A5D; + +--scrollbar-thumb-color: #283A5D; +--scrollbar-background-color: #070B11; + +--icon-background-color: #334975; +--icon-foreground-color: #C4CFE5; +--icon-doc-image: url('docd.png'); + +/* brief member declaration list */ +--memdecl-background-color: #0B101A; +--memdecl-separator-color: #2C3F65; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #7C95C6; + +/* detailed member list */ +--memdef-border-color: #233250; +--memdef-title-background-color: #1B2840; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #19243A; +--memdef-proto-text-color: #9DB0D4; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #7C95C6; + +/* tables */ +--table-cell-border-color: #283A5D; +--table-header-background-color: #283A5D; +--table-header-foreground-color: #C4CFE5; + +/* labels */ +--label-background-color: #354C7B; +--label-left-top-border-color: #4665A2; +--label-right-bottom-border-color: #283A5D; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #101826; +--nav-foreground-color: #364D7C; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #2A3D61; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #B6C4DF; +--nav-text-hover-color: #DCE2EF; +--nav-text-active-color: #DCE2EF; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #B6C4DF; +--nav-menu-background-color: #05070C; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #334975; +--nav-arrow-selected-color: #90A5CE; + +/* table of contents */ +--toc-background-color: #151E30; +--toc-border-color: #202E4A; +--toc-header-color: #A3B4D7; + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #101826; +--search-filter-foreground-color: #90A5CE; +--search-filter-border-color: #7C95C6; +--search-filter-highlight-text-color: #BCC9E2; +--search-filter-highlight-bg-color: #283A5D; +--search-results-background-color: #101826; +--search-results-foreground-color: #90A5CE; +--search-results-border-color: #7C95C6; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #2F436C; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + +body { + scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-background-color); +} + +::-webkit-scrollbar { + background-color: var(--scrollbar-background-color); + height: 12px; + width: 12px; +} +::-webkit-scrollbar-thumb { + border-radius: 6px; + box-shadow: inset 0 0 12px 12px var(--scrollbar-thumb-color); + border: solid 2px transparent; +} +::-webkit-scrollbar-corner { + background-color: var(--scrollbar-background-color); +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 00000000..d42dad52 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 00000000..1f4cd14a --- /dev/null +++ b/dynsections.js @@ -0,0 +1,130 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +cutest: Examples + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Examples
+
+
+
Here is a list of all examples:
+
+
+ + + + diff --git a/examples.js b/examples.js new file mode 100644 index 00000000..417c5d77 --- /dev/null +++ b/examples.js @@ -0,0 +1,5 @@ +var examples = +[ + [ "main.c", "main_8c-example.html", null ], + [ "test_p.c", "test_p_8c-example.html", null ] +]; \ No newline at end of file diff --git a/files.html b/files.html new file mode 100644 index 00000000..301b4cae --- /dev/null +++ b/files.html @@ -0,0 +1,111 @@ + + + + + + + +cutest: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 12]
+ + +
  include
 cutest.h
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 00000000..f1749d90 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,4 @@ +var files_dup = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ] +]; \ No newline at end of file diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 00000000..bb8ab35e Binary files /dev/null and b/folderclosed.png differ diff --git a/folderopen.png b/folderopen.png new file mode 100644 index 00000000..d6c7f676 Binary files /dev/null and b/folderopen.png differ diff --git a/functions.html b/functions.html new file mode 100644 index 00000000..0aafd123 --- /dev/null +++ b/functions.html @@ -0,0 +1,114 @@ + + + + + + + +cutest: Data Fields + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 00000000..ac491c86 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,114 @@ + + + + + + + +cutest: Data Fields - Variables + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 00000000..956b514a --- /dev/null +++ b/globals.html @@ -0,0 +1,309 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- a -

+ + +

- c -

+ + +

- t -

+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 00000000..ad0ca45b --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,291 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+  + +

- a -

+ + +

- c -

+ + +

- t -

+
+
+ + + + diff --git a/globals_enum.html b/globals_enum.html new file mode 100644 index 00000000..b5716282 --- /dev/null +++ b/globals_enum.html @@ -0,0 +1,105 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/globals_eval.html b/globals_eval.html new file mode 100644 index 00000000..58185cc8 --- /dev/null +++ b/globals_eval.html @@ -0,0 +1,108 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 00000000..b6145363 --- /dev/null +++ b/globals_func.html @@ -0,0 +1,114 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
    +
  • cutest_get_current_fixture() : cutest.h
  • +
  • cutest_get_current_test() : cutest.h
  • +
  • cutest_porting_abort() : cutest.h
  • +
  • cutest_porting_clock_gettime() : cutest.h
  • +
  • cutest_porting_compare_floating_number() : cutest.h
  • +
  • cutest_porting_cvfprintf() : cutest.h
  • +
  • cutest_porting_gettid() : cutest.h
  • +
  • cutest_porting_setjmp() : cutest.h
  • +
  • cutest_run_tests() : cutest.h
  • +
  • cutest_skip_test() : cutest.h
  • +
+
+
+ + + + diff --git a/globals_type.html b/globals_type.html new file mode 100644 index 00000000..9911c21d --- /dev/null +++ b/globals_type.html @@ -0,0 +1,107 @@ + + + + + + + +cutest: Globals + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 00000000..617bacdf --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,165 @@ + + + + + + + +cutest: Graph Legend + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 00000000..76a6899d --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +68a0ee42d4e53d2fb70be66ebb5b1abe \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png new file mode 100644 index 00000000..71c27966 Binary files /dev/null and b/graph_legend.png differ diff --git a/group__TEST__ASSERTION.html b/group__TEST__ASSERTION.html new file mode 100644 index 00000000..28a88932 --- /dev/null +++ b/group__TEST__ASSERTION.html @@ -0,0 +1,158 @@ + + + + + + + +cutest: Assertion + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Assertion
+
+
+
+ + Collaboration diagram for Assertion:
+
+
+ + + + + + + +

+Modules

 C89 Assertion
 
 C99 Assertion
 
+

Detailed Description

+

+Basic usage

+

cutest support rich set of assertion. An assertion typically have following syntax:

+
ASSERT_OP_TYPE(a, b)
+
ASSERT_OP_TYPE(a, b, fmt, ...)
+

The OP means which compare operation you want to use:

    +
  • EQ: a is equal to b.
  • +
  • NE: a is not equal to b.
  • +
  • LT: a is less than b.
  • +
  • LE: a is equal to b or less than b.
  • +
  • GT: a is greater than b.
  • +
  • GE: a is equal to b or greater than b.
  • +
+

The TYPE means the type of value a and b.

+
+

‍To support more types, checkout TEST_REGISTER_TYPE_ONCE().

+
+

So, an assertion like ASSERT_EQ_INT() means except a and b have type of int and they are the same value.

+

+Extra cusom information

+

You may notice all assertions have syntax of ASSERT_OP_TYPE(a, b, fmt, ...), it means custom print is available if assertion fails. For example, the following code

+
int errcode = ENOENT;
+
ASSERT_EQ_INT(0, errcode, "%s(%d)", strerror(errcode), errcode);
+
#define ASSERT_EQ_INT(a, b,...)
Definition: cutest.h:894
+

Will print something like:

+
No such file or directory(2)
+

You may also want to refer to the actual value of operator, you can use _L to refer to left operator and _R to refer to right operator:

+
ASSERT_EQ_INT(0, 1 + 2, "%d is not %d", _L, _R);
+

The output will be something like:

+
0 is not 3
+
+
+ + + + diff --git a/group__TEST__ASSERTION.js b/group__TEST__ASSERTION.js new file mode 100644 index 00000000..7684129c --- /dev/null +++ b/group__TEST__ASSERTION.js @@ -0,0 +1,5 @@ +var group__TEST__ASSERTION = +[ + [ "C89 Assertion", "group__TEST__ASSERTION__C89.html", "group__TEST__ASSERTION__C89" ], + [ "C99 Assertion", "group__TEST__ASSERTION__C99.html", "group__TEST__ASSERTION__C99" ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION.map b/group__TEST__ASSERTION.map new file mode 100644 index 00000000..9c756a8f --- /dev/null +++ b/group__TEST__ASSERTION.map @@ -0,0 +1,5 @@ + + + + + diff --git a/group__TEST__ASSERTION.md5 b/group__TEST__ASSERTION.md5 new file mode 100644 index 00000000..d53d85a5 --- /dev/null +++ b/group__TEST__ASSERTION.md5 @@ -0,0 +1 @@ +f772d2dea9bbed38faa920a6205f2803 \ No newline at end of file diff --git a/group__TEST__ASSERTION.png b/group__TEST__ASSERTION.png new file mode 100644 index 00000000..363ab27c Binary files /dev/null and b/group__TEST__ASSERTION.png differ diff --git a/group__TEST__ASSERTION__C89.html b/group__TEST__ASSERTION__C89.html new file mode 100644 index 00000000..765f02d0 --- /dev/null +++ b/group__TEST__ASSERTION__C89.html @@ -0,0 +1,181 @@ + + + + + + + +cutest: C89 Assertion + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
C89 Assertion
+
+
+
+ + Collaboration diagram for C89 Assertion:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 char
 
 signed char
 
 unsigned char
 
 short
 
 unsigned short
 
 int
 
 unsigned int
 
 long
 
 unsigned long
 
 float
 
 double
 
 const void*
 
 const char*
 
+

Detailed Description

+

Assertion macros for C89 standard, provide native type support:

    +
  • char
  • +
  • unsigned char
  • +
  • signed char
  • +
  • short
  • +
  • unsigned short
  • +
  • int
  • +
  • unsigned int
  • +
  • long
  • +
  • unsigned long
  • +
  • float
  • +
  • double
  • +
  • const void*
  • +
  • const char*
  • +
+
Note
About size_t and ptrdiff_t: Although they are included in C89 standard, the formal print conversion specifier %zu and %td are inclueded in C99 standard. Besides they need <stddef.h>, and we want the dependency to be minimum.
+
+About long double: Although it exists in C89 standard, we do not offer support for type long double, because actual properties unspecified. The implementation can be either x86 extended-precision floating-point format (80 bits, but typically 96 bits or 128 bits in memory with padding bytes), the non-IEEE "double-double" (128 bits), IEEE 754 quadruple-precision floating-point format (128 bits), or the same as double.
+
See also
http://port70.net/~nsz/c/c89/c89-draft.html
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89.js b/group__TEST__ASSERTION__C89.js new file mode 100644 index 00000000..46e92873 --- /dev/null +++ b/group__TEST__ASSERTION__C89.js @@ -0,0 +1,16 @@ +var group__TEST__ASSERTION__C89 = +[ + [ "char", "group__TEST__ASSERTION__C89__CHAR.html", "group__TEST__ASSERTION__C89__CHAR" ], + [ "signed char", "group__TEST__ASSERTION__C89__DCHAR.html", "group__TEST__ASSERTION__C89__DCHAR" ], + [ "unsigned char", "group__TEST__ASSERTION__C89__UCHAR.html", "group__TEST__ASSERTION__C89__UCHAR" ], + [ "short", "group__TEST__ASSERTION__C89__SHORT.html", "group__TEST__ASSERTION__C89__SHORT" ], + [ "unsigned short", "group__TEST__ASSERTION__C89__USHORT.html", "group__TEST__ASSERTION__C89__USHORT" ], + [ "int", "group__TEST__ASSERTION__C89__INT.html", "group__TEST__ASSERTION__C89__INT" ], + [ "unsigned int", "group__TEST__ASSERTION__C89__UINT.html", "group__TEST__ASSERTION__C89__UINT" ], + [ "long", "group__TEST__ASSERTION__C89__LONG.html", "group__TEST__ASSERTION__C89__LONG" ], + [ "unsigned long", "group__TEST__ASSERTION__C89__ULONG.html", "group__TEST__ASSERTION__C89__ULONG" ], + [ "float", "group__TEST__ASSERTION__C89__FLOAT.html", "group__TEST__ASSERTION__C89__FLOAT" ], + [ "double", "group__TEST__ASSERTION__C89__DOUBLE.html", "group__TEST__ASSERTION__C89__DOUBLE" ], + [ "const void*", "group__TEST__ASSERTION__C89__PTR.html", "group__TEST__ASSERTION__C89__PTR" ], + [ "const char*", "group__TEST__ASSERTION__C89__STR.html", "group__TEST__ASSERTION__C89__STR" ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89.map b/group__TEST__ASSERTION__C89.map new file mode 100644 index 00000000..ddcaf772 --- /dev/null +++ b/group__TEST__ASSERTION__C89.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/group__TEST__ASSERTION__C89.md5 b/group__TEST__ASSERTION__C89.md5 new file mode 100644 index 00000000..db60f758 --- /dev/null +++ b/group__TEST__ASSERTION__C89.md5 @@ -0,0 +1 @@ +9d83e35ace873a734e56068ade94dc1f \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89.png b/group__TEST__ASSERTION__C89.png new file mode 100644 index 00000000..77fc9269 Binary files /dev/null and b/group__TEST__ASSERTION__C89.png differ diff --git a/group__TEST__ASSERTION__C89__CHAR.html b/group__TEST__ASSERTION__C89__CHAR.html new file mode 100644 index 00000000..9dc5c6e0 --- /dev/null +++ b/group__TEST__ASSERTION__C89__CHAR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: char + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + Collaboration diagram for char:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_CHAR(a, b, ...)   ASSERT_TEMPLATE(char, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 824 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 829 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 828 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 827 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 826 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_CHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_CHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(char, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 825 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__CHAR.js b/group__TEST__ASSERTION__C89__CHAR.js new file mode 100644 index 00000000..933f9bb4 --- /dev/null +++ b/group__TEST__ASSERTION__C89__CHAR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__CHAR = +[ + [ "ASSERT_EQ_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga429e4d95fbcf76282b66cc06a3a8ab7b", null ], + [ "ASSERT_GE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga99ae329bffa596b0519db7ae225cf7ab", null ], + [ "ASSERT_GT_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga3f70a37d27bc6586632b4a86e547217b", null ], + [ "ASSERT_LE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#ga3e0b6bea91db3e5435678b5da7cd9b71", null ], + [ "ASSERT_LT_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#gafee34cd9be1878086460036c8348314c", null ], + [ "ASSERT_NE_CHAR", "group__TEST__ASSERTION__C89__CHAR.html#gac0190044e2845928566fbb52be78370a", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__CHAR.map b/group__TEST__ASSERTION__C89__CHAR.map new file mode 100644 index 00000000..a974af7c --- /dev/null +++ b/group__TEST__ASSERTION__C89__CHAR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__CHAR.md5 b/group__TEST__ASSERTION__C89__CHAR.md5 new file mode 100644 index 00000000..282db666 --- /dev/null +++ b/group__TEST__ASSERTION__C89__CHAR.md5 @@ -0,0 +1 @@ +8ac192dba1eca036362f059622e048da \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__CHAR.png b/group__TEST__ASSERTION__C89__CHAR.png new file mode 100644 index 00000000..0cdc801b Binary files /dev/null and b/group__TEST__ASSERTION__C89__CHAR.png differ diff --git a/group__TEST__ASSERTION__C89__DCHAR.html b/group__TEST__ASSERTION__C89__DCHAR.html new file mode 100644 index 00000000..59bfff1e --- /dev/null +++ b/group__TEST__ASSERTION__C89__DCHAR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: signed char + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
signed char
+
+
+
+ + Collaboration diagram for signed char:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_DCHAR(a, b, ...)   ASSERT_TEMPLATE(signed char, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 838 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 843 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 842 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 841 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 840 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_DCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_DCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(signed char, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 839 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__DCHAR.js b/group__TEST__ASSERTION__C89__DCHAR.js new file mode 100644 index 00000000..273d7ba6 --- /dev/null +++ b/group__TEST__ASSERTION__C89__DCHAR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__DCHAR = +[ + [ "ASSERT_EQ_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga9292f067fd55493ed1cd8d6aa9c4c29d", null ], + [ "ASSERT_GE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#gaa2407db1328a647b1d851ecc6e577aff", null ], + [ "ASSERT_GT_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga93eb1c1e9ff7d1af8df24b7015818cca", null ], + [ "ASSERT_LE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga71a24aec138a0b0aeac0c9853314028b", null ], + [ "ASSERT_LT_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga6abef20b8bd0ea3697f1700f47e5613e", null ], + [ "ASSERT_NE_DCHAR", "group__TEST__ASSERTION__C89__DCHAR.html#ga162896fca9ea7e6599dfac15cd9fb246", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__DCHAR.map b/group__TEST__ASSERTION__C89__DCHAR.map new file mode 100644 index 00000000..b3f033d5 --- /dev/null +++ b/group__TEST__ASSERTION__C89__DCHAR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__DCHAR.md5 b/group__TEST__ASSERTION__C89__DCHAR.md5 new file mode 100644 index 00000000..21fee0df --- /dev/null +++ b/group__TEST__ASSERTION__C89__DCHAR.md5 @@ -0,0 +1 @@ +090d60e2aabcac9e6fdd3162e56d2e8a \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__DCHAR.png b/group__TEST__ASSERTION__C89__DCHAR.png new file mode 100644 index 00000000..f3444a45 Binary files /dev/null and b/group__TEST__ASSERTION__C89__DCHAR.png differ diff --git a/group__TEST__ASSERTION__C89__DOUBLE.html b/group__TEST__ASSERTION__C89__DOUBLE.html new file mode 100644 index 00000000..ab8febed --- /dev/null +++ b/group__TEST__ASSERTION__C89__DOUBLE.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: double + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for double:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_DOUBLE(a, b, ...)   ASSERT_TEMPLATE(double, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 964 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 969 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 968 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 967 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 966 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_DOUBLE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_DOUBLE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(double, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 965 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__DOUBLE.js b/group__TEST__ASSERTION__C89__DOUBLE.js new file mode 100644 index 00000000..75640d47 --- /dev/null +++ b/group__TEST__ASSERTION__C89__DOUBLE.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__DOUBLE = +[ + [ "ASSERT_EQ_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#gadaf1c30e0609832f337b7c51a066f698", null ], + [ "ASSERT_GE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga57803af4fc559aab0b3bcaff017ee1ac", null ], + [ "ASSERT_GT_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga5aa7de3b507f8fdea9bd8860d803bea0", null ], + [ "ASSERT_LE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga2a38dd68eb793738525f85526561c48f", null ], + [ "ASSERT_LT_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga8bd1dc9da9ff3347e69dcc46ce20947f", null ], + [ "ASSERT_NE_DOUBLE", "group__TEST__ASSERTION__C89__DOUBLE.html#ga24b7526c5adde11cca7566e798eec989", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__DOUBLE.map b/group__TEST__ASSERTION__C89__DOUBLE.map new file mode 100644 index 00000000..52b7ce2c --- /dev/null +++ b/group__TEST__ASSERTION__C89__DOUBLE.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__DOUBLE.md5 b/group__TEST__ASSERTION__C89__DOUBLE.md5 new file mode 100644 index 00000000..4060600b --- /dev/null +++ b/group__TEST__ASSERTION__C89__DOUBLE.md5 @@ -0,0 +1 @@ +005443a776debf67ec15292fef1c511e \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__DOUBLE.png b/group__TEST__ASSERTION__C89__DOUBLE.png new file mode 100644 index 00000000..53f01e46 Binary files /dev/null and b/group__TEST__ASSERTION__C89__DOUBLE.png differ diff --git a/group__TEST__ASSERTION__C89__FLOAT.html b/group__TEST__ASSERTION__C89__FLOAT.html new file mode 100644 index 00000000..9875690a --- /dev/null +++ b/group__TEST__ASSERTION__C89__FLOAT.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: float + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + Collaboration diagram for float:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_FLOAT(a, b, ...)   ASSERT_TEMPLATE(float, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 950 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 955 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 954 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 953 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 952 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_FLOAT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_FLOAT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(float, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 951 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__FLOAT.js b/group__TEST__ASSERTION__C89__FLOAT.js new file mode 100644 index 00000000..73f7df34 --- /dev/null +++ b/group__TEST__ASSERTION__C89__FLOAT.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__FLOAT = +[ + [ "ASSERT_EQ_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gae5e8e16bb4b7090837f02fd5d3f6ac22", null ], + [ "ASSERT_GE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga71c04dce8fdb1116bd794f9581f483a7", null ], + [ "ASSERT_GT_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga91df0bd3d25f6688aeb71efb144b69d6", null ], + [ "ASSERT_LE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gab45f4639ad1b30443c35ec6f48db4d6a", null ], + [ "ASSERT_LT_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#gac1508ae1737d673ea3afed6282f6c1dd", null ], + [ "ASSERT_NE_FLOAT", "group__TEST__ASSERTION__C89__FLOAT.html#ga42d69efefb68acdb5bce3dccec4d8955", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__FLOAT.map b/group__TEST__ASSERTION__C89__FLOAT.map new file mode 100644 index 00000000..c9dce612 --- /dev/null +++ b/group__TEST__ASSERTION__C89__FLOAT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__FLOAT.md5 b/group__TEST__ASSERTION__C89__FLOAT.md5 new file mode 100644 index 00000000..241d9a71 --- /dev/null +++ b/group__TEST__ASSERTION__C89__FLOAT.md5 @@ -0,0 +1 @@ +09321d45cb4c79005daf6f800c946b5f \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__FLOAT.png b/group__TEST__ASSERTION__C89__FLOAT.png new file mode 100644 index 00000000..43efdd3d Binary files /dev/null and b/group__TEST__ASSERTION__C89__FLOAT.png differ diff --git a/group__TEST__ASSERTION__C89__INT.html b/group__TEST__ASSERTION__C89__INT.html new file mode 100644 index 00000000..5a449b33 --- /dev/null +++ b/group__TEST__ASSERTION__C89__INT.html @@ -0,0 +1,354 @@ + + + + + + + +cutest: int + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + Collaboration diagram for int:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INT(a, b, ...)   ASSERT_TEMPLATE(int, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT(a, b, ...)   ASSERT_TEMPLATE(int, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT(a, b, ...)   ASSERT_TEMPLATE(int, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT(a, b, ...)   ASSERT_TEMPLATE(int, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT(a, b, ...)   ASSERT_TEMPLATE(int, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT(a, b, ...)   ASSERT_TEMPLATE(int, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, ==, a, b, __VA_ARGS__)
+
+
Examples
test_p.c.
+
+ +

Definition at line 894 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 899 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 898 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 897 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 896 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 895 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__INT.js b/group__TEST__ASSERTION__C89__INT.js new file mode 100644 index 00000000..34354695 --- /dev/null +++ b/group__TEST__ASSERTION__C89__INT.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__INT = +[ + [ "ASSERT_EQ_INT", "group__TEST__ASSERTION__C89__INT.html#ga00e936c37503216d792143e051f37f98", null ], + [ "ASSERT_GE_INT", "group__TEST__ASSERTION__C89__INT.html#ga721b733e8417ff0b2ee5bc140e2de897", null ], + [ "ASSERT_GT_INT", "group__TEST__ASSERTION__C89__INT.html#ga2d6d286aea4fd9d47eed8969ab3c4315", null ], + [ "ASSERT_LE_INT", "group__TEST__ASSERTION__C89__INT.html#gadf74641e1759fe90d4d9e3878081a9f6", null ], + [ "ASSERT_LT_INT", "group__TEST__ASSERTION__C89__INT.html#ga6914c45a92ec29d5404668f1e0e92c77", null ], + [ "ASSERT_NE_INT", "group__TEST__ASSERTION__C89__INT.html#ga295a890a62535abaf81bd967cf7bf990", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__INT.map b/group__TEST__ASSERTION__C89__INT.map new file mode 100644 index 00000000..3382b15f --- /dev/null +++ b/group__TEST__ASSERTION__C89__INT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__INT.md5 b/group__TEST__ASSERTION__C89__INT.md5 new file mode 100644 index 00000000..104c4fc2 --- /dev/null +++ b/group__TEST__ASSERTION__C89__INT.md5 @@ -0,0 +1 @@ +8c7b3967a42bc82ff067346fc057babf \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__INT.png b/group__TEST__ASSERTION__C89__INT.png new file mode 100644 index 00000000..0ef53ba8 Binary files /dev/null and b/group__TEST__ASSERTION__C89__INT.png differ diff --git a/group__TEST__ASSERTION__C89__LONG.html b/group__TEST__ASSERTION__C89__LONG.html new file mode 100644 index 00000000..090af0b0 --- /dev/null +++ b/group__TEST__ASSERTION__C89__LONG.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: long + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + Collaboration diagram for long:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_LONG(a, b, ...)   ASSERT_TEMPLATE(long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_LONG(a, b, ...)   ASSERT_TEMPLATE(long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_LONG(a, b, ...)   ASSERT_TEMPLATE(long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_LONG(a, b, ...)   ASSERT_TEMPLATE(long, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 922 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 927 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 926 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 925 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 924 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_LONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_LONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 923 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__LONG.js b/group__TEST__ASSERTION__C89__LONG.js new file mode 100644 index 00000000..77d96907 --- /dev/null +++ b/group__TEST__ASSERTION__C89__LONG.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__LONG = +[ + [ "ASSERT_EQ_LONG", "group__TEST__ASSERTION__C89__LONG.html#gab13fe26ce4f584ed49f16e2e3b28b87f", null ], + [ "ASSERT_GE_LONG", "group__TEST__ASSERTION__C89__LONG.html#ga74bb5df9d455475740d8d00dd285e343", null ], + [ "ASSERT_GT_LONG", "group__TEST__ASSERTION__C89__LONG.html#gac40120428f370a97e7229fe16ed3c2a5", null ], + [ "ASSERT_LE_LONG", "group__TEST__ASSERTION__C89__LONG.html#gafd0f588791bf146245d3c96cdad15c96", null ], + [ "ASSERT_LT_LONG", "group__TEST__ASSERTION__C89__LONG.html#ga7e6a5a8d5597afa453fc936a98c48ce7", null ], + [ "ASSERT_NE_LONG", "group__TEST__ASSERTION__C89__LONG.html#gae2c3c8f431131b1ff02c8b92234788fc", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__LONG.map b/group__TEST__ASSERTION__C89__LONG.map new file mode 100644 index 00000000..86b20e4e --- /dev/null +++ b/group__TEST__ASSERTION__C89__LONG.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__LONG.md5 b/group__TEST__ASSERTION__C89__LONG.md5 new file mode 100644 index 00000000..9d518582 --- /dev/null +++ b/group__TEST__ASSERTION__C89__LONG.md5 @@ -0,0 +1 @@ +b381eb6c1c4a82181335af859298b03d \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__LONG.png b/group__TEST__ASSERTION__C89__LONG.png new file mode 100644 index 00000000..48eb8fe7 Binary files /dev/null and b/group__TEST__ASSERTION__C89__LONG.png differ diff --git a/group__TEST__ASSERTION__C89__PTR.html b/group__TEST__ASSERTION__C89__PTR.html new file mode 100644 index 00000000..bd010193 --- /dev/null +++ b/group__TEST__ASSERTION__C89__PTR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: const void* + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
const void*
+
+
+
+ + Collaboration diagram for const void*:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_PTR(a, b, ...)   ASSERT_TEMPLATE(const void*, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 978 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 983 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 982 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 981 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 980 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_PTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_PTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const void*, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 979 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__PTR.js b/group__TEST__ASSERTION__C89__PTR.js new file mode 100644 index 00000000..da763c31 --- /dev/null +++ b/group__TEST__ASSERTION__C89__PTR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__PTR = +[ + [ "ASSERT_EQ_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga77e1fde009a80b15e5ecf03ac6ab3368", null ], + [ "ASSERT_GE_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga5f743c7c8de0b86490614ee2417c5b62", null ], + [ "ASSERT_GT_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga1dae1ad2e70074b5709728e22786ffaa", null ], + [ "ASSERT_LE_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga7c82aad52fd04d2e0bdaa63f45a5fa40", null ], + [ "ASSERT_LT_PTR", "group__TEST__ASSERTION__C89__PTR.html#ga2440793a866c6cc0a8ddabac0f7397c6", null ], + [ "ASSERT_NE_PTR", "group__TEST__ASSERTION__C89__PTR.html#gab7fc4346e2bef7569bd8512975654fda", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__PTR.map b/group__TEST__ASSERTION__C89__PTR.map new file mode 100644 index 00000000..8b4297ed --- /dev/null +++ b/group__TEST__ASSERTION__C89__PTR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__PTR.md5 b/group__TEST__ASSERTION__C89__PTR.md5 new file mode 100644 index 00000000..b1f51037 --- /dev/null +++ b/group__TEST__ASSERTION__C89__PTR.md5 @@ -0,0 +1 @@ +d5fd81969c3c94f9869256ae9f2a0384 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__PTR.png b/group__TEST__ASSERTION__C89__PTR.png new file mode 100644 index 00000000..13d2f665 Binary files /dev/null and b/group__TEST__ASSERTION__C89__PTR.png differ diff --git a/group__TEST__ASSERTION__C89__SHORT.html b/group__TEST__ASSERTION__C89__SHORT.html new file mode 100644 index 00000000..ea9c6454 --- /dev/null +++ b/group__TEST__ASSERTION__C89__SHORT.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: short + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+
+ + Collaboration diagram for short:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_SHORT(a, b, ...)   ASSERT_TEMPLATE(short, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 866 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 871 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 870 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 869 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 868 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_SHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_SHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(short, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 867 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__SHORT.js b/group__TEST__ASSERTION__C89__SHORT.js new file mode 100644 index 00000000..bf6cba8c --- /dev/null +++ b/group__TEST__ASSERTION__C89__SHORT.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__SHORT = +[ + [ "ASSERT_EQ_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#gae9ea65fbbf12d6d0e4e3fd245b5c5f72", null ], + [ "ASSERT_GE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga68894034ee57581b1ead55c58cef18b0", null ], + [ "ASSERT_GT_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#gaa662186b41eb948d69b91859ab7945d1", null ], + [ "ASSERT_LE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga9d711bc304a53ea629ed5d6e131a92cf", null ], + [ "ASSERT_LT_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga2f20ef618b8c74025598b445e2675c73", null ], + [ "ASSERT_NE_SHORT", "group__TEST__ASSERTION__C89__SHORT.html#ga4b4c42dc5046760bedead101210d6b9f", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__SHORT.map b/group__TEST__ASSERTION__C89__SHORT.map new file mode 100644 index 00000000..58f20438 --- /dev/null +++ b/group__TEST__ASSERTION__C89__SHORT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__SHORT.md5 b/group__TEST__ASSERTION__C89__SHORT.md5 new file mode 100644 index 00000000..38fdd2dc --- /dev/null +++ b/group__TEST__ASSERTION__C89__SHORT.md5 @@ -0,0 +1 @@ +47b19ee35141b33fbc6ffeba9fb021be \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__SHORT.png b/group__TEST__ASSERTION__C89__SHORT.png new file mode 100644 index 00000000..6d0230d9 Binary files /dev/null and b/group__TEST__ASSERTION__C89__SHORT.png differ diff --git a/group__TEST__ASSERTION__C89__STR.html b/group__TEST__ASSERTION__C89__STR.html new file mode 100644 index 00000000..2b1d5abe --- /dev/null +++ b/group__TEST__ASSERTION__C89__STR.html @@ -0,0 +1,200 @@ + + + + + + + +cutest: const char* + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
const char*
+
+
+
+ + Collaboration diagram for const char*:
+
+
+ + + + + + + +

+Macros

#define ASSERT_EQ_STR(a, b, ...)   ASSERT_TEMPLATE(const char*, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_STR(a, b, ...)   ASSERT_TEMPLATE(const char*, !=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_STR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_STR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const char*, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 992 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_STR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_STR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(const char*, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 993 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__STR.js b/group__TEST__ASSERTION__C89__STR.js new file mode 100644 index 00000000..889bfd21 --- /dev/null +++ b/group__TEST__ASSERTION__C89__STR.js @@ -0,0 +1,5 @@ +var group__TEST__ASSERTION__C89__STR = +[ + [ "ASSERT_EQ_STR", "group__TEST__ASSERTION__C89__STR.html#ga07ead71abb14e877880a8761691289ba", null ], + [ "ASSERT_NE_STR", "group__TEST__ASSERTION__C89__STR.html#ga26aded1f804f203d209583d561e670e6", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__STR.map b/group__TEST__ASSERTION__C89__STR.map new file mode 100644 index 00000000..b536a017 --- /dev/null +++ b/group__TEST__ASSERTION__C89__STR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__STR.md5 b/group__TEST__ASSERTION__C89__STR.md5 new file mode 100644 index 00000000..3cb8cb70 --- /dev/null +++ b/group__TEST__ASSERTION__C89__STR.md5 @@ -0,0 +1 @@ +0097fbae440adb49c0420229e4262dd3 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__STR.png b/group__TEST__ASSERTION__C89__STR.png new file mode 100644 index 00000000..7db8091d Binary files /dev/null and b/group__TEST__ASSERTION__C89__STR.png differ diff --git a/group__TEST__ASSERTION__C89__UCHAR.html b/group__TEST__ASSERTION__C89__UCHAR.html new file mode 100644 index 00000000..eb46b808 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UCHAR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: unsigned char + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
unsigned char
+
+
+
+ + Collaboration diagram for unsigned char:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UCHAR(a, b, ...)   ASSERT_TEMPLATE(unsigned char, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 852 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 857 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 856 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 855 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 854 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UCHAR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UCHAR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned char, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 853 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__UCHAR.js b/group__TEST__ASSERTION__C89__UCHAR.js new file mode 100644 index 00000000..50338c06 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UCHAR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__UCHAR = +[ + [ "ASSERT_EQ_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga5a73c95c12ea13f45f7eb6fc5c1337ee", null ], + [ "ASSERT_GE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga1b4d82808fcffa015e8a60413a20af0d", null ], + [ "ASSERT_GT_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga7126812923fe80d35b4b09bdf7b79fc3", null ], + [ "ASSERT_LE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga0df3bed443b0ad3b6d3c27bb99d5f47d", null ], + [ "ASSERT_LT_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga0c314d76dc653f46292e6633d55627ff", null ], + [ "ASSERT_NE_UCHAR", "group__TEST__ASSERTION__C89__UCHAR.html#ga720e7ca030acd20644669395531ffe0b", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__UCHAR.map b/group__TEST__ASSERTION__C89__UCHAR.map new file mode 100644 index 00000000..c56036c9 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UCHAR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__UCHAR.md5 b/group__TEST__ASSERTION__C89__UCHAR.md5 new file mode 100644 index 00000000..97b53cde --- /dev/null +++ b/group__TEST__ASSERTION__C89__UCHAR.md5 @@ -0,0 +1 @@ +83be05014e8f3ae0a5c702dd836a8a64 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__UCHAR.png b/group__TEST__ASSERTION__C89__UCHAR.png new file mode 100644 index 00000000..f7479af5 Binary files /dev/null and b/group__TEST__ASSERTION__C89__UCHAR.png differ diff --git a/group__TEST__ASSERTION__C89__UINT.html b/group__TEST__ASSERTION__C89__UINT.html new file mode 100644 index 00000000..4202f049 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UINT.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: unsigned int + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
unsigned int
+
+
+
+ + Collaboration diagram for unsigned int:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT(a, b, ...)   ASSERT_TEMPLATE(unsigned int, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 908 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 913 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 912 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 911 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 910 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned int, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 909 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__UINT.js b/group__TEST__ASSERTION__C89__UINT.js new file mode 100644 index 00000000..10938d49 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UINT.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__UINT = +[ + [ "ASSERT_EQ_UINT", "group__TEST__ASSERTION__C89__UINT.html#gae6547cac4da13bf5248d9eb613808227", null ], + [ "ASSERT_GE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga1f1fb8e938d372e0b7649f196bf8c5b7", null ], + [ "ASSERT_GT_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga8a6b626bef56290f44aabab665a48fad", null ], + [ "ASSERT_LE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga73417ff497326f02f7e28bdc2b7e4d00", null ], + [ "ASSERT_LT_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga2ad9c498573a42817ed297af029f2896", null ], + [ "ASSERT_NE_UINT", "group__TEST__ASSERTION__C89__UINT.html#ga66111c2726120ee052ccd28935fadb62", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__UINT.map b/group__TEST__ASSERTION__C89__UINT.map new file mode 100644 index 00000000..82054c00 --- /dev/null +++ b/group__TEST__ASSERTION__C89__UINT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__UINT.md5 b/group__TEST__ASSERTION__C89__UINT.md5 new file mode 100644 index 00000000..16024a5f --- /dev/null +++ b/group__TEST__ASSERTION__C89__UINT.md5 @@ -0,0 +1 @@ +f51843603d327a3f9e3f0f7b67ce2d9e \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__UINT.png b/group__TEST__ASSERTION__C89__UINT.png new file mode 100644 index 00000000..58d4c03f Binary files /dev/null and b/group__TEST__ASSERTION__C89__UINT.png differ diff --git a/group__TEST__ASSERTION__C89__ULONG.html b/group__TEST__ASSERTION__C89__ULONG.html new file mode 100644 index 00000000..b67a3566 --- /dev/null +++ b/group__TEST__ASSERTION__C89__ULONG.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: unsigned long + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
unsigned long
+
+
+
+ + Collaboration diagram for unsigned long:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_ULONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 936 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 941 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 940 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 939 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 938 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_ULONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_ULONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 937 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__ULONG.js b/group__TEST__ASSERTION__C89__ULONG.js new file mode 100644 index 00000000..e1db485c --- /dev/null +++ b/group__TEST__ASSERTION__C89__ULONG.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__ULONG = +[ + [ "ASSERT_EQ_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gaa2b14762cbffdfb5576d10efe27162fb", null ], + [ "ASSERT_GE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gad0c5ba5a5cdfa3068dccab5390a9c9f2", null ], + [ "ASSERT_GT_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#ga34ebb67ce239794522a1207bc9f96baf", null ], + [ "ASSERT_LE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gaea4e359a0d01466a73697150bd024ede", null ], + [ "ASSERT_LT_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#gadf477662adf7d4ba438369cd47cb9d67", null ], + [ "ASSERT_NE_ULONG", "group__TEST__ASSERTION__C89__ULONG.html#ga2dec6dbf5284659c8afb55df7e73d282", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__ULONG.map b/group__TEST__ASSERTION__C89__ULONG.map new file mode 100644 index 00000000..329019fd --- /dev/null +++ b/group__TEST__ASSERTION__C89__ULONG.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__ULONG.md5 b/group__TEST__ASSERTION__C89__ULONG.md5 new file mode 100644 index 00000000..7a988b33 --- /dev/null +++ b/group__TEST__ASSERTION__C89__ULONG.md5 @@ -0,0 +1 @@ +fb4a06ea3525a7e7fafc183f6317b038 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__ULONG.png b/group__TEST__ASSERTION__C89__ULONG.png new file mode 100644 index 00000000..3e80a3b2 Binary files /dev/null and b/group__TEST__ASSERTION__C89__ULONG.png differ diff --git a/group__TEST__ASSERTION__C89__USHORT.html b/group__TEST__ASSERTION__C89__USHORT.html new file mode 100644 index 00000000..1be203da --- /dev/null +++ b/group__TEST__ASSERTION__C89__USHORT.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: unsigned short + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
unsigned short
+
+
+
+ + Collaboration diagram for unsigned short:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_USHORT(a, b, ...)   ASSERT_TEMPLATE(unsigned short, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 880 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 885 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 884 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 883 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 882 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_USHORT

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_USHORT( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned short, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 881 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C89__USHORT.js b/group__TEST__ASSERTION__C89__USHORT.js new file mode 100644 index 00000000..52df7c86 --- /dev/null +++ b/group__TEST__ASSERTION__C89__USHORT.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C89__USHORT = +[ + [ "ASSERT_EQ_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga753765df6af3fc210c52f41b00bbc68b", null ], + [ "ASSERT_GE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gaf230d7180a3e7855fde15ca2bf46f645", null ], + [ "ASSERT_GT_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gaaaea95a22d8025fce8b21f1250040211", null ], + [ "ASSERT_LE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga94d6121b2805d6c44876317249d1cb42", null ], + [ "ASSERT_LT_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#gac7bfc10f4ddce619577ff50fa44a267f", null ], + [ "ASSERT_NE_USHORT", "group__TEST__ASSERTION__C89__USHORT.html#ga88b55d8eea3bb390e2ad63bccc3aa569", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__USHORT.map b/group__TEST__ASSERTION__C89__USHORT.map new file mode 100644 index 00000000..f3553c37 --- /dev/null +++ b/group__TEST__ASSERTION__C89__USHORT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C89__USHORT.md5 b/group__TEST__ASSERTION__C89__USHORT.md5 new file mode 100644 index 00000000..4d5fc67b --- /dev/null +++ b/group__TEST__ASSERTION__C89__USHORT.md5 @@ -0,0 +1 @@ +18231143dd43c6f8d30705e20d9315bb \ No newline at end of file diff --git a/group__TEST__ASSERTION__C89__USHORT.png b/group__TEST__ASSERTION__C89__USHORT.png new file mode 100644 index 00000000..f29ed86b Binary files /dev/null and b/group__TEST__ASSERTION__C89__USHORT.png differ diff --git a/group__TEST__ASSERTION__C99.html b/group__TEST__ASSERTION__C99.html new file mode 100644 index 00000000..538ee3c8 --- /dev/null +++ b/group__TEST__ASSERTION__C99.html @@ -0,0 +1,218 @@ + + + + + + + +cutest: C99 Assertion + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
C99 Assertion
+
+
+
+ + Collaboration diagram for C99 Assertion:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Modules

 long long
 
 unsigned long long
 
 int8_t
 
 uint8_t
 
 int16_t
 
 uint16_t
 
 int32_t
 
 uint32_t
 
 int64_t
 
 uint64_t
 
 size_t
 
 ptrdiff_t
 
 inttpr_t
 
 uinttpr_t
 
+

Detailed Description

+

Assertion macros for C99 standard, provide support:

    +
  • long long
  • +
  • unsigned long long
  • +
  • int8_t
  • +
  • uint8_t
  • +
  • int16_t
  • +
  • uint16_t
  • +
  • int32_t
  • +
  • uint32_t
  • +
  • int64_t
  • +
  • uint64_t
  • +
  • size_t
  • +
  • ptrdiff_t
  • +
  • intptr_t
  • +
  • uintptr_t
  • +
+
Note
To use these assertions, you need <stdint.h> and <inttypes.h> header files which are not included.
+
+These assertions are enabled by default. To disable all of them, add CUTEST_NO_C99_SUPPORT (eg. -DCUTEST_NO_C99_SUPPORT) during compile cutest.
+
+These assertions can be disabled separatily: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
type flag
long long CUTEST_NO_LONGLONG_SUPPORT
unsigned long long CUTEST_NO_ULONGLONG_SUPPORT
int8_t CUTEST_NO_INT8_SUPPORT
uint8_t CUTEST_NO_UINT8_SUPPORT
int16_t CUTEST_NO_INT16_SUPPORT
uint16_t CUTEST_NO_UINT16_SUPPORT
int32_t CUTEST_NO_INT32_SUPPORT
uint32_t CUTEST_NO_UINT32_SUPPORT
int64_t CUTEST_NO_INT64_SUPPORT
uint64_t CUTEST_NO_UINT64_SUPPORT
size_t CUTEST_NO_SIZE_SUPPORT
ptrdiff_t CUTEST_NO_PTRDIFF_SUPPORT
intptr_t CUTEST_NO_INTPTR_SUPPORT
uintptr_t CUTEST_NO_UINTPTR_SUPPORT
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99.js b/group__TEST__ASSERTION__C99.js new file mode 100644 index 00000000..3387f6ba --- /dev/null +++ b/group__TEST__ASSERTION__C99.js @@ -0,0 +1,17 @@ +var group__TEST__ASSERTION__C99 = +[ + [ "long long", "group__TEST__ASSERTION__C99__LONGLONG.html", "group__TEST__ASSERTION__C99__LONGLONG" ], + [ "unsigned long long", "group__TEST__ASSERTION__C99__ULONGLONG.html", "group__TEST__ASSERTION__C99__ULONGLONG" ], + [ "int8_t", "group__TEST__ASSERTION__C99__INT8.html", "group__TEST__ASSERTION__C99__INT8" ], + [ "uint8_t", "group__TEST__ASSERTION__C99__UINT8.html", "group__TEST__ASSERTION__C99__UINT8" ], + [ "int16_t", "group__TEST__ASSERTION__C99__INT16.html", "group__TEST__ASSERTION__C99__INT16" ], + [ "uint16_t", "group__TEST__ASSERTION__C99__UINT16.html", "group__TEST__ASSERTION__C99__UINT16" ], + [ "int32_t", "group__TEST__ASSERTION__C99__INT32.html", "group__TEST__ASSERTION__C99__INT32" ], + [ "uint32_t", "group__TEST__ASSERTION__C99__UINT32.html", "group__TEST__ASSERTION__C99__UINT32" ], + [ "int64_t", "group__TEST__ASSERTION__C99__INT64.html", "group__TEST__ASSERTION__C99__INT64" ], + [ "uint64_t", "group__TEST__ASSERTION__C99__UINT64.html", "group__TEST__ASSERTION__C99__UINT64" ], + [ "size_t", "group__TEST__ASSERTION__C99__SIZE.html", "group__TEST__ASSERTION__C99__SIZE" ], + [ "ptrdiff_t", "group__TEST__ASSERTION__C99__PTRDIFF.html", "group__TEST__ASSERTION__C99__PTRDIFF" ], + [ "inttpr_t", "group__TEST__ASSERTION__C99__INTPTR.html", "group__TEST__ASSERTION__C99__INTPTR" ], + [ "uinttpr_t", "group__TEST__ASSERTION__C99__UINTPTR.html", "group__TEST__ASSERTION__C99__UINTPTR" ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99.map b/group__TEST__ASSERTION__C99.map new file mode 100644 index 00000000..45dfdb95 --- /dev/null +++ b/group__TEST__ASSERTION__C99.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/group__TEST__ASSERTION__C99.md5 b/group__TEST__ASSERTION__C99.md5 new file mode 100644 index 00000000..00741798 --- /dev/null +++ b/group__TEST__ASSERTION__C99.md5 @@ -0,0 +1 @@ +928179b1228876b6cc11190914aba11e \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99.png b/group__TEST__ASSERTION__C99.png new file mode 100644 index 00000000..33ab0abb Binary files /dev/null and b/group__TEST__ASSERTION__C99.png differ diff --git a/group__TEST__ASSERTION__C99__INT16.html b/group__TEST__ASSERTION__C99__INT16.html new file mode 100644 index 00000000..1f5e4515 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT16.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: int16_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for int16_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT16(a, b, ...)   ASSERT_TEMPLATE(int16_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1108 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1113 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1112 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1111 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1110 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int16_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1109 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__INT16.js b/group__TEST__ASSERTION__C99__INT16.js new file mode 100644 index 00000000..5625ea93 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT16.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__INT16 = +[ + [ "ASSERT_EQ_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga4ccecf97c64c88badfe03402e4ddfb51", null ], + [ "ASSERT_GE_INT16", "group__TEST__ASSERTION__C99__INT16.html#gab17d555fe0144894a44a7430c238ed52", null ], + [ "ASSERT_GT_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga1fc0463169acfb467d9f12f85faf10ef", null ], + [ "ASSERT_LE_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga4edc66a4ee0033c9df3df0e270020bb7", null ], + [ "ASSERT_LT_INT16", "group__TEST__ASSERTION__C99__INT16.html#ga8d31ead11197c6dc894a095bfaf43aff", null ], + [ "ASSERT_NE_INT16", "group__TEST__ASSERTION__C99__INT16.html#gad956dc677bca82b8550e4f6d9c0af5d5", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT16.map b/group__TEST__ASSERTION__C99__INT16.map new file mode 100644 index 00000000..0a3fc342 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT16.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__INT16.md5 b/group__TEST__ASSERTION__C99__INT16.md5 new file mode 100644 index 00000000..8f46ccb6 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT16.md5 @@ -0,0 +1 @@ +fd063874d4799d4019aa22987e2bb8c6 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT16.png b/group__TEST__ASSERTION__C99__INT16.png new file mode 100644 index 00000000..a1c690ec Binary files /dev/null and b/group__TEST__ASSERTION__C99__INT16.png differ diff --git a/group__TEST__ASSERTION__C99__INT32.html b/group__TEST__ASSERTION__C99__INT32.html new file mode 100644 index 00000000..8e207f26 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT32.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: int32_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for int32_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT32(a, b, ...)   ASSERT_TEMPLATE(int32_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1137 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1142 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1141 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1140 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1139 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int32_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1138 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__INT32.js b/group__TEST__ASSERTION__C99__INT32.js new file mode 100644 index 00000000..e2ea3bc5 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT32.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__INT32 = +[ + [ "ASSERT_EQ_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga41d93574e8d950c8a89ac6e0a42c3b02", null ], + [ "ASSERT_GE_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga0afc705b5064ecc1ec9f61afa5e19572", null ], + [ "ASSERT_GT_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga18a5c6e5a019a02ccac47a740e1819b8", null ], + [ "ASSERT_LE_INT32", "group__TEST__ASSERTION__C99__INT32.html#gaf2f805c4c9f6061b9a35e3ca20e4dffc", null ], + [ "ASSERT_LT_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga9de332509b999c1c755324a072a4381c", null ], + [ "ASSERT_NE_INT32", "group__TEST__ASSERTION__C99__INT32.html#ga706c6538fe3693df977e95958ae38a41", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT32.map b/group__TEST__ASSERTION__C99__INT32.map new file mode 100644 index 00000000..4ccc3209 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT32.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__INT32.md5 b/group__TEST__ASSERTION__C99__INT32.md5 new file mode 100644 index 00000000..a1683c8b --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT32.md5 @@ -0,0 +1 @@ +76af66235bdecab6fe188d0c8a8510d7 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT32.png b/group__TEST__ASSERTION__C99__INT32.png new file mode 100644 index 00000000..ec8c681c Binary files /dev/null and b/group__TEST__ASSERTION__C99__INT32.png differ diff --git a/group__TEST__ASSERTION__C99__INT64.html b/group__TEST__ASSERTION__C99__INT64.html new file mode 100644 index 00000000..903dadaa --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT64.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: int64_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for int64_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT64(a, b, ...)   ASSERT_TEMPLATE(int64_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1165 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1170 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1169 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1168 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1167 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int64_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1166 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__INT64.js b/group__TEST__ASSERTION__C99__INT64.js new file mode 100644 index 00000000..c6d3f369 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT64.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__INT64 = +[ + [ "ASSERT_EQ_INT64", "group__TEST__ASSERTION__C99__INT64.html#ga20fb7aa4ffb63f14ada3ba65e981140f", null ], + [ "ASSERT_GE_INT64", "group__TEST__ASSERTION__C99__INT64.html#gab035565e23b6f32dd420427b9d2fcc15", null ], + [ "ASSERT_GT_INT64", "group__TEST__ASSERTION__C99__INT64.html#gaf94360783a2768e380b32b1aeafe48b6", null ], + [ "ASSERT_LE_INT64", "group__TEST__ASSERTION__C99__INT64.html#ga66dbd10e228de205147ad76eee86884e", null ], + [ "ASSERT_LT_INT64", "group__TEST__ASSERTION__C99__INT64.html#gac9d935df51ae2c9cb7c4807c4ef3ddca", null ], + [ "ASSERT_NE_INT64", "group__TEST__ASSERTION__C99__INT64.html#gae7d158708de8c49d6c446ffb65d2e64c", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT64.map b/group__TEST__ASSERTION__C99__INT64.map new file mode 100644 index 00000000..8da1290a --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT64.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__INT64.md5 b/group__TEST__ASSERTION__C99__INT64.md5 new file mode 100644 index 00000000..43094a54 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT64.md5 @@ -0,0 +1 @@ +39e489de9fb689924be8406c31d88488 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT64.png b/group__TEST__ASSERTION__C99__INT64.png new file mode 100644 index 00000000..5b5a34f2 Binary files /dev/null and b/group__TEST__ASSERTION__C99__INT64.png differ diff --git a/group__TEST__ASSERTION__C99__INT8.html b/group__TEST__ASSERTION__C99__INT8.html new file mode 100644 index 00000000..a2be27c5 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT8.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: int8_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for int8_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INT8(a, b, ...)   ASSERT_TEMPLATE(int8_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1080 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1085 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1084 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1083 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1082 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(int8_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1081 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__INT8.js b/group__TEST__ASSERTION__C99__INT8.js new file mode 100644 index 00000000..ba62599a --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT8.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__INT8 = +[ + [ "ASSERT_EQ_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga57686c5ec380de8a7807971bc017bd6f", null ], + [ "ASSERT_GE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga58c128a90dec195120fe3928c1f4827a", null ], + [ "ASSERT_GT_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga484bf02b3c8d784ea880ae8a9e3c313b", null ], + [ "ASSERT_LE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga3aed8576c3bf350e56baea5816d08ab3", null ], + [ "ASSERT_LT_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga368c842be7f3fcc3081af854d87686d4", null ], + [ "ASSERT_NE_INT8", "group__TEST__ASSERTION__C99__INT8.html#ga216d5fbdf919e3c97a0e95b4383b4fbb", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT8.map b/group__TEST__ASSERTION__C99__INT8.map new file mode 100644 index 00000000..e7e7b81c --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT8.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__INT8.md5 b/group__TEST__ASSERTION__C99__INT8.md5 new file mode 100644 index 00000000..0bf66acc --- /dev/null +++ b/group__TEST__ASSERTION__C99__INT8.md5 @@ -0,0 +1 @@ +2f4d94d9cb837a0a686a15bbf7c29b47 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INT8.png b/group__TEST__ASSERTION__C99__INT8.png new file mode 100644 index 00000000..48c08c02 Binary files /dev/null and b/group__TEST__ASSERTION__C99__INT8.png differ diff --git a/group__TEST__ASSERTION__C99__INTPTR.html b/group__TEST__ASSERTION__C99__INTPTR.html new file mode 100644 index 00000000..8e31c38b --- /dev/null +++ b/group__TEST__ASSERTION__C99__INTPTR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: inttpr_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for inttpr_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_INTPTR(a, b, ...)   ASSERT_TEMPLATE(intptr_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1221 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1226 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1225 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1224 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1223 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_INTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_INTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(intptr_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1222 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__INTPTR.js b/group__TEST__ASSERTION__C99__INTPTR.js new file mode 100644 index 00000000..84271cf5 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INTPTR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__INTPTR = +[ + [ "ASSERT_EQ_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga2a89144f4cb7fa05a76419a7fb7ead9f", null ], + [ "ASSERT_GE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gab721d6ac0a703ed8eb4c0f9fd925eccd", null ], + [ "ASSERT_GT_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gac6a3ee89ad18c31f474bd1a482369b8e", null ], + [ "ASSERT_LE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#gacd1eafe33842a7ff4e890d02d256cdf4", null ], + [ "ASSERT_LT_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga33e1d48b54ef225dedf2340a3f29922f", null ], + [ "ASSERT_NE_INTPTR", "group__TEST__ASSERTION__C99__INTPTR.html#ga5280c05b9355c44933f8327336096eaa", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INTPTR.map b/group__TEST__ASSERTION__C99__INTPTR.map new file mode 100644 index 00000000..56dbcf1e --- /dev/null +++ b/group__TEST__ASSERTION__C99__INTPTR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__INTPTR.md5 b/group__TEST__ASSERTION__C99__INTPTR.md5 new file mode 100644 index 00000000..63246de7 --- /dev/null +++ b/group__TEST__ASSERTION__C99__INTPTR.md5 @@ -0,0 +1 @@ +20ffdd7d06404a2a76fbe85c87841765 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__INTPTR.png b/group__TEST__ASSERTION__C99__INTPTR.png new file mode 100644 index 00000000..69cbc6b4 Binary files /dev/null and b/group__TEST__ASSERTION__C99__INTPTR.png differ diff --git a/group__TEST__ASSERTION__C99__LONGLONG.html b/group__TEST__ASSERTION__C99__LONGLONG.html new file mode 100644 index 00000000..74a7f8f5 --- /dev/null +++ b/group__TEST__ASSERTION__C99__LONGLONG.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: long long + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for long long:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_LONGLONG(a, b, ...)   ASSERT_TEMPLATE(long long, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1052 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1057 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1056 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1055 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1054 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_LONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_LONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(long long, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1053 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__LONGLONG.js b/group__TEST__ASSERTION__C99__LONGLONG.js new file mode 100644 index 00000000..dbeccad0 --- /dev/null +++ b/group__TEST__ASSERTION__C99__LONGLONG.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__LONGLONG = +[ + [ "ASSERT_EQ_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gad8681a5e7e11320e0c76f0a709dedc8e", null ], + [ "ASSERT_GE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#ga669b932c96f41e17b5b699fcab04f2f9", null ], + [ "ASSERT_GT_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gac4d927735bf26d9dacfbe59977fb5c97", null ], + [ "ASSERT_LE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#ga6da3e2421c79c673a6c6fd50d730ccff", null ], + [ "ASSERT_LT_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gae6a2c47becbc02a43485703c6c6265d1", null ], + [ "ASSERT_NE_LONGLONG", "group__TEST__ASSERTION__C99__LONGLONG.html#gaf23562a67c62d0371fd69c5ae3030248", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__LONGLONG.map b/group__TEST__ASSERTION__C99__LONGLONG.map new file mode 100644 index 00000000..fc07eae1 --- /dev/null +++ b/group__TEST__ASSERTION__C99__LONGLONG.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__LONGLONG.md5 b/group__TEST__ASSERTION__C99__LONGLONG.md5 new file mode 100644 index 00000000..55ece0a1 --- /dev/null +++ b/group__TEST__ASSERTION__C99__LONGLONG.md5 @@ -0,0 +1 @@ +b893d834f15a3d386c83df5b423e162f \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__LONGLONG.png b/group__TEST__ASSERTION__C99__LONGLONG.png new file mode 100644 index 00000000..5d83cf25 Binary files /dev/null and b/group__TEST__ASSERTION__C99__LONGLONG.png differ diff --git a/group__TEST__ASSERTION__C99__PTRDIFF.html b/group__TEST__ASSERTION__C99__PTRDIFF.html new file mode 100644 index 00000000..0cdb9731 --- /dev/null +++ b/group__TEST__ASSERTION__C99__PTRDIFF.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: ptrdiff_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for ptrdiff_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_PTRDIFF(a, b, ...)   ASSERT_TEMPLATE(ptrdiff_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1207 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1212 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1211 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1210 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1209 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_PTRDIFF

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_PTRDIFF( a,
 b,
 ... 
)   ASSERT_TEMPLATE(ptrdiff_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1208 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__PTRDIFF.js b/group__TEST__ASSERTION__C99__PTRDIFF.js new file mode 100644 index 00000000..64daafff --- /dev/null +++ b/group__TEST__ASSERTION__C99__PTRDIFF.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__PTRDIFF = +[ + [ "ASSERT_EQ_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gafe118fb3e83abff21548271c55c9939e", null ], + [ "ASSERT_GE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gaf7611d2f88579f3b0394f844eb114a76", null ], + [ "ASSERT_GT_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#gaf225ea7c10b3753cee4544917897a05e", null ], + [ "ASSERT_LE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga23e0a6ae785600a40fc0afbdf5ec77e7", null ], + [ "ASSERT_LT_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga8b87c905be8d2d99447076d6d4dcb01f", null ], + [ "ASSERT_NE_PTRDIFF", "group__TEST__ASSERTION__C99__PTRDIFF.html#ga0e64badd193ddbbd02a8dabe94d17e6d", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__PTRDIFF.map b/group__TEST__ASSERTION__C99__PTRDIFF.map new file mode 100644 index 00000000..f650e71c --- /dev/null +++ b/group__TEST__ASSERTION__C99__PTRDIFF.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__PTRDIFF.md5 b/group__TEST__ASSERTION__C99__PTRDIFF.md5 new file mode 100644 index 00000000..92d8dd70 --- /dev/null +++ b/group__TEST__ASSERTION__C99__PTRDIFF.md5 @@ -0,0 +1 @@ +64eec2e83ead6bbb747f4b87baa636c8 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__PTRDIFF.png b/group__TEST__ASSERTION__C99__PTRDIFF.png new file mode 100644 index 00000000..f51bad03 Binary files /dev/null and b/group__TEST__ASSERTION__C99__PTRDIFF.png differ diff --git a/group__TEST__ASSERTION__C99__SIZE.html b/group__TEST__ASSERTION__C99__SIZE.html new file mode 100644 index 00000000..5a5d14c3 --- /dev/null +++ b/group__TEST__ASSERTION__C99__SIZE.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: size_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for size_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_SIZE(a, b, ...)   ASSERT_TEMPLATE(size_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1193 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1198 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1197 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1196 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1195 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_SIZE( a,
 b,
 ... 
)   ASSERT_TEMPLATE(size_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1194 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__SIZE.js b/group__TEST__ASSERTION__C99__SIZE.js new file mode 100644 index 00000000..a6a210c7 --- /dev/null +++ b/group__TEST__ASSERTION__C99__SIZE.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__SIZE = +[ + [ "ASSERT_EQ_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gac2bfadf5321a6b587d1565fdcc49dafb", null ], + [ "ASSERT_GE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gab7c72c6ad745b70e8a561a8905100e0e", null ], + [ "ASSERT_GT_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#ga7a89f38c7a24b2ddf4e191d52b86a48a", null ], + [ "ASSERT_LE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#ga5cd1efc35944e10ed981baa713799789", null ], + [ "ASSERT_LT_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gab1fbae9b414a0ab59514ad35d7033e8e", null ], + [ "ASSERT_NE_SIZE", "group__TEST__ASSERTION__C99__SIZE.html#gaa19694ad3b0c2b4943aaec3f087a0993", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__SIZE.map b/group__TEST__ASSERTION__C99__SIZE.map new file mode 100644 index 00000000..e61f3507 --- /dev/null +++ b/group__TEST__ASSERTION__C99__SIZE.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__SIZE.md5 b/group__TEST__ASSERTION__C99__SIZE.md5 new file mode 100644 index 00000000..e4760451 --- /dev/null +++ b/group__TEST__ASSERTION__C99__SIZE.md5 @@ -0,0 +1 @@ +16090ba5ea3d00833d04150921781ef2 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__SIZE.png b/group__TEST__ASSERTION__C99__SIZE.png new file mode 100644 index 00000000..553a10c3 Binary files /dev/null and b/group__TEST__ASSERTION__C99__SIZE.png differ diff --git a/group__TEST__ASSERTION__C99__UINT16.html b/group__TEST__ASSERTION__C99__UINT16.html new file mode 100644 index 00000000..d6b0b5a3 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT16.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: uint16_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for uint16_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT16(a, b, ...)   ASSERT_TEMPLATE(uint16_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1123 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1128 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1127 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1126 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1125 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINT16

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINT16( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint16_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1124 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__UINT16.js b/group__TEST__ASSERTION__C99__UINT16.js new file mode 100644 index 00000000..d1d5bea7 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT16.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__UINT16 = +[ + [ "ASSERT_EQ_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga8c95b8c29bc5df68d7dad0dfe3ce94e1", null ], + [ "ASSERT_GE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga0b62ddcdec1765e20d7adcfe0088efc7", null ], + [ "ASSERT_GT_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga8c5a5839a1742f3748168be216d0491b", null ], + [ "ASSERT_LE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#gaf19e64ab38c8aa5540e14efa3855f122", null ], + [ "ASSERT_LT_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#gabb9dd87fa385e4947af582c98e514ef8", null ], + [ "ASSERT_NE_UINT16", "group__TEST__ASSERTION__C99__UINT16.html#ga6b8fe9830899581b39e91af63f2debe7", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT16.map b/group__TEST__ASSERTION__C99__UINT16.map new file mode 100644 index 00000000..3e134114 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT16.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__UINT16.md5 b/group__TEST__ASSERTION__C99__UINT16.md5 new file mode 100644 index 00000000..d17471d4 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT16.md5 @@ -0,0 +1 @@ +845e26138ab0351c4a81258ecb52c73f \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT16.png b/group__TEST__ASSERTION__C99__UINT16.png new file mode 100644 index 00000000..8e5d8556 Binary files /dev/null and b/group__TEST__ASSERTION__C99__UINT16.png differ diff --git a/group__TEST__ASSERTION__C99__UINT32.html b/group__TEST__ASSERTION__C99__UINT32.html new file mode 100644 index 00000000..88d5622a --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT32.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: uint32_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for uint32_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT32(a, b, ...)   ASSERT_TEMPLATE(uint32_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1151 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1156 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1155 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1154 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1153 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINT32

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINT32( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint32_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1152 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__UINT32.js b/group__TEST__ASSERTION__C99__UINT32.js new file mode 100644 index 00000000..98434cad --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT32.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__UINT32 = +[ + [ "ASSERT_EQ_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga910eb9c631435a63f5d08e63f0b78e62", null ], + [ "ASSERT_GE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga2f6338b8386b8231219483e5c0a5f162", null ], + [ "ASSERT_GT_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga0c6169f4d492e29e602064435e35f9d6", null ], + [ "ASSERT_LE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#gab3ed94c26325efdb5c6d6aefe6de8964", null ], + [ "ASSERT_LT_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#ga60a38e1664f957cc913f4f1ef2855280", null ], + [ "ASSERT_NE_UINT32", "group__TEST__ASSERTION__C99__UINT32.html#gad2ca6f079bb4c1f6e9d23e8bd41726c7", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT32.map b/group__TEST__ASSERTION__C99__UINT32.map new file mode 100644 index 00000000..2630ce19 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT32.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__UINT32.md5 b/group__TEST__ASSERTION__C99__UINT32.md5 new file mode 100644 index 00000000..748c62ae --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT32.md5 @@ -0,0 +1 @@ +5137a197a23cf8ab4a6df7a86fc0bc83 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT32.png b/group__TEST__ASSERTION__C99__UINT32.png new file mode 100644 index 00000000..60e23028 Binary files /dev/null and b/group__TEST__ASSERTION__C99__UINT32.png differ diff --git a/group__TEST__ASSERTION__C99__UINT64.html b/group__TEST__ASSERTION__C99__UINT64.html new file mode 100644 index 00000000..c7eec998 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT64.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: uint64_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for uint64_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT64(a, b, ...)   ASSERT_TEMPLATE(uint64_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1179 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1184 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1183 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1182 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1181 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINT64

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINT64( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint64_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1180 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__UINT64.js b/group__TEST__ASSERTION__C99__UINT64.js new file mode 100644 index 00000000..21e8b95f --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT64.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__UINT64 = +[ + [ "ASSERT_EQ_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#gafd2c8020ed2ff7b9e5a22267e0322253", null ], + [ "ASSERT_GE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga131c7214d2b1ee9c8ea2ae670d09791e", null ], + [ "ASSERT_GT_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga372379e092c8e5b3877ec21556e6381b", null ], + [ "ASSERT_LE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#gabd50a70f60c547e597ed0682563fd91b", null ], + [ "ASSERT_LT_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga974f1f232481464f2f2274b76fd5b7ed", null ], + [ "ASSERT_NE_UINT64", "group__TEST__ASSERTION__C99__UINT64.html#ga5c9c65b487f96014ae884748c57d408f", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT64.map b/group__TEST__ASSERTION__C99__UINT64.map new file mode 100644 index 00000000..d41bb96c --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT64.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__UINT64.md5 b/group__TEST__ASSERTION__C99__UINT64.md5 new file mode 100644 index 00000000..a1811c90 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT64.md5 @@ -0,0 +1 @@ +0156e5f147e2bb6818c6250b95e6270c \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT64.png b/group__TEST__ASSERTION__C99__UINT64.png new file mode 100644 index 00000000..cb20f4b6 Binary files /dev/null and b/group__TEST__ASSERTION__C99__UINT64.png differ diff --git a/group__TEST__ASSERTION__C99__UINT8.html b/group__TEST__ASSERTION__C99__UINT8.html new file mode 100644 index 00000000..5b9dc905 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT8.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: uint8_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for uint8_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINT8(a, b, ...)   ASSERT_TEMPLATE(uint8_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1094 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1099 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1098 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1097 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1096 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINT8

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINT8( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uint8_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1095 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__UINT8.js b/group__TEST__ASSERTION__C99__UINT8.js new file mode 100644 index 00000000..3fdef191 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT8.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__UINT8 = +[ + [ "ASSERT_EQ_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga673192226de10989d45951e43602cd31", null ], + [ "ASSERT_GE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga13588bc525f815d73bee46a4df6f5fda", null ], + [ "ASSERT_GT_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#gae8213420f9e7206127882b723cd24d73", null ], + [ "ASSERT_LE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga244aa40f164e4b4a4ff7465242e2cdc0", null ], + [ "ASSERT_LT_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga132596e386e185aff33cb64bd5bde088", null ], + [ "ASSERT_NE_UINT8", "group__TEST__ASSERTION__C99__UINT8.html#ga8d0919935d7f2f75f5f9f498adc730dc", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT8.map b/group__TEST__ASSERTION__C99__UINT8.map new file mode 100644 index 00000000..c06e43a9 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT8.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__UINT8.md5 b/group__TEST__ASSERTION__C99__UINT8.md5 new file mode 100644 index 00000000..4f1a6ea1 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINT8.md5 @@ -0,0 +1 @@ +c7e39e489b796e22f5844a26998806d0 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINT8.png b/group__TEST__ASSERTION__C99__UINT8.png new file mode 100644 index 00000000..4c2f4d83 Binary files /dev/null and b/group__TEST__ASSERTION__C99__UINT8.png differ diff --git a/group__TEST__ASSERTION__C99__UINTPTR.html b/group__TEST__ASSERTION__C99__UINTPTR.html new file mode 100644 index 00000000..aef44c37 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINTPTR.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: uinttpr_t + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for uinttpr_t:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_UINTPTR(a, b, ...)   ASSERT_TEMPLATE(uintptr_t, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1235 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1240 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1239 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1238 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1237 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_UINTPTR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_UINTPTR( a,
 b,
 ... 
)   ASSERT_TEMPLATE(uintptr_t, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1236 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__UINTPTR.js b/group__TEST__ASSERTION__C99__UINTPTR.js new file mode 100644 index 00000000..51e06fd5 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINTPTR.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__UINTPTR = +[ + [ "ASSERT_EQ_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga8ff92f05d129a5bcc2ece76df3469295", null ], + [ "ASSERT_GE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga625f0ea2304d3ba69ea53001919b70fc", null ], + [ "ASSERT_GT_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga7c4ca3b99ef12e06fb4c3ec68b6829cc", null ], + [ "ASSERT_LE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga7c593288a85644cc53a36f3c8dceb1e3", null ], + [ "ASSERT_LT_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#ga0a90fbcdca9d48d7aa7de3fa4dd65748", null ], + [ "ASSERT_NE_UINTPTR", "group__TEST__ASSERTION__C99__UINTPTR.html#gac97b2b7385009404ecafbf79133bc3a5", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINTPTR.map b/group__TEST__ASSERTION__C99__UINTPTR.map new file mode 100644 index 00000000..ce9b44c6 --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINTPTR.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__UINTPTR.md5 b/group__TEST__ASSERTION__C99__UINTPTR.md5 new file mode 100644 index 00000000..e9bb72aa --- /dev/null +++ b/group__TEST__ASSERTION__C99__UINTPTR.md5 @@ -0,0 +1 @@ +c6e81d1ba2d47ad11e53afef7ea73392 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__UINTPTR.png b/group__TEST__ASSERTION__C99__UINTPTR.png new file mode 100644 index 00000000..61362122 Binary files /dev/null and b/group__TEST__ASSERTION__C99__UINTPTR.png differ diff --git a/group__TEST__ASSERTION__C99__ULONGLONG.html b/group__TEST__ASSERTION__C99__ULONGLONG.html new file mode 100644 index 00000000..4871395d --- /dev/null +++ b/group__TEST__ASSERTION__C99__ULONGLONG.html @@ -0,0 +1,352 @@ + + + + + + + +cutest: unsigned long long + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
unsigned long long
+
+
+
+ + Collaboration diagram for unsigned long long:
+
+
+ + + + + + + + + + + + + + + +

+Macros

#define ASSERT_EQ_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, ==, a, b, __VA_ARGS__)
 
#define ASSERT_NE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, !=, a, b, __VA_ARGS__)
 
#define ASSERT_LT_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, <, a, b, __VA_ARGS__)
 
#define ASSERT_LE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, <=, a, b, __VA_ARGS__)
 
#define ASSERT_GT_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, >, a, b, __VA_ARGS__)
 
#define ASSERT_GE_ULONGLONG(a, b, ...)   ASSERT_TEMPLATE(unsigned long long, >=, a, b, __VA_ARGS__)
 
+

Detailed Description

+

Macro Definition Documentation

+ +

◆ ASSERT_EQ_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_EQ_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, ==, a, b, __VA_ARGS__)
+
+ +

Definition at line 1066 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GE_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GE_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, >=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1071 of file cutest.h.

+ +
+
+ +

◆ ASSERT_GT_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_GT_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, >, a, b, __VA_ARGS__)
+
+ +

Definition at line 1070 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LE_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LE_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, <=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1069 of file cutest.h.

+ +
+
+ +

◆ ASSERT_LT_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_LT_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, <, a, b, __VA_ARGS__)
+
+ +

Definition at line 1068 of file cutest.h.

+ +
+
+ +

◆ ASSERT_NE_ULONGLONG

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_NE_ULONGLONG( a,
 b,
 ... 
)   ASSERT_TEMPLATE(unsigned long long, !=, a, b, __VA_ARGS__)
+
+ +

Definition at line 1067 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__ASSERTION__C99__ULONGLONG.js b/group__TEST__ASSERTION__C99__ULONGLONG.js new file mode 100644 index 00000000..62f8e845 --- /dev/null +++ b/group__TEST__ASSERTION__C99__ULONGLONG.js @@ -0,0 +1,9 @@ +var group__TEST__ASSERTION__C99__ULONGLONG = +[ + [ "ASSERT_EQ_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gace4e1a652da5db10edecb5b227219406", null ], + [ "ASSERT_GE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga627c4a05500e8cf7f76f31e93bb3c28f", null ], + [ "ASSERT_GT_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga90c4b76c11db6f40637c8551436d152a", null ], + [ "ASSERT_LE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#ga1a64507846731914b63fb0a9a938c8dc", null ], + [ "ASSERT_LT_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gab2fa067fa63cae555dc68da2de385b9e", null ], + [ "ASSERT_NE_ULONGLONG", "group__TEST__ASSERTION__C99__ULONGLONG.html#gafeda3486e47756df9e2d0c04cb9524d8", null ] +]; \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__ULONGLONG.map b/group__TEST__ASSERTION__C99__ULONGLONG.map new file mode 100644 index 00000000..97f56d5b --- /dev/null +++ b/group__TEST__ASSERTION__C99__ULONGLONG.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__ASSERTION__C99__ULONGLONG.md5 b/group__TEST__ASSERTION__C99__ULONGLONG.md5 new file mode 100644 index 00000000..8251b431 --- /dev/null +++ b/group__TEST__ASSERTION__C99__ULONGLONG.md5 @@ -0,0 +1 @@ +3be1efce53d6f0ba47e07e505e90c503 \ No newline at end of file diff --git a/group__TEST__ASSERTION__C99__ULONGLONG.png b/group__TEST__ASSERTION__C99__ULONGLONG.png new file mode 100644 index 00000000..5413678c Binary files /dev/null and b/group__TEST__ASSERTION__C99__ULONGLONG.png differ diff --git a/group__TEST__CUSTOM__TYPE.html b/group__TEST__CUSTOM__TYPE.html new file mode 100644 index 00000000..0da670aa --- /dev/null +++ b/group__TEST__CUSTOM__TYPE.html @@ -0,0 +1,317 @@ + + + + + + + +cutest: Custom type assertion support + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Custom type assertion support
+
+
+ + + + + + + + +

+Macros

#define TEST_REGISTER_TYPE_ONCE(TYPE, fn_cmp, fn_dump)
 Declare and register custom type.
 
#define ASSERT_TEMPLATE(TYPE, OP, a, b, fmt, ...)
 Compare template.
 
+

Detailed Description

+

Even though cutest have rich set of assertion macros, there might be some cases that need to compare custom type.

+

We have a custom type register system to support such scene.

+

Suppose we have a custom type: typedef struct { int a; } foo_t, to add type support:

+
    +
  • Register type information by TEST_REGISTER_TYPE_ONCE()

    +
    static int _on_cmp_foo(const foo_t* addr1, const foo_t* addr2) {
    +
    return addr1->a - addr2->a;
    +
    }
    +
    static int _on_dump_foo(FILE* stream, const foo_t* addr) {
    +
    return fprintf(stream, "{ a:%d }", addr->a);
    +
    }
    +
    int main(int argc, char* argv[]) {
    +
    TEST_REGISTER_TYPE_ONCE(foo_t, _on_cmp_foo, _on_dump_foo);
    +
    return cutest_run_tests(argc, argv, stdout, NULL);
    +
    }
    +
    #define TEST_REGISTER_TYPE_ONCE(TYPE, fn_cmp, fn_dump)
    Declare and register custom type.
    Definition: cutest.h:1334
    +
    int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
    Run all test cases.
    +
  • +
  • Define assertion macros

    +
    #define ASSERT_EQ_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, ==, a, b, __VA_ARGS__)
    +
    #define ASSERT_NE_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, !=, a, b, __VA_ARGS__)
    +
    #define ASSERT_LT_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, <, a, b, __VA_ARGS__)
    +
    #define ASSERT_LE_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, <=, a, b, __VA_ARGS__)
    +
    #define ASSERT_GT_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, >, a, b, __VA_ARGS__)
    +
    #define ASSERT_GE_FOO(a, b, ...) ASSERT_TEMPLATE(foo_t, >=, a, b, __VA_ARGS__)
    +
  • +
+

Now you can use ASSERT_EQ_FOO() / ASSERT_NE_FOO() / etc to do assertion.

+

Macro Definition Documentation

+ +

◆ ASSERT_TEMPLATE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define ASSERT_TEMPLATE( TYPE,
 OP,
 a,
 b,
 fmt,
 ... 
)
+
+Value:
do {\
+
TYPE _L = (a); TYPE _R = (b);\
+
if (cutest_internal_compare(#TYPE, (const void*)&_L, (const void*)&_R) OP 0) {\
+
break;\
+
}\
+
cutest_internal_dump(__FILE__, __LINE__, \
+
#TYPE, #OP, #a, #b, (const void*)&_L, (const void*)&_R);\
+
TEST_INTERNAL_SELECT(TEST_INTERNAL_NONE, cutest_internal_printf, fmt)(fmt, ##__VA_ARGS__);\
+
if (cutest_internal_break_on_failure()) {\
+
TEST_DEBUGBREAK;\
+
}\
+
cutest_internal_assert_failure();\
+
} TEST_MSVC_WARNNING_GUARD(while (0), 4127)
+
+

Compare template.

+
Warning
It is for internal usage.
+
Parameters
+ + + + + + + +
[in]TYPEType name.
[in]OPCompare operation.
[in]aLeft operator.
[in]bRight operator.
[in]fmtExtra print format when assert failure.
[in]...Print arguments.
+
+
+ +

Definition at line 1363 of file cutest.h.

+ +
+
+ +

◆ TEST_REGISTER_TYPE_ONCE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define TEST_REGISTER_TYPE_ONCE( TYPE,
 fn_cmp,
 fn_dump 
)
+
+Value:
do {\
+
/* Try our best to check function protocol. */\
+
int (*ckeck_type_cmp)(TYPE*,TYPE*) = fn_cmp; (void)ckeck_type_cmp;\
+
int (*check_type_dump)(FILE*, TYPE*) = fn_dump; (void)check_type_dump;\
+
/* Register type information. */\
+
static cutest_type_info_t s_info = {\
+
{ NULL, NULL, NULL },\
+
#TYPE,\
+
(cutest_custom_type_cmp_fn)fn_cmp,\
+
(cutest_custom_type_dump_fn)fn_dump,\
+
};\
+
static int s_token = 0;\
+
if (s_token == 0) {\
+
s_token = 1;\
+
cutest_internal_register_type(&s_info);\
+
}\
+
} TEST_MSVC_WARNNING_GUARD(while (0), 4127)
+
+

Declare and register custom type.

+

This function does following things:

    +
  1. Try best to check function prototype of cmp and dump. Note this depends on comiler so might not work.
  2. +
  3. Generate information for TYPE.
  4. +
  5. Ensure this register code only run once.
  6. +
+

For example:

+
    +
  • If TYPE is unsigned, the protocol of cmp and dump should be:
    int (*)(const unsigned* addr1, const unsigned* addr2) {\
    +
    unsigned v1 = *addr1, v2 = *addr2;
    +
    if (v1 == v2)
    +
    return 0;
    +
    return v1 < v2 ? -1 : 1;
    +
    }
    +
    int (*)(FILE* stream, const unsigned* addr) {
    +
    fprintf(stream, "%u", *addr);
    +
    }
    +
  • +
  • If TYPE is const char*, the protocol of cmp and dump should be:
    int (*)(const char** addr1, const char** addr2) {\
    +
    return strcmp(*addr1, *addr2);
    +
    }
    +
    int (*)(FILE* stream, const char** addr) {
    +
    fprintf(stream, "%s", *addr);
    +
    }
    +
  • +
+
Note
Although not restricted, it is recommend to register all custom type before run any test.
+
Parameters
+ + + + +
[in]TYPEData type.
[in]fn_cmpCompare function. It must have proto of int (*)(const TYPE*, const TYPE*).
[in]fn_dumpDump function. It must have proto of int (*)(FILE*, const TYPE*).
+
+
+ +

Definition at line 1334 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__CUSTOM__TYPE.js b/group__TEST__CUSTOM__TYPE.js new file mode 100644 index 00000000..9a6e8870 --- /dev/null +++ b/group__TEST__CUSTOM__TYPE.js @@ -0,0 +1,5 @@ +var group__TEST__CUSTOM__TYPE = +[ + [ "ASSERT_TEMPLATE", "group__TEST__CUSTOM__TYPE.html#ga92ca4696dab06a5102f29d080c23bde7", null ], + [ "TEST_REGISTER_TYPE_ONCE", "group__TEST__CUSTOM__TYPE.html#ga656b672186d93ed68416528c22251bbc", null ] +]; \ No newline at end of file diff --git a/group__TEST__DEFINE.html b/group__TEST__DEFINE.html new file mode 100644 index 00000000..f23c2ecf --- /dev/null +++ b/group__TEST__DEFINE.html @@ -0,0 +1,559 @@ + + + + + + + +cutest: Define Test + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Define Test
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define TEST_FIXTURE_SETUP(fixture)    TEST_C_API static void s_cutest_fixture_setup_##fixture(void)
 Setup test fixture.
 
#define TEST_FIXTURE_TEARDOWN(fixture)    TEST_C_API static void s_cutest_fixture_teardown_##fixture(void)
 TearDown test suit.
 
#define TEST_GET_PARAM()    (_test_parameterized_data[_test_parameterized_idx])
 Get parameterized data.
 
#define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE, ...)
 Define parameterized data for fixture.
 
#define TEST_PARAMETERIZED_SUPPRESS_UNUSED    (void)_test_parameterized_data; (void)_test_parameterized_idx
 Suppress unused parameter warning if TEST_GET_PARAM() is not used.
 
#define TEST_P(fixture, test)
 Parameterized Test.
 
#define TEST_F(fixture, test)
 Test Fixture.
 
#define TEST(fixture, test)
 Simple Test.
 
+

Detailed Description

+

There are three ways to define a test:

+

TEST() define a simple test unit, which should be self contained.

+
TEST(foo, self) {\
+
ASSERT_EQ_INT(0, 0);
+
}
+
#define TEST(fixture, test)
Simple Test.
Definition: cutest.h:340
+

Both TEST_F() and TEST_P() define a set of shared test unit, which share the same setup and teardown procedure defined by TEST_FIXTURE_SETUP() and TEST_FIXTURE_TEARDOWN().

+
+
printf("setup of foo.\n");
+
}
+ +
printf("teardown of foo.\n");
+
}
+
+
TEST_F(foo, normal) {
+ +
}
+
+
TEST_PARAMETERIZED_DEFINE(foo, param, int, 0, 1, 2);
+
TEST_P(foo, param) {
+
printf("param:%d\n", TEST_GET_PARAM());
+
}
+
#define ASSERT_NE_INT(a, b,...)
Definition: cutest.h:895
+
#define TEST_P(fixture, test)
Parameterized Test.
Definition: cutest.h:273
+
#define TEST_F(fixture, test)
Test Fixture.
Definition: cutest.h:294
+
#define TEST_FIXTURE_TEARDOWN(fixture)
TearDown test suit.
Definition: cutest.h:196
+
#define TEST_GET_PARAM()
Get parameterized data.
Definition: cutest.h:206
+
#define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE,...)
Define parameterized data for fixture.
Definition: cutest.h:218
+
#define TEST_FIXTURE_SETUP(fixture)
Setup test fixture.
Definition: cutest.h:187
+

The TEST_P() define a parameterized test, which require TEST_PARAMETERIZED_DEFINE() define a set of parameterized data.

+

Macro Definition Documentation

+ +

◆ TEST

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TEST( fixture,
 test 
)
+
+ +

Simple Test.

+

Define a simple test that have no setup (AKA. TEST_FIXTURE_SETUP) and teardown (AKA. TEST_FIXTURE_TEARDOWN) stage, which should be a self contained test.

+
TEST(example, test)
+
{
+ +
}
+
#define ASSERT_LT_INT(a, b,...)
Definition: cutest.h:896
+
Parameters
+ + + +
[in]fixturesuit name
[in]testcase name
+
+
+ +

Definition at line 340 of file cutest.h.

+ +
+
+ +

◆ TEST_F

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TEST_F( fixture,
 test 
)
+
+ +

Test Fixture.

+
Parameters
+ + + +
[in]fixtureThe name of fixture
[in]testThe name of test case
+
+
+
See also
TEST_FIXTURE_SETUP
+
+TEST_FIXTURE_TEARDOWN
+ +

Definition at line 294 of file cutest.h.

+ +
+
+ +

◆ TEST_FIXTURE_SETUP

+ +
+
+ + + + + + + + +
#define TEST_FIXTURE_SETUP( fixture)    TEST_C_API static void s_cutest_fixture_setup_##fixture(void)
+
+ +

Setup test fixture.

+
Parameters
+ + +
[in]fixtureThe name of fixture
+
+
+
See also
TEST_F
+
+TEST_P
+
Examples
test_p.c.
+
+ +

Definition at line 187 of file cutest.h.

+ +
+
+ +

◆ TEST_FIXTURE_TEARDOWN

+ +
+
+ + + + + + + + +
#define TEST_FIXTURE_TEARDOWN( fixture)    TEST_C_API static void s_cutest_fixture_teardown_##fixture(void)
+
+ +

TearDown test suit.

+
Parameters
+ + +
[in]fixtureThe name of fixture
+
+
+
See also
TEST_F
+
+TEST_P
+
Examples
test_p.c.
+
+ +

Definition at line 196 of file cutest.h.

+ +
+
+ +

◆ TEST_GET_PARAM

+ +
+
+ + + + + + + +
#define TEST_GET_PARAM()    (_test_parameterized_data[_test_parameterized_idx])
+
+ +

Get parameterized data.

+
TEST_P(example, test_p_structure)
+
{
+
/*
+
* The `TEST_GET_PARAM()` is strong typed, it returns the same type as you
+
* define.
+
*/
+
test_p_2_data_t data = TEST_GET_PARAM();
+
+
/* Let's do summation for test data. */
+
ASSERT_EQ_INT(data.a + data.b, data.c);
+
}
+
#define ASSERT_EQ_INT(a, b,...)
Definition: cutest.h:894
+
See also
TEST_PARAMETERIZED_DEFINE
+
+TEST_P
+
Returns
The data you defined
+
Examples
test_p.c.
+
+ +

Definition at line 206 of file cutest.h.

+ +
+
+ +

◆ TEST_P

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TEST_P( fixture,
 test 
)
+
+Value:
TEST_C_API void u_cutest_body_##fixture##_##test(\
+
u_cutest_parameterized_type_##fixture##_##test*, unsigned long);\
+
TEST_INITIALIZER(cutest_usertest_interface_##fixture##_##test) {\
+
static unsigned char s_token = 0;\
+
if (s_token == 0) {\
+
s_token = 1;\
+
cutest_usertest_parameterized_register_##fixture##_##test(u_cutest_body_##fixture##_##test);\
+
}\
+
}\
+
TEST_C_API void u_cutest_body_##fixture##_##test(\
+
u_cutest_parameterized_type_##fixture##_##test* _test_parameterized_data,\
+
unsigned long _test_parameterized_idx)
+
#define TEST_C_API
Ensure the api is exposed as C function.
Definition: cutest.h:126
+
+

Parameterized Test.

+

A parameterized test will run many cycles, which was defined by TEST_PARAMETERIZED_DEFINE().

+

You can get the parameter by TEST_GET_PARAM(). Each cycle the TEST_GET_PARAM() will return the matching data defined in TEST_PARAMETERIZED_DEFINE()

+
TEST_P(example, test_p_simple)
+
{
+
/* We can get parameterized data by `TEST_GET_PARAM()`. */
+
int data = TEST_GET_PARAM();
+
+
/* You will always get the same result from `TEST_GET_PARAM()` */
+ +
}
+
Note
If you declare a Parameterized Test but do not want to use TEST_GET_PARAM(), you may get a compile time warning like unused parameter _test_parameterized_data. To suppress this warning, just place TEST_PARAMETERIZED_SUPPRESS_UNUSED in the begin of your test body.
+
TEST_P(example, test_p_repeat)
+
{
+
/*
+
* We don't call `TEST_GET_PARAM()`, so there might be some warnings during
+
* code compile. Use `TEST_PARAMETERIZED_SUPPRESS_UNUSED` to suppress it.
+
*/
+ +
}
+
#define TEST_PARAMETERIZED_SUPPRESS_UNUSED
Suppress unused parameter warning if TEST_GET_PARAM() is not used.
Definition: cutest.h:246
+
Parameters
+ + + +
[in]fixtureThe name of fixture
[in]testThe name of test case
+
+
+
See also
TEST_GET_PARAM()
+
+TEST_PARAMETERIZED_DEFINE()
+
+TEST_PARAMETERIZED_SUPPRESS_UNUSED
+
Examples
test_p.c.
+
+ +

Definition at line 273 of file cutest.h.

+ +
+
+ +

◆ TEST_PARAMETERIZED_DEFINE

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define TEST_PARAMETERIZED_DEFINE( fixture,
 test,
 TYPE,
 ... 
)
+
+Value:
TEST_C_API static void cutest_usertest_parameterized_register_##fixture##_##test(void (*cb)(TYPE*, unsigned long)) {\
+
static TYPE s_parameterized_userdata[] = { __VA_ARGS__ };\
+
static cutest_case_t s_tests[TEST_NARG(__VA_ARGS__)];\
+
unsigned long number_of_parameterized_data = sizeof(s_parameterized_userdata) / sizeof(s_parameterized_userdata[0]);\
+
unsigned long i = 0;\
+
for (i = 0; i < number_of_parameterized_data; i++) {\
+
s_tests[i].node = (cutest_map_node_t){ NULL, NULL, NULL };\
+
s_tests[i].info.fixture_name = #fixture;\
+
s_tests[i].info.case_name = #test;\
+
s_tests[i].stage.setup = s_cutest_fixture_setup_##fixture;\
+
s_tests[i].stage.teardown = s_cutest_fixture_teardown_##fixture;\
+
s_tests[i].stage.body = (void(*)(void*, unsigned long))cb;\
+
s_tests[i].data.mask = 0;\
+
s_tests[i].data.randkey = 0;\
+
s_tests[i].parameterized.type_name = #TYPE;\
+
s_tests[i].parameterized.test_data_cstr = TEST_STRINGIFY(__VA_ARGS__);\
+
s_tests[i].parameterized.param_data = s_parameterized_userdata;\
+
s_tests[i].parameterized.param_idx = i;\
+
cutest_register_case(&s_tests[i]);\
+
}\
+
}\
+
typedef TYPE u_cutest_parameterized_type_##fixture##_##test\
+
+

Define parameterized data for fixture.

+
/*
+
* Define parameterized test data for `example.test_p_simple`
+
* The test data is typeof `int` and is defined as { 1, 2, 3 }
+
*/
+
TEST_PARAMETERIZED_DEFINE(example, test_p_simple, int, 1, 2, 3);
+
/*
+
* Let's try more complex code.
+
*
+
* The `TEST_PARAMETERIZED_DEFINE()` macro support custom data structure like
+
* `struct` or `enum`, you can define any type you want.
+
*/
+
TEST_PARAMETERIZED_DEFINE(example, test_p_structure, test_p_2_data_t, { 1, 2, 3 }, { 2, 3, 5 });
+
Parameters
+ + + + + +
[in]fixtureWhich fixture you want to parameterized
[in]testWhich test you want to parameterized
[in]TYPEData type
[in]...Data values
+
+
+
Examples
test_p.c.
+
+ +

Definition at line 218 of file cutest.h.

+ +
+
+ +

◆ TEST_PARAMETERIZED_SUPPRESS_UNUSED

+ +
+
+ + + + +
#define TEST_PARAMETERIZED_SUPPRESS_UNUSED    (void)_test_parameterized_data; (void)_test_parameterized_idx
+
+ +

Suppress unused parameter warning if TEST_GET_PARAM() is not used.

+
TEST_P(example, test_p_repeat)
+
{
+
/*
+
* We don't call `TEST_GET_PARAM()`, so there might be some warnings during
+
* code compile. Use `TEST_PARAMETERIZED_SUPPRESS_UNUSED` to suppress it.
+
*/
+ +
}
+
Examples
test_p.c.
+
+ +

Definition at line 246 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__DEFINE.js b/group__TEST__DEFINE.js new file mode 100644 index 00000000..0fea881c --- /dev/null +++ b/group__TEST__DEFINE.js @@ -0,0 +1,11 @@ +var group__TEST__DEFINE = +[ + [ "TEST", "group__TEST__DEFINE.html#gac93f21795a575d224cfe3e3b66f48acf", null ], + [ "TEST_F", "group__TEST__DEFINE.html#ga575a559e1183281e6639b661b177e247", null ], + [ "TEST_FIXTURE_SETUP", "group__TEST__DEFINE.html#gadb2fe247b7b65cb1fb5a6dd1b7b0124c", null ], + [ "TEST_FIXTURE_TEARDOWN", "group__TEST__DEFINE.html#ga62c5baa0dd19af30aa89f4c709012744", null ], + [ "TEST_GET_PARAM", "group__TEST__DEFINE.html#gaa478699429dd8fe58d204887bdc59bc9", null ], + [ "TEST_P", "group__TEST__DEFINE.html#ga3fe7e1133df7c29b10ae1975ba63c67d", null ], + [ "TEST_PARAMETERIZED_DEFINE", "group__TEST__DEFINE.html#gabe6f4afe8aa2d3cef6ee4a8df9d48a0e", null ], + [ "TEST_PARAMETERIZED_SUPPRESS_UNUSED", "group__TEST__DEFINE.html#gab26fb171905a6e620f1c091c9e0a022e", null ] +]; \ No newline at end of file diff --git a/group__TEST__FLOATING__NUMBER.html b/group__TEST__FLOATING__NUMBER.html new file mode 100644 index 00000000..d9ff46fe --- /dev/null +++ b/group__TEST__FLOATING__NUMBER.html @@ -0,0 +1,176 @@ + + + + + + + +cutest: Floating-Point Numbers + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Floating-Point Numbers
+
+
+
+ + Collaboration diagram for Floating-Point Numbers:
+
+
+ + + + + + +

+Functions

int cutest_porting_compare_floating_number (int type, const void *v1, const void *v2)
 Floating number compare.
 
+

Detailed Description

+

By default we use EPSILON and ULP to do floating number compre, which assume all floating numbers are matching IEEE 754 Standard (both float and double).

+

This works fine on most time, but there are indeed some hardware does not follow this standard, and this technology just broken.

+

To use custom compare algorithm, define CUTEST_PORTING_COMPARE_FLOATING_NUMBER (eg. -DCUTEST_PORTING_COMPARE_FLOATING_NUMBER) when compile.

+
See also
https://bitbashing.io/comparing-floats.html
+

Function Documentation

+ +

◆ cutest_porting_compare_floating_number()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int cutest_porting_compare_floating_number (int type,
const void * v1,
const void * v2 
)
+
+ +

Floating number compare.

+
Parameters
+ + + + +
[in]typeThe type of v1 and v2. 0 is float, 1 is double.
[in]v1The address to value1.
[in]v2The address to value2.
+
+
+
Returns
<0, =0, >0 if v1 is less than, equal to, more than v2.
+ +
+
+
+
+ + + + diff --git a/group__TEST__FLOATING__NUMBER.js b/group__TEST__FLOATING__NUMBER.js new file mode 100644 index 00000000..b4e88886 --- /dev/null +++ b/group__TEST__FLOATING__NUMBER.js @@ -0,0 +1,4 @@ +var group__TEST__FLOATING__NUMBER = +[ + [ "cutest_porting_compare_floating_number", "group__TEST__FLOATING__NUMBER.html#gaf2a94c291e6f3b9a86df24d8b768bcda", null ] +]; \ No newline at end of file diff --git a/group__TEST__FLOATING__NUMBER.map b/group__TEST__FLOATING__NUMBER.map new file mode 100644 index 00000000..29bfc186 --- /dev/null +++ b/group__TEST__FLOATING__NUMBER.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__FLOATING__NUMBER.md5 b/group__TEST__FLOATING__NUMBER.md5 new file mode 100644 index 00000000..a84aaaf5 --- /dev/null +++ b/group__TEST__FLOATING__NUMBER.md5 @@ -0,0 +1 @@ +15f909f08dd27aa207e81c612aa129c9 \ No newline at end of file diff --git a/group__TEST__FLOATING__NUMBER.png b/group__TEST__FLOATING__NUMBER.png new file mode 100644 index 00000000..e83304c3 Binary files /dev/null and b/group__TEST__FLOATING__NUMBER.png differ diff --git a/group__TEST__MANUAL__REGISTRATION.html b/group__TEST__MANUAL__REGISTRATION.html new file mode 100644 index 00000000..40d30146 --- /dev/null +++ b/group__TEST__MANUAL__REGISTRATION.html @@ -0,0 +1,322 @@ + + + + + + + +cutest: Manually registr test + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Manually registr test
+
+
+ + + + + + + + + + + + + +

+Macros

#define TEST_INITIALIZER(f)    TEST_C_API void f(void)
 Function constructor.
 
#define TEST_NEED_MANUAL_REGISTRATION   1
 
#define TEST_MANUAL_DECLARE_TEST_INTERFACE(fixture, test)    TEST_C_API void cutest_usertest_interface_##fixture##_##test();
 Whether manual registration is needed.
 
#define TEST_MANUAL_REGISTER_TEST_INTERFACE(fixture, test)    cutest_usertest_interface_##fixture##_##test();
 Call test interface.
 
+

Detailed Description

+
Note
In most case you don't need it. By default all test cases are registered automatically. If not, please check whether the value of TEST_NEED_MANUAL_REGISTRATION is 1. If so, it means that your compiler does not support function constructor.
+
Warning
There is a chance that even your compiler support function constructor, the linker will remove constructor code in link stage. In such case you still need to register test manually.
+

If your environment does not support automatically register test cases, you need to manually register your tests.

+

There are at least two ways to manually register test cases:

+

+X-Macro

+
Note
This works on any standard C compiler.
+

Assume you have following tests defined:

+
TEST_FIXTURE_SETUP(manual_registeration){}
+
TEST_FIXTURE_TEARDOWN(manual_registeration){}
+
TEST_PARAMETERIZED_DEFINE(manual_registeration, third, int, 0);
+
+
TEST(manual_registeration, first){}
+
TEST_F(manual_registeration, second){}
+
TEST_P(manual_registeration, third){ TEST_PARAMETERIZED_SUPPRESS_UNUSED; }
+
#define TEST_P(fixture, test)
Parameterized Test.
Definition: cutest.h:273
+
#define TEST_F(fixture, test)
Test Fixture.
Definition: cutest.h:294
+
#define TEST_FIXTURE_TEARDOWN(fixture)
TearDown test suit.
Definition: cutest.h:196
+
#define TEST_PARAMETERIZED_SUPPRESS_UNUSED
Suppress unused parameter warning if TEST_GET_PARAM() is not used.
Definition: cutest.h:246
+
#define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE,...)
Define parameterized data for fixture.
Definition: cutest.h:218
+
#define TEST(fixture, test)
Simple Test.
Definition: cutest.h:340
+
#define TEST_FIXTURE_SETUP(fixture)
Setup test fixture.
Definition: cutest.h:187
+

To manually register your tests:

+
    +
  1. Defines all your tests in macro.
    #define MY_TEST_TABLE(xx) \
    +
    xx(manual_registeration, first) \
    +
    xx(manual_registeration, second) \
    +
    xx(manual_registeration, third)
    +
  2. +
  3. Declare all tests interface on top of your file.
    +
    #define TEST_MANUAL_DECLARE_TEST_INTERFACE(fixture, test)
    Whether manual registration is needed.
    Definition: cutest.h:708
    +
  4. +
  5. Register all tests.
    +
    #define TEST_MANUAL_REGISTER_TEST_INTERFACE(fixture, test)
    Call test interface.
    Definition: cutest.h:716
    +
  6. +
+

+Section

+
Note
This rely on compiler and linker. Here we take gcc as example.
+

First of all, you need a section name so all following magic can happen, let's say cutest.

+
    +
  1. Custom TEST_INITIALIZER before include cutest.h
    #define TEST_INITIALIZER(f) \
    +
    TEST_C_API void f(void) __attribute__((__section__(".cutest")));\
    +
    TEST_C_API void f(void)
    +
    +
    #include <cutest.h>
    + +
  2. +
  3. Custom linker script .lds. Please note the code ALIGN(0x4), it is the size of function pointer, which should be 0x4 on 32-bit platform and 0x8 on 64-bit platform.
    .cutest :
    +
    {
    +
    . = ALIGN(0x4);
    +
    _cutest_entry_start = .;
    +
    KEEP(*(SORT(.cutest*)));
    +
    _cutest_entry_end = .;
    +
    . = ALIGN(0x4);
    +
    } >RAM0L
    +
  4. +
  5. Load register test cases before call cutest_run_tests()
    extern (void(*)(void)) _cutest_entry_start;
    +
    extern (void(*)(void)) _cutest_entry_end;
    +
    +
    int main(int argc, char* argv[])
    +
    {
    +
    uintptr_t func = _cutest_entry_start;
    +
    for (; func < _cutest_entry_end; func += sizeof(void*))
    +
    {
    +
    (void(*)(void)) f = func;
    +
    f();
    +
    }
    +
    return cutest_run_tests(argc, argv, stdout, NULL);
    +
    }
    +
    int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
    Run all test cases.
    +
  6. +
+

Macro Definition Documentation

+ +

◆ TEST_INITIALIZER

+ +
+
+ + + + + + + + +
#define TEST_INITIALIZER( f)    TEST_C_API void f(void)
+
+ +

Function constructor.

+

Run the following code before main() invoke.

+

It generate a startup entrypoint with following function protocol that has no parameter and return value:

void (*function)(void);
+
Parameters
+ + +
[f]The entrypoint name.
+
+
+ +

Definition at line 688 of file cutest.h.

+ +
+
+ +

◆ TEST_MANUAL_DECLARE_TEST_INTERFACE

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TEST_MANUAL_DECLARE_TEST_INTERFACE( fixture,
 test 
)    TEST_C_API void cutest_usertest_interface_##fixture##_##test();
+
+ +

Whether manual registration is needed.

+

If the value is 0, tests will be automatically registered. If not, you need to register your tests manually.

+

Declare test interface.

Parameters
+ + + +
[in]fixtureFixture name.
[in]testTest name.
+
+
+ +

Definition at line 708 of file cutest.h.

+ +
+
+ +

◆ TEST_MANUAL_REGISTER_TEST_INTERFACE

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TEST_MANUAL_REGISTER_TEST_INTERFACE( fixture,
 test 
)    cutest_usertest_interface_##fixture##_##test();
+
+ +

Call test interface.

+
Parameters
+ + + +
[in]fixtureFixture name.
[in]testTest name.
+
+
+ +

Definition at line 716 of file cutest.h.

+ +
+
+ +

◆ TEST_NEED_MANUAL_REGISTRATION

+ +
+
+ + + + +
#define TEST_NEED_MANUAL_REGISTRATION   1
+
+ +

Definition at line 690 of file cutest.h.

+ +
+
+
+
+ + + + diff --git a/group__TEST__MANUAL__REGISTRATION.js b/group__TEST__MANUAL__REGISTRATION.js new file mode 100644 index 00000000..c1736ce4 --- /dev/null +++ b/group__TEST__MANUAL__REGISTRATION.js @@ -0,0 +1,7 @@ +var group__TEST__MANUAL__REGISTRATION = +[ + [ "TEST_INITIALIZER", "group__TEST__MANUAL__REGISTRATION.html#gaf8423fba14309d2ec748e8fea8140cd0", null ], + [ "TEST_MANUAL_DECLARE_TEST_INTERFACE", "group__TEST__MANUAL__REGISTRATION.html#ga088b89f4f8b396a46ebd37cd5232c2d9", null ], + [ "TEST_MANUAL_REGISTER_TEST_INTERFACE", "group__TEST__MANUAL__REGISTRATION.html#ga1b927d6ac5457b8dd2388996370304b2", null ], + [ "TEST_NEED_MANUAL_REGISTRATION", "group__TEST__MANUAL__REGISTRATION.html#gab0041e70abff2e3b9239e783785b2260", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING.html b/group__TEST__PORTING.html new file mode 100644 index 00000000..5245bfc8 --- /dev/null +++ b/group__TEST__PORTING.html @@ -0,0 +1,133 @@ + + + + + + + +cutest: Porting + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Porting
+
+
+
+ + Collaboration diagram for Porting:
+
+
+ + + + + + + +

+Modules

 System API
 
 Floating-Point Numbers
 
+

Detailed Description

+

By default cutest support Windows/Linux, and if you need to porting it to some other OS, you need to implementation all the interfaces listed in this chapter.

+

Do note that the following API is non-optional and operation system must provide it:

+
+
+ + + + diff --git a/group__TEST__PORTING.js b/group__TEST__PORTING.js new file mode 100644 index 00000000..7d225fca --- /dev/null +++ b/group__TEST__PORTING.js @@ -0,0 +1,5 @@ +var group__TEST__PORTING = +[ + [ "System API", "group__TEST__PORTING__SYSTEM__API.html", "group__TEST__PORTING__SYSTEM__API" ], + [ "Floating-Point Numbers", "group__TEST__FLOATING__NUMBER.html", "group__TEST__FLOATING__NUMBER" ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING.map b/group__TEST__PORTING.map new file mode 100644 index 00000000..bb73d94c --- /dev/null +++ b/group__TEST__PORTING.map @@ -0,0 +1,5 @@ + + + + + diff --git a/group__TEST__PORTING.md5 b/group__TEST__PORTING.md5 new file mode 100644 index 00000000..4ae4ee52 --- /dev/null +++ b/group__TEST__PORTING.md5 @@ -0,0 +1 @@ +62102f08d9a4512a67328cae4c261d4c \ No newline at end of file diff --git a/group__TEST__PORTING.png b/group__TEST__PORTING.png new file mode 100644 index 00000000..b1444b7d Binary files /dev/null and b/group__TEST__PORTING.png differ diff --git a/group__TEST__PORTING__SYSTEM__API.html b/group__TEST__PORTING__SYSTEM__API.html new file mode 100644 index 00000000..e9ee772c --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API.html @@ -0,0 +1,153 @@ + + + + + + + +cutest: System API + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
System API
+
+
+
+ + Collaboration diagram for System API:
+
+
+ + + + + + + + + + + + + +

+Modules

 abort()
 
 clock_gettime()
 
 fprintf()
 
 gettid()
 
 setjmp()
 
+

Detailed Description

+

To porting all the interfaces, add CUTEST_PORTING (eg. -DCUTEST_PORTING) when compile cutest.

+

To porting specific interface, add one or more flags listed below:

+ + + + + + + + + + + + +
Interface Flag
cutest_porting_abort CUTEST_PORTING_ABORT
cutest_porting_clock_gettime CUTEST_PORTING_CLOCK_GETTIME
cutest_porting_cvfprintf CUTEST_PORTING_CVFPRINTF
cutest_porting_gettid CUTEST_PORTING_GETTID
cutest_porting_setjmp CUTEST_PORTING_SETJMP
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API.js b/group__TEST__PORTING__SYSTEM__API.js new file mode 100644 index 00000000..a01bc230 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API.js @@ -0,0 +1,8 @@ +var group__TEST__PORTING__SYSTEM__API = +[ + [ "abort()", "group__TEST__PORTING__SYSTEM__API__ABORT.html", "group__TEST__PORTING__SYSTEM__API__ABORT" ], + [ "clock_gettime()", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME" ], + [ "fprintf()", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html", "group__TEST__PORTING__SYSTEM__API__FPRINTF" ], + [ "gettid()", "group__TEST__PORTING__SYSTEM__API__GETTID.html", "group__TEST__PORTING__SYSTEM__API__GETTID" ], + [ "setjmp()", "group__TEST__PORTING__SYSTEM__API__SETJMP.html", "group__TEST__PORTING__SYSTEM__API__SETJMP" ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API.map b/group__TEST__PORTING__SYSTEM__API.map new file mode 100644 index 00000000..7e345609 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/group__TEST__PORTING__SYSTEM__API.md5 b/group__TEST__PORTING__SYSTEM__API.md5 new file mode 100644 index 00000000..b595027a --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API.md5 @@ -0,0 +1 @@ +43e0ffdbf2d76ee49045eb6a2b52813f \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API.png b/group__TEST__PORTING__SYSTEM__API.png new file mode 100644 index 00000000..4d264d83 Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API.png differ diff --git a/group__TEST__PORTING__SYSTEM__API__ABORT.html b/group__TEST__PORTING__SYSTEM__API__ABORT.html new file mode 100644 index 00000000..a449fb05 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__ABORT.html @@ -0,0 +1,163 @@ + + + + + + + +cutest: abort() + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ + +
+
+
+ + Collaboration diagram for abort():
+
+
+ + + + + +

+Functions

void cutest_porting_abort (const char *fmt,...)
 
+

Detailed Description

+

Function Documentation

+ +

◆ cutest_porting_abort()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void cutest_porting_abort (const char * fmt,
 ... 
)
+
+
See also
https://man7.org/linux/man-pages/man3/abort.3.html
+
Note
It is not recommend to ignore last words because that will missing something really important.
+
Parameters
+ + + +
[in]fmtLast words.
[in]...Arguments to last words.
+
+
+ +
+
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API__ABORT.js b/group__TEST__PORTING__SYSTEM__API__ABORT.js new file mode 100644 index 00000000..7920ee83 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__ABORT.js @@ -0,0 +1,4 @@ +var group__TEST__PORTING__SYSTEM__API__ABORT = +[ + [ "cutest_porting_abort", "group__TEST__PORTING__SYSTEM__API__ABORT.html#ga108296e67136ae44b4fc30d459b8f05b", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__ABORT.map b/group__TEST__PORTING__SYSTEM__API__ABORT.map new file mode 100644 index 00000000..088945f0 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__ABORT.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__PORTING__SYSTEM__API__ABORT.md5 b/group__TEST__PORTING__SYSTEM__API__ABORT.md5 new file mode 100644 index 00000000..e2788cf5 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__ABORT.md5 @@ -0,0 +1 @@ +4f5b6b651cf3f26c784158b286e2b5e9 \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__ABORT.png b/group__TEST__PORTING__SYSTEM__API__ABORT.png new file mode 100644 index 00000000..c4ff75da Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API__ABORT.png differ diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html new file mode 100644 index 00000000..788469a4 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html @@ -0,0 +1,183 @@ + + + + + + + +cutest: clock_gettime() + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
clock_gettime()
+
+
+
+ + Collaboration diagram for clock_gettime():
+
+
+ + + + + +

+Data Structures

struct  cutest_porting_timespec_t
 
+ + + +

+Functions

void cutest_porting_clock_gettime (cutest_porting_timespec_t *tp)
 
+

Detailed Description

+

Data Structure Documentation

+ +

◆ cutest_porting_timespec_t

+ +
+
+ + + + +
struct cutest_porting_timespec_t
+
+
+

Definition at line 1667 of file cutest.h.

+
+ + + + + + + +
Data Fields
+long +tv_nsec +
+long +tv_sec +
+ +
+
+

Function Documentation

+ +

◆ cutest_porting_clock_gettime()

+ +
+
+ + + + + + + + +
void cutest_porting_clock_gettime (cutest_porting_timespec_ttp)
+
+
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.js b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.js new file mode 100644 index 00000000..7d00ab6a --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.js @@ -0,0 +1,8 @@ +var group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME = +[ + [ "cutest_porting_timespec_t", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#structcutest__porting__timespec__t", [ + [ "tv_nsec", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#a87f023ba4df946995ed7434144501c4a", null ], + [ "tv_sec", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ad7ba4ed1f2602412d3b21ab19720fbb2", null ] + ] ], + [ "cutest_porting_clock_gettime", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ga8167c2a3896fdad9761be02ba482a48c", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.map b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.map new file mode 100644 index 00000000..421c5fa3 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.md5 b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.md5 new file mode 100644 index 00000000..62b5c234 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.md5 @@ -0,0 +1 @@ +ee0425808c8ef821e87675d216810fe5 \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.png b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.png new file mode 100644 index 00000000..2b070651 Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.png differ diff --git a/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME_structcutest__porting__timespec__t.js b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME_structcutest__porting__timespec__t.js new file mode 100644 index 00000000..c6d1f5df --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME_structcutest__porting__timespec__t.js @@ -0,0 +1,5 @@ +var group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME_structcutest__porting__timespec__t = +[ + [ "tv_nsec", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#a87f023ba4df946995ed7434144501c4a", null ], + [ "tv_sec", "group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ad7ba4ed1f2602412d3b21ab19720fbb2", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__FPRINTF.html b/group__TEST__PORTING__SYSTEM__API__FPRINTF.html new file mode 100644 index 00000000..d971f26a --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__FPRINTF.html @@ -0,0 +1,221 @@ + + + + + + + +cutest: fprintf() + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
fprintf()
+
+
+
+ + Collaboration diagram for fprintf():
+
+
+ + + + + +

+Enumerations

enum  cutest_porting_color_t { CUTEST_COLOR_DEFAULT +, CUTEST_COLOR_RED +, CUTEST_COLOR_GREEN +, CUTEST_COLOR_YELLOW + }
 
+ + + + +

+Functions

int cutest_porting_cvfprintf (FILE *stream, int color, const char *fmt, va_list ap)
 Colorful print.
 
+

Detailed Description

+

Enumeration Type Documentation

+ +

◆ cutest_porting_color_t

+ +
+
+ + + + +
enum cutest_porting_color_t
+
+ + + + + +
Enumerator
CUTEST_COLOR_DEFAULT 
CUTEST_COLOR_RED 
CUTEST_COLOR_GREEN 
CUTEST_COLOR_YELLOW 
+ +

Definition at line 1688 of file cutest.h.

+ +
+
+

Function Documentation

+ +

◆ cutest_porting_cvfprintf()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int cutest_porting_cvfprintf (FILE * stream,
int color,
const char * fmt,
va_list ap 
)
+
+ +

Colorful print.

+

Different system have different solutions to do colorful print, so we have a interface to do it.

+

Below is a simple implementation that works just fine except drop colorful support:

+
int cutest_porting_cvfprintf(FILE* stream, int color, const char* fmt, va_list ap)
+
{
+
(void)color;
+
return vfprintf(stream, fmt, ap);
+
}
+
int cutest_porting_cvfprintf(FILE *stream, int color, const char *fmt, va_list ap)
Colorful print.
+
Note
The color support is optional, it only affects the vision on console. If you do not known how to add support for it, just ignore the parameter color.
+
Warning
If you want to support colorful print, do remember to distinguish whether data is print to console. If stream is a normal file and the color control charasters are printed into the file, this file is highly possible mess up.
+
Parameters
+ + + + + +
[in]streamThe stream to print.
[in]colorPrint color. Checkout cutest_porting_color_t.
[in]fmtPrint format.
[in]apPrint arguments.
+
+
+ +
+
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API__FPRINTF.js b/group__TEST__PORTING__SYSTEM__API__FPRINTF.js new file mode 100644 index 00000000..82bf152b --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__FPRINTF.js @@ -0,0 +1,10 @@ +var group__TEST__PORTING__SYSTEM__API__FPRINTF = +[ + [ "cutest_porting_color_t", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga5d1a457b08b19877db1868e2148d17d5", [ + [ "CUTEST_COLOR_DEFAULT", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5af940b3892295db55283cf41f48c12eae", null ], + [ "CUTEST_COLOR_RED", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1208fcc6dddc82fabf31735a12d98f68", null ], + [ "CUTEST_COLOR_GREEN", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1c8b09131a6368c1eb4227d220540b62", null ], + [ "CUTEST_COLOR_YELLOW", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5ab1b815014a22539750632e9b1db6cfc3", null ] + ] ], + [ "cutest_porting_cvfprintf", "group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga1d13aa9e1315a076a42136933e710320", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__FPRINTF.map b/group__TEST__PORTING__SYSTEM__API__FPRINTF.map new file mode 100644 index 00000000..bf99104a --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__FPRINTF.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__PORTING__SYSTEM__API__FPRINTF.md5 b/group__TEST__PORTING__SYSTEM__API__FPRINTF.md5 new file mode 100644 index 00000000..e3008ea3 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__FPRINTF.md5 @@ -0,0 +1 @@ +de2e063a4559ee9da9579d1f2087a255 \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__FPRINTF.png b/group__TEST__PORTING__SYSTEM__API__FPRINTF.png new file mode 100644 index 00000000..8328e252 Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API__FPRINTF.png differ diff --git a/group__TEST__PORTING__SYSTEM__API__GETTID.html b/group__TEST__PORTING__SYSTEM__API__GETTID.html new file mode 100644 index 00000000..3c8016bc --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__GETTID.html @@ -0,0 +1,151 @@ + + + + + + + +cutest: gettid() + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
gettid()
+
+
+
+ + Collaboration diagram for gettid():
+
+
+ + + + + + +

+Functions

void * cutest_porting_gettid (void)
 Get current thread ID.
 
+

Detailed Description

+

Function Documentation

+ +

◆ cutest_porting_gettid()

+ +
+
+ + + + + + + + +
void * cutest_porting_gettid (void )
+
+ +

Get current thread ID.

+

This function is used for check whether ASSERTION macros are called from main thread. If your system does not support multithread, just return NULL.

+
See also
https://man7.org/linux/man-pages/man3/pthread_self.3.html
+
+https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-getcurrentthreadid
+ +
+
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API__GETTID.js b/group__TEST__PORTING__SYSTEM__API__GETTID.js new file mode 100644 index 00000000..9efb4906 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__GETTID.js @@ -0,0 +1,4 @@ +var group__TEST__PORTING__SYSTEM__API__GETTID = +[ + [ "cutest_porting_gettid", "group__TEST__PORTING__SYSTEM__API__GETTID.html#gaa01eddddeefc427e31411d493d1d8f91", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__GETTID.map b/group__TEST__PORTING__SYSTEM__API__GETTID.map new file mode 100644 index 00000000..e0abc59e --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__GETTID.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__PORTING__SYSTEM__API__GETTID.md5 b/group__TEST__PORTING__SYSTEM__API__GETTID.md5 new file mode 100644 index 00000000..e4a15ea0 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__GETTID.md5 @@ -0,0 +1 @@ +4b09b03cb4eff864037406e88620a86b \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__GETTID.png b/group__TEST__PORTING__SYSTEM__API__GETTID.png new file mode 100644 index 00000000..2d6af73d Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API__GETTID.png differ diff --git a/group__TEST__PORTING__SYSTEM__API__SETJMP.html b/group__TEST__PORTING__SYSTEM__API__SETJMP.html new file mode 100644 index 00000000..a0f9393f --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__SETJMP.html @@ -0,0 +1,261 @@ + + + + + + + +cutest: setjmp() + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
setjmp()
+
+
+
+ + Collaboration diagram for setjmp():
+
+
+ + + + + + + + + + + +

+Typedefs

typedef struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t
 
typedef void(* cutest_porting_longjmp_fn) (cutest_porting_jmpbuf_t *buf, int val)
 Function protocol for longjmp().
 
typedef void(* cutest_porting_setjmp_fn) (cutest_porting_jmpbuf_t *buf, cutest_porting_longjmp_fn fn_longjmp, int val, void *data)
 Execute function when call setjmp().
 
+ + + + +

+Functions

void cutest_porting_setjmp (cutest_porting_setjmp_fn execute, void *data)
 Wrapper for setjmp() and longjmp().
 
+

Detailed Description

+

Typedef Documentation

+ +

◆ cutest_porting_jmpbuf_t

+ +
+
+ + + + +
typedef struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t
+
+ +

Definition at line 1760 of file cutest.h.

+ +
+
+ +

◆ cutest_porting_longjmp_fn

+ +
+
+ + + + +
typedef void(* cutest_porting_longjmp_fn) (cutest_porting_jmpbuf_t *buf, int val)
+
+ +

Function protocol for longjmp().

+
Parameters
+ + + +
[in]bufJump buffer.
[in]valJump value, cannot be 0.
+
+
+ +

Definition at line 1767 of file cutest.h.

+ +
+
+ +

◆ cutest_porting_setjmp_fn

+ +
+
+ + + + +
typedef void(* cutest_porting_setjmp_fn) (cutest_porting_jmpbuf_t *buf, cutest_porting_longjmp_fn fn_longjmp, int val, void *data)
+
+ +

Execute function when call setjmp().

+
Parameters
+ + + + + +
[in]bufJump buffer.
[in]fn_longjmpFunction to do longjmp.
[in]val0 if first call, otherwise is the value passed to fn_longjmp.
[in]dataUser defined data passed to cutest_porting_setjmp()/
+
+
+ +

Definition at line 1776 of file cutest.h.

+ +
+
+

Function Documentation

+ +

◆ cutest_porting_setjmp()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void cutest_porting_setjmp (cutest_porting_setjmp_fn execute,
void * data 
)
+
+ +

Wrapper for setjmp() and longjmp().

+

A example implementation is:

+
struct cutest_porting_jmpbuf
+
{
+
jmp_buf buf;
+
};
+
static void _cutest_porting_longjmp(cutest_porting_jmpbuf_t* buf, int val)
+
{
+
longjmp(buf->buf, val);
+
}
+ +
{
+ +
+
execute(
+
&jmpbuf,
+
_cutest_porting_longjmp,
+
setjmp(jmpbuf.buf),
+
data);
+
}
+
void(* cutest_porting_setjmp_fn)(cutest_porting_jmpbuf_t *buf, cutest_porting_longjmp_fn fn_longjmp, int val, void *data)
Execute function when call setjmp().
Definition: cutest.h:1776
+
struct cutest_porting_jmpbuf cutest_porting_jmpbuf_t
Definition: cutest.h:1760
+
void cutest_porting_setjmp(cutest_porting_setjmp_fn execute, void *data)
Wrapper for setjmp() and longjmp().
+
See also
https://man7.org/linux/man-pages/man3/setjmp.3.html
+ +
+
+
+
+ + + + diff --git a/group__TEST__PORTING__SYSTEM__API__SETJMP.js b/group__TEST__PORTING__SYSTEM__API__SETJMP.js new file mode 100644 index 00000000..a25d775f --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__SETJMP.js @@ -0,0 +1,7 @@ +var group__TEST__PORTING__SYSTEM__API__SETJMP = +[ + [ "cutest_porting_jmpbuf_t", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#gae6162236e92ca8c6991397ed0fd9a3cc", null ], + [ "cutest_porting_longjmp_fn", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga0c294a17e3d1c9b27dc1d01283dfc986", null ], + [ "cutest_porting_setjmp_fn", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga5da79e2d6db714f235703020ebc75534", null ], + [ "cutest_porting_setjmp", "group__TEST__PORTING__SYSTEM__API__SETJMP.html#gaec860c1f1f9652d824b13abc8046d1cc", null ] +]; \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__SETJMP.map b/group__TEST__PORTING__SYSTEM__API__SETJMP.map new file mode 100644 index 00000000..ec4fc85e --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__SETJMP.map @@ -0,0 +1,4 @@ + + + + diff --git a/group__TEST__PORTING__SYSTEM__API__SETJMP.md5 b/group__TEST__PORTING__SYSTEM__API__SETJMP.md5 new file mode 100644 index 00000000..6e9ba1d8 --- /dev/null +++ b/group__TEST__PORTING__SYSTEM__API__SETJMP.md5 @@ -0,0 +1 @@ +cfeed20bd3ecb1e1f675bf71ab61ba78 \ No newline at end of file diff --git a/group__TEST__PORTING__SYSTEM__API__SETJMP.png b/group__TEST__PORTING__SYSTEM__API__SETJMP.png new file mode 100644 index 00000000..1c6ce44b Binary files /dev/null and b/group__TEST__PORTING__SYSTEM__API__SETJMP.png differ diff --git a/group__TEST__RUN.html b/group__TEST__RUN.html new file mode 100644 index 00000000..ea9d587f --- /dev/null +++ b/group__TEST__RUN.html @@ -0,0 +1,255 @@ + + + + + + + +cutest: Run + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Run
+
+
+ + + + + +

+Data Structures

struct  cutest_hook_t
 CUnitTest hook. More...
 
+ + + + + + + + + + + + + +

+Functions

int cutest_run_tests (int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
 Run all test cases.
 
const char * cutest_get_current_fixture (void)
 Get current running suit name.
 
const char * cutest_get_current_test (void)
 Get current running case name.
 
void cutest_skip_test (void)
 Skip current test case.
 
+

Detailed Description

+

Function Documentation

+ +

◆ cutest_get_current_fixture()

+ +
+
+ + + + + + + + +
const char * cutest_get_current_fixture (void )
+
+ +

Get current running suit name.

+
Returns
The suit name
+ +
+
+ +

◆ cutest_get_current_test()

+ +
+
+ + + + + + + + +
const char * cutest_get_current_test (void )
+
+ +

Get current running case name.

+
Returns
The case name
+ +
+
+ +

◆ cutest_run_tests()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int cutest_run_tests (int argc,
char * argv[],
FILE * out,
const cutest_hook_thook 
)
+
+ +

Run all test cases.

+
int main(int argc, char* argv[])
+
{
+
return cutest_run_tests(argc, argv, stdout, NULL);
+
}
+
int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
Run all test cases.
+
Parameters
+ + + + + +
[in]argcThe number of arguments.
[in]argvThe argument list.
[in]outOutput stream, cannot be NULL.
[in]hookTest hook.
+
+
+
Returns
0 if success, otherwise failure.
+
Examples
main.c.
+
+ +
+
+ +

◆ cutest_skip_test()

+ +
+
+ + + + + + + + +
void cutest_skip_test (void )
+
+ +

Skip current test case.

+
Note
This function only has affect in setup stage.
+
See also
TEST_CLASS_SETUP
+ +
+
+
+
+ + + + diff --git a/group__TEST__RUN.js b/group__TEST__RUN.js new file mode 100644 index 00000000..4fc17e28 --- /dev/null +++ b/group__TEST__RUN.js @@ -0,0 +1,17 @@ +var group__TEST__RUN = +[ + [ "cutest_hook_t", "structcutest__hook__t.html", [ + [ "after_all_test", "structcutest__hook__t.html#af35a8f1596015e2a5eb4e7d1627cbe90", null ], + [ "after_setup", "structcutest__hook__t.html#a65cd1148edd36e6b5b263627a3a13e22", null ], + [ "after_teardown", "structcutest__hook__t.html#aecdd2df4de12c5d92c5d90717767a002", null ], + [ "after_test", "structcutest__hook__t.html#aade7270ed90b669e9e896328e5ccb21b", null ], + [ "before_all_test", "structcutest__hook__t.html#ad11032f5974a0ec1a836c6f756a77dc3", null ], + [ "before_setup", "structcutest__hook__t.html#a0bea2a88fdf26ac296d2b5acbd67b138", null ], + [ "before_teardown", "structcutest__hook__t.html#afeea1a44da209a47f7903a33b2f9e039", null ], + [ "before_test", "structcutest__hook__t.html#a3aedc58e87fd84929777904454c54867", null ] + ] ], + [ "cutest_get_current_fixture", "group__TEST__RUN.html#ga7636bc77112126ea53aba25a3b757645", null ], + [ "cutest_get_current_test", "group__TEST__RUN.html#gaf6e4d455b57144a4740fea63e0c4d413", null ], + [ "cutest_run_tests", "group__TEST__RUN.html#ga68b356be458390a148ad1761e4b9355c", null ], + [ "cutest_skip_test", "group__TEST__RUN.html#gaf7cd1ae6ee5222ec410d37377f9f79f6", null ] +]; \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 00000000..9c490b40 --- /dev/null +++ b/index.html @@ -0,0 +1,155 @@ + + + + + + + +cutest: CUnitTest + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
CUnitTest
+
+
+

+cutest

+

UnitTest framework for C.

+

+Features

+
    +
  1. Absolutely no memory allocation. You are safe to observe and measure your own program's memory usage.
  2. +
  3. Tests are automatically registered when declared. No need to rewrite your test name!
  4. +
  5. A rich set of assertions. And you can register your own type.
  6. +
  7. Value-parameterized tests.
  8. +
+

+Quick start

+

+Step 1. Call entrypoint function in your <tt>main()</tt>

+
int main(int argc, char* argv[]) {
+
return cutest_run_tests(argc, argv, stdout, NULL);
+
}
+
int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
Run all test cases.
+

+Step 2. Write your test code

+
TEST(simple, test) {
+
ASSERT_NE_STR("hello", "world");
+
}
+
#define ASSERT_NE_STR(a, b,...)
Definition: cutest.h:993
+
#define TEST(fixture, test)
Simple Test.
Definition: cutest.h:340
+

+Step 3. Nothing more!

+

You are done for everything! Compile your code and run, you will have following output:

+
[==========] total 1 test registered.
+
[ RUN ] simple.test
+
[ OK ] simple.test (0 ms)
+
[==========] 1/1 test case ran. (0 ms total)
+
[ PASSED ] 1 test.
+

+Integration

+

+CMake

+

Add following code to your CMakeLists.txt:

+
add_subdirectory(cutest)
+
target_link_libraries(${YOUR_TEST_EXECUTABLE} PRIVATE cutest)
+

Remember to replace ${YOUR_TEST_EXECUTABLE} with your actual executable name.

+

+Manually

+

Just copy cutest.h (in include/ directory) and cutest.c (in src/ directory) to your build tree, and you are done.

+

Please do note that cutest.c use #include "cutest.h" syntax to find the header file, so be sure it can be found.

+

+Documents

+

Checkout Online manual for API reference.

+
+
+
+ + + + diff --git a/index.js b/index.js new file mode 100644 index 00000000..450a1287 --- /dev/null +++ b/index.js @@ -0,0 +1,16 @@ +var index = +[ + [ "cutest", "index.html#autotoc_md0", [ + [ "Features", "index.html#autotoc_md1", null ], + [ "Quick start", "index.html#autotoc_md2", [ + [ "Step 1. Call entrypoint function in your main()", "index.html#autotoc_md3", null ], + [ "Step 2. Write your test code", "index.html#autotoc_md4", null ], + [ "Step 3. Nothing more!", "index.html#autotoc_md5", null ] + ] ], + [ "Integration", "index.html#autotoc_md6", [ + [ "CMake", "index.html#autotoc_md7", null ], + [ "Manually", "index.html#autotoc_md8", null ] + ] ], + [ "Documents", "index.html#autotoc_md9", null ] + ] ] +]; \ No newline at end of file diff --git a/jquery.js b/jquery.js new file mode 100644 index 00000000..1dffb65b --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/main_8c-example.html b/main_8c-example.html new file mode 100644 index 00000000..973a9bec --- /dev/null +++ b/main_8c-example.html @@ -0,0 +1,114 @@ + + + + + + + +cutest: main.c + + + + + + + + + + + + + +
+
+ + + + + + +
+
cutest +
+
UnitTest for C/C++.
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
main.c
+
+
+

A example for how to call cutest_run_tests().

+
#include "cutest.h"
+
+
int main(int argc, char* argv[])
+
{
+
return cutest_run_tests(argc, argv, stdout, NULL);
+
}
+ +
int cutest_run_tests(int argc, char *argv[], FILE *out, const cutest_hook_t *hook)
Run all test cases.
+
+
+ + + + diff --git a/menu.js b/menu.js new file mode 100644 index 00000000..b0b26936 --- /dev/null +++ b/menu.js @@ -0,0 +1,136 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+='
    '; + for (var i in data.children) { + var url; + var link; + link = data.children[i].url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + } else { + url = relPath+link; + } + result+='
  • '+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+'
  • '; + } + result+='
'; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='
'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 00000000..29202f88 --- /dev/null +++ b/menudata.js @@ -0,0 +1,50 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Related Pages",url:"pages.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html"}, +{text:"Variables",url:"functions_vars.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"a",url:"globals.html#index_a"}, +{text:"c",url:"globals.html#index_c"}, +{text:"t",url:"globals.html#index_t"}]}, +{text:"Functions",url:"globals_func.html"}, +{text:"Typedefs",url:"globals_type.html"}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html"}, +{text:"Macros",url:"globals_defs.html",children:[ +{text:"a",url:"globals_defs.html#index_a"}, +{text:"c",url:"globals_defs.html#index_c"}, +{text:"t",url:"globals_defs.html#index_t"}]}]}]}, +{text:"Examples",url:"examples.html"}]} diff --git a/modules.html b/modules.html new file mode 100644 index 00000000..be52b561 --- /dev/null +++ b/modules.html @@ -0,0 +1,151 @@ + + + + + + + +cutest: Modules + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    cutest +
    +
    UnitTest for C/C++.
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Modules
    +
    + +
    + + + + diff --git a/modules.js b/modules.js new file mode 100644 index 00000000..6dc8827b --- /dev/null +++ b/modules.js @@ -0,0 +1,9 @@ +var modules = +[ + [ "Define Test", "group__TEST__DEFINE.html", "group__TEST__DEFINE" ], + [ "Manually registr test", "group__TEST__MANUAL__REGISTRATION.html", "group__TEST__MANUAL__REGISTRATION" ], + [ "Assertion", "group__TEST__ASSERTION.html", "group__TEST__ASSERTION" ], + [ "Custom type assertion support", "group__TEST__CUSTOM__TYPE.html", "group__TEST__CUSTOM__TYPE" ], + [ "Run", "group__TEST__RUN.html", "group__TEST__RUN" ], + [ "Porting", "group__TEST__PORTING.html", "group__TEST__PORTING" ] +]; \ No newline at end of file diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 00000000..72a58a52 Binary files /dev/null and b/nav_f.png differ diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 00000000..032fbdd4 Binary files /dev/null and b/nav_fd.png differ diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 00000000..2093a237 Binary files /dev/null and b/nav_g.png differ diff --git a/nav_h.png b/nav_h.png new file mode 100644 index 00000000..33389b10 Binary files /dev/null and b/nav_h.png differ diff --git a/nav_hd.png b/nav_hd.png new file mode 100644 index 00000000..de80f18a Binary files /dev/null and b/nav_hd.png differ diff --git a/navtree.css b/navtree.css new file mode 100644 index 00000000..c8a7766a --- /dev/null +++ b/navtree.css @@ -0,0 +1,150 @@ +#nav-tree .children_ul { + margin:0; + padding:4px; +} + +#nav-tree ul { + list-style:none outside none; + margin:0px; + padding:0px; +} + +#nav-tree li { + white-space:nowrap; + margin:0px; + padding:0px; +} + +#nav-tree .plus { + margin:0px; +} + +#nav-tree .selected { + background-image: url('tab_a.png'); + background-repeat:repeat-x; + color: var(--nav-text-active-color); + text-shadow: var(--nav-text-active-shadow); +} + +#nav-tree .selected .arrow { + color: var(--nav-arrow-selected-color); + text-shadow: none; +} + +#nav-tree img { + margin:0px; + padding:0px; + border:0px; + vertical-align: middle; +} + +#nav-tree a { + text-decoration:none; + padding:0px; + margin:0px; + outline:none; +} + +#nav-tree .label { + margin:0px; + padding:0px; + font: 12px var(--font-family-nav); +} + +#nav-tree .label a { + padding:2px; +} + +#nav-tree .selected a { + text-decoration:none; + color:var(--nav-text-active-color); +} + +#nav-tree .children_ul { + margin:0px; + padding:0px; +} + +#nav-tree .item { + margin:0px; + padding:0px; +} + +#nav-tree { + padding: 0px 0px; + font-size:14px; + overflow:auto; +} + +#doc-content { + overflow:auto; + display:block; + padding:0px; + margin:0px; + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#side-nav { + padding:0 6px 0 0; + margin: 0px; + display:block; + position: absolute; + left: 0px; + width: $width; + overflow : hidden; +} + +.ui-resizable .ui-resizable-handle { + display:block; +} + +.ui-resizable-e { + background-image:var(--nav-splitbar-image); + background-size:100%; + background-repeat:repeat-y; + background-attachment: scroll; + cursor:ew-resize; + height:100%; + right:0; + top:0; + width:6px; +} + +.ui-resizable-handle { + display:none; + font-size:0.1px; + position:absolute; + z-index:1; +} + +#nav-tree-contents { + margin: 6px 0px 0px 0px; +} + +#nav-tree { + background-repeat:repeat-x; + background-color: var(--nav-background-color); + -webkit-overflow-scrolling : touch; /* iOS 5+ */ +} + +#nav-sync { + position:absolute; + top:5px; + right:24px; + z-index:0; +} + +#nav-sync img { + opacity:0.3; +} + +#nav-sync img:hover { + opacity:0.9; +} + +@media print +{ + #nav-tree { display: none; } + div.ui-resizable-handle { display: none; position: relative; } +} + diff --git a/navtree.js b/navtree.js new file mode 100644 index 00000000..27983687 --- /dev/null +++ b/navtree.js @@ -0,0 +1,549 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var navTreeSubIndices = new Array(); +var arrowDown = '▼'; +var arrowRight = '►'; + +function getData(varName) +{ + var i = varName.lastIndexOf('/'); + var n = i>=0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/ + + + + + + +cutest: Related Pages + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    cutest +
    +
    UnitTest for C/C++.
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    + + +
     FAQ
    +
    +
    +
    + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 00000000..aaeb6fc0 --- /dev/null +++ b/resize.js @@ -0,0 +1,155 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 00000000..f72ace72 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,168 @@ +var searchData= +[ + ['abort_28_29_0',['abort()',['../group__TEST__PORTING__SYSTEM__API__ABORT.html',1,'']]], + ['after_5fall_5ftest_1',['after_all_test',['../structcutest__hook__t.html#af35a8f1596015e2a5eb4e7d1627cbe90',1,'cutest_hook_t']]], + ['after_5fsetup_2',['after_setup',['../structcutest__hook__t.html#a65cd1148edd36e6b5b263627a3a13e22',1,'cutest_hook_t']]], + ['after_5fteardown_3',['after_teardown',['../structcutest__hook__t.html#aecdd2df4de12c5d92c5d90717767a002',1,'cutest_hook_t']]], + ['after_5ftest_4',['after_test',['../structcutest__hook__t.html#aade7270ed90b669e9e896328e5ccb21b',1,'cutest_hook_t']]], + ['assert_5feq_5fchar_5',['ASSERT_EQ_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#ga429e4d95fbcf76282b66cc06a3a8ab7b',1,'cutest.h']]], + ['assert_5feq_5fdchar_6',['ASSERT_EQ_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#ga9292f067fd55493ed1cd8d6aa9c4c29d',1,'cutest.h']]], + ['assert_5feq_5fdouble_7',['ASSERT_EQ_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#gadaf1c30e0609832f337b7c51a066f698',1,'cutest.h']]], + ['assert_5feq_5ffloat_8',['ASSERT_EQ_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#gae5e8e16bb4b7090837f02fd5d3f6ac22',1,'cutest.h']]], + ['assert_5feq_5fint_9',['ASSERT_EQ_INT',['../group__TEST__ASSERTION__C89__INT.html#ga00e936c37503216d792143e051f37f98',1,'cutest.h']]], + ['assert_5feq_5fint16_10',['ASSERT_EQ_INT16',['../group__TEST__ASSERTION__C99__INT16.html#ga4ccecf97c64c88badfe03402e4ddfb51',1,'cutest.h']]], + ['assert_5feq_5fint32_11',['ASSERT_EQ_INT32',['../group__TEST__ASSERTION__C99__INT32.html#ga41d93574e8d950c8a89ac6e0a42c3b02',1,'cutest.h']]], + ['assert_5feq_5fint64_12',['ASSERT_EQ_INT64',['../group__TEST__ASSERTION__C99__INT64.html#ga20fb7aa4ffb63f14ada3ba65e981140f',1,'cutest.h']]], + ['assert_5feq_5fint8_13',['ASSERT_EQ_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga57686c5ec380de8a7807971bc017bd6f',1,'cutest.h']]], + ['assert_5feq_5fintptr_14',['ASSERT_EQ_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#ga2a89144f4cb7fa05a76419a7fb7ead9f',1,'cutest.h']]], + ['assert_5feq_5flong_15',['ASSERT_EQ_LONG',['../group__TEST__ASSERTION__C89__LONG.html#gab13fe26ce4f584ed49f16e2e3b28b87f',1,'cutest.h']]], + ['assert_5feq_5flonglong_16',['ASSERT_EQ_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#gad8681a5e7e11320e0c76f0a709dedc8e',1,'cutest.h']]], + ['assert_5feq_5fptr_17',['ASSERT_EQ_PTR',['../group__TEST__ASSERTION__C89__PTR.html#ga77e1fde009a80b15e5ecf03ac6ab3368',1,'cutest.h']]], + ['assert_5feq_5fptrdiff_18',['ASSERT_EQ_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#gafe118fb3e83abff21548271c55c9939e',1,'cutest.h']]], + ['assert_5feq_5fshort_19',['ASSERT_EQ_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#gae9ea65fbbf12d6d0e4e3fd245b5c5f72',1,'cutest.h']]], + ['assert_5feq_5fsize_20',['ASSERT_EQ_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#gac2bfadf5321a6b587d1565fdcc49dafb',1,'cutest.h']]], + ['assert_5feq_5fstr_21',['ASSERT_EQ_STR',['../group__TEST__ASSERTION__C89__STR.html#ga07ead71abb14e877880a8761691289ba',1,'cutest.h']]], + ['assert_5feq_5fuchar_22',['ASSERT_EQ_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga5a73c95c12ea13f45f7eb6fc5c1337ee',1,'cutest.h']]], + ['assert_5feq_5fuint_23',['ASSERT_EQ_UINT',['../group__TEST__ASSERTION__C89__UINT.html#gae6547cac4da13bf5248d9eb613808227',1,'cutest.h']]], + ['assert_5feq_5fuint16_24',['ASSERT_EQ_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#ga8c95b8c29bc5df68d7dad0dfe3ce94e1',1,'cutest.h']]], + ['assert_5feq_5fuint32_25',['ASSERT_EQ_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#ga910eb9c631435a63f5d08e63f0b78e62',1,'cutest.h']]], + ['assert_5feq_5fuint64_26',['ASSERT_EQ_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#gafd2c8020ed2ff7b9e5a22267e0322253',1,'cutest.h']]], + ['assert_5feq_5fuint8_27',['ASSERT_EQ_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#ga673192226de10989d45951e43602cd31',1,'cutest.h']]], + ['assert_5feq_5fuintptr_28',['ASSERT_EQ_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#ga8ff92f05d129a5bcc2ece76df3469295',1,'cutest.h']]], + ['assert_5feq_5fulong_29',['ASSERT_EQ_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#gaa2b14762cbffdfb5576d10efe27162fb',1,'cutest.h']]], + ['assert_5feq_5fulonglong_30',['ASSERT_EQ_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#gace4e1a652da5db10edecb5b227219406',1,'cutest.h']]], + ['assert_5feq_5fushort_31',['ASSERT_EQ_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#ga753765df6af3fc210c52f41b00bbc68b',1,'cutest.h']]], + ['assert_5fge_5fchar_32',['ASSERT_GE_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#ga99ae329bffa596b0519db7ae225cf7ab',1,'cutest.h']]], + ['assert_5fge_5fdchar_33',['ASSERT_GE_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#gaa2407db1328a647b1d851ecc6e577aff',1,'cutest.h']]], + ['assert_5fge_5fdouble_34',['ASSERT_GE_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#ga57803af4fc559aab0b3bcaff017ee1ac',1,'cutest.h']]], + ['assert_5fge_5ffloat_35',['ASSERT_GE_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#ga71c04dce8fdb1116bd794f9581f483a7',1,'cutest.h']]], + ['assert_5fge_5fint_36',['ASSERT_GE_INT',['../group__TEST__ASSERTION__C89__INT.html#ga721b733e8417ff0b2ee5bc140e2de897',1,'cutest.h']]], + ['assert_5fge_5fint16_37',['ASSERT_GE_INT16',['../group__TEST__ASSERTION__C99__INT16.html#gab17d555fe0144894a44a7430c238ed52',1,'cutest.h']]], + ['assert_5fge_5fint32_38',['ASSERT_GE_INT32',['../group__TEST__ASSERTION__C99__INT32.html#ga0afc705b5064ecc1ec9f61afa5e19572',1,'cutest.h']]], + ['assert_5fge_5fint64_39',['ASSERT_GE_INT64',['../group__TEST__ASSERTION__C99__INT64.html#gab035565e23b6f32dd420427b9d2fcc15',1,'cutest.h']]], + ['assert_5fge_5fint8_40',['ASSERT_GE_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga58c128a90dec195120fe3928c1f4827a',1,'cutest.h']]], + ['assert_5fge_5fintptr_41',['ASSERT_GE_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#gab721d6ac0a703ed8eb4c0f9fd925eccd',1,'cutest.h']]], + ['assert_5fge_5flong_42',['ASSERT_GE_LONG',['../group__TEST__ASSERTION__C89__LONG.html#ga74bb5df9d455475740d8d00dd285e343',1,'cutest.h']]], + ['assert_5fge_5flonglong_43',['ASSERT_GE_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#ga669b932c96f41e17b5b699fcab04f2f9',1,'cutest.h']]], + ['assert_5fge_5fptr_44',['ASSERT_GE_PTR',['../group__TEST__ASSERTION__C89__PTR.html#ga5f743c7c8de0b86490614ee2417c5b62',1,'cutest.h']]], + ['assert_5fge_5fptrdiff_45',['ASSERT_GE_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#gaf7611d2f88579f3b0394f844eb114a76',1,'cutest.h']]], + ['assert_5fge_5fshort_46',['ASSERT_GE_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#ga68894034ee57581b1ead55c58cef18b0',1,'cutest.h']]], + ['assert_5fge_5fsize_47',['ASSERT_GE_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#gab7c72c6ad745b70e8a561a8905100e0e',1,'cutest.h']]], + ['assert_5fge_5fuchar_48',['ASSERT_GE_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga1b4d82808fcffa015e8a60413a20af0d',1,'cutest.h']]], + ['assert_5fge_5fuint_49',['ASSERT_GE_UINT',['../group__TEST__ASSERTION__C89__UINT.html#ga1f1fb8e938d372e0b7649f196bf8c5b7',1,'cutest.h']]], + ['assert_5fge_5fuint16_50',['ASSERT_GE_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#ga0b62ddcdec1765e20d7adcfe0088efc7',1,'cutest.h']]], + ['assert_5fge_5fuint32_51',['ASSERT_GE_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#ga2f6338b8386b8231219483e5c0a5f162',1,'cutest.h']]], + ['assert_5fge_5fuint64_52',['ASSERT_GE_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#ga131c7214d2b1ee9c8ea2ae670d09791e',1,'cutest.h']]], + ['assert_5fge_5fuint8_53',['ASSERT_GE_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#ga13588bc525f815d73bee46a4df6f5fda',1,'cutest.h']]], + ['assert_5fge_5fuintptr_54',['ASSERT_GE_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#ga625f0ea2304d3ba69ea53001919b70fc',1,'cutest.h']]], + ['assert_5fge_5fulong_55',['ASSERT_GE_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#gad0c5ba5a5cdfa3068dccab5390a9c9f2',1,'cutest.h']]], + ['assert_5fge_5fulonglong_56',['ASSERT_GE_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#ga627c4a05500e8cf7f76f31e93bb3c28f',1,'cutest.h']]], + ['assert_5fge_5fushort_57',['ASSERT_GE_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#gaf230d7180a3e7855fde15ca2bf46f645',1,'cutest.h']]], + ['assert_5fgt_5fchar_58',['ASSERT_GT_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#ga3f70a37d27bc6586632b4a86e547217b',1,'cutest.h']]], + ['assert_5fgt_5fdchar_59',['ASSERT_GT_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#ga93eb1c1e9ff7d1af8df24b7015818cca',1,'cutest.h']]], + ['assert_5fgt_5fdouble_60',['ASSERT_GT_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#ga5aa7de3b507f8fdea9bd8860d803bea0',1,'cutest.h']]], + ['assert_5fgt_5ffloat_61',['ASSERT_GT_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#ga91df0bd3d25f6688aeb71efb144b69d6',1,'cutest.h']]], + ['assert_5fgt_5fint_62',['ASSERT_GT_INT',['../group__TEST__ASSERTION__C89__INT.html#ga2d6d286aea4fd9d47eed8969ab3c4315',1,'cutest.h']]], + ['assert_5fgt_5fint16_63',['ASSERT_GT_INT16',['../group__TEST__ASSERTION__C99__INT16.html#ga1fc0463169acfb467d9f12f85faf10ef',1,'cutest.h']]], + ['assert_5fgt_5fint32_64',['ASSERT_GT_INT32',['../group__TEST__ASSERTION__C99__INT32.html#ga18a5c6e5a019a02ccac47a740e1819b8',1,'cutest.h']]], + ['assert_5fgt_5fint64_65',['ASSERT_GT_INT64',['../group__TEST__ASSERTION__C99__INT64.html#gaf94360783a2768e380b32b1aeafe48b6',1,'cutest.h']]], + ['assert_5fgt_5fint8_66',['ASSERT_GT_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga484bf02b3c8d784ea880ae8a9e3c313b',1,'cutest.h']]], + ['assert_5fgt_5fintptr_67',['ASSERT_GT_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#gac6a3ee89ad18c31f474bd1a482369b8e',1,'cutest.h']]], + ['assert_5fgt_5flong_68',['ASSERT_GT_LONG',['../group__TEST__ASSERTION__C89__LONG.html#gac40120428f370a97e7229fe16ed3c2a5',1,'cutest.h']]], + ['assert_5fgt_5flonglong_69',['ASSERT_GT_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#gac4d927735bf26d9dacfbe59977fb5c97',1,'cutest.h']]], + ['assert_5fgt_5fptr_70',['ASSERT_GT_PTR',['../group__TEST__ASSERTION__C89__PTR.html#ga1dae1ad2e70074b5709728e22786ffaa',1,'cutest.h']]], + ['assert_5fgt_5fptrdiff_71',['ASSERT_GT_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#gaf225ea7c10b3753cee4544917897a05e',1,'cutest.h']]], + ['assert_5fgt_5fshort_72',['ASSERT_GT_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#gaa662186b41eb948d69b91859ab7945d1',1,'cutest.h']]], + ['assert_5fgt_5fsize_73',['ASSERT_GT_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#ga7a89f38c7a24b2ddf4e191d52b86a48a',1,'cutest.h']]], + ['assert_5fgt_5fuchar_74',['ASSERT_GT_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga7126812923fe80d35b4b09bdf7b79fc3',1,'cutest.h']]], + ['assert_5fgt_5fuint_75',['ASSERT_GT_UINT',['../group__TEST__ASSERTION__C89__UINT.html#ga8a6b626bef56290f44aabab665a48fad',1,'cutest.h']]], + ['assert_5fgt_5fuint16_76',['ASSERT_GT_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#ga8c5a5839a1742f3748168be216d0491b',1,'cutest.h']]], + ['assert_5fgt_5fuint32_77',['ASSERT_GT_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#ga0c6169f4d492e29e602064435e35f9d6',1,'cutest.h']]], + ['assert_5fgt_5fuint64_78',['ASSERT_GT_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#ga372379e092c8e5b3877ec21556e6381b',1,'cutest.h']]], + ['assert_5fgt_5fuint8_79',['ASSERT_GT_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#gae8213420f9e7206127882b723cd24d73',1,'cutest.h']]], + ['assert_5fgt_5fuintptr_80',['ASSERT_GT_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#ga7c4ca3b99ef12e06fb4c3ec68b6829cc',1,'cutest.h']]], + ['assert_5fgt_5fulong_81',['ASSERT_GT_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#ga34ebb67ce239794522a1207bc9f96baf',1,'cutest.h']]], + ['assert_5fgt_5fulonglong_82',['ASSERT_GT_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#ga90c4b76c11db6f40637c8551436d152a',1,'cutest.h']]], + ['assert_5fgt_5fushort_83',['ASSERT_GT_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#gaaaea95a22d8025fce8b21f1250040211',1,'cutest.h']]], + ['assert_5fle_5fchar_84',['ASSERT_LE_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#ga3e0b6bea91db3e5435678b5da7cd9b71',1,'cutest.h']]], + ['assert_5fle_5fdchar_85',['ASSERT_LE_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#ga71a24aec138a0b0aeac0c9853314028b',1,'cutest.h']]], + ['assert_5fle_5fdouble_86',['ASSERT_LE_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#ga2a38dd68eb793738525f85526561c48f',1,'cutest.h']]], + ['assert_5fle_5ffloat_87',['ASSERT_LE_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#gab45f4639ad1b30443c35ec6f48db4d6a',1,'cutest.h']]], + ['assert_5fle_5fint_88',['ASSERT_LE_INT',['../group__TEST__ASSERTION__C89__INT.html#gadf74641e1759fe90d4d9e3878081a9f6',1,'cutest.h']]], + ['assert_5fle_5fint16_89',['ASSERT_LE_INT16',['../group__TEST__ASSERTION__C99__INT16.html#ga4edc66a4ee0033c9df3df0e270020bb7',1,'cutest.h']]], + ['assert_5fle_5fint32_90',['ASSERT_LE_INT32',['../group__TEST__ASSERTION__C99__INT32.html#gaf2f805c4c9f6061b9a35e3ca20e4dffc',1,'cutest.h']]], + ['assert_5fle_5fint64_91',['ASSERT_LE_INT64',['../group__TEST__ASSERTION__C99__INT64.html#ga66dbd10e228de205147ad76eee86884e',1,'cutest.h']]], + ['assert_5fle_5fint8_92',['ASSERT_LE_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga3aed8576c3bf350e56baea5816d08ab3',1,'cutest.h']]], + ['assert_5fle_5fintptr_93',['ASSERT_LE_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#gacd1eafe33842a7ff4e890d02d256cdf4',1,'cutest.h']]], + ['assert_5fle_5flong_94',['ASSERT_LE_LONG',['../group__TEST__ASSERTION__C89__LONG.html#gafd0f588791bf146245d3c96cdad15c96',1,'cutest.h']]], + ['assert_5fle_5flonglong_95',['ASSERT_LE_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#ga6da3e2421c79c673a6c6fd50d730ccff',1,'cutest.h']]], + ['assert_5fle_5fptr_96',['ASSERT_LE_PTR',['../group__TEST__ASSERTION__C89__PTR.html#ga7c82aad52fd04d2e0bdaa63f45a5fa40',1,'cutest.h']]], + ['assert_5fle_5fptrdiff_97',['ASSERT_LE_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#ga23e0a6ae785600a40fc0afbdf5ec77e7',1,'cutest.h']]], + ['assert_5fle_5fshort_98',['ASSERT_LE_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#ga9d711bc304a53ea629ed5d6e131a92cf',1,'cutest.h']]], + ['assert_5fle_5fsize_99',['ASSERT_LE_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#ga5cd1efc35944e10ed981baa713799789',1,'cutest.h']]], + ['assert_5fle_5fuchar_100',['ASSERT_LE_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga0df3bed443b0ad3b6d3c27bb99d5f47d',1,'cutest.h']]], + ['assert_5fle_5fuint_101',['ASSERT_LE_UINT',['../group__TEST__ASSERTION__C89__UINT.html#ga73417ff497326f02f7e28bdc2b7e4d00',1,'cutest.h']]], + ['assert_5fle_5fuint16_102',['ASSERT_LE_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#gaf19e64ab38c8aa5540e14efa3855f122',1,'cutest.h']]], + ['assert_5fle_5fuint32_103',['ASSERT_LE_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#gab3ed94c26325efdb5c6d6aefe6de8964',1,'cutest.h']]], + ['assert_5fle_5fuint64_104',['ASSERT_LE_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#gabd50a70f60c547e597ed0682563fd91b',1,'cutest.h']]], + ['assert_5fle_5fuint8_105',['ASSERT_LE_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#ga244aa40f164e4b4a4ff7465242e2cdc0',1,'cutest.h']]], + ['assert_5fle_5fuintptr_106',['ASSERT_LE_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#ga7c593288a85644cc53a36f3c8dceb1e3',1,'cutest.h']]], + ['assert_5fle_5fulong_107',['ASSERT_LE_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#gaea4e359a0d01466a73697150bd024ede',1,'cutest.h']]], + ['assert_5fle_5fulonglong_108',['ASSERT_LE_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#ga1a64507846731914b63fb0a9a938c8dc',1,'cutest.h']]], + ['assert_5fle_5fushort_109',['ASSERT_LE_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#ga94d6121b2805d6c44876317249d1cb42',1,'cutest.h']]], + ['assert_5flt_5fchar_110',['ASSERT_LT_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#gafee34cd9be1878086460036c8348314c',1,'cutest.h']]], + ['assert_5flt_5fdchar_111',['ASSERT_LT_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#ga6abef20b8bd0ea3697f1700f47e5613e',1,'cutest.h']]], + ['assert_5flt_5fdouble_112',['ASSERT_LT_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#ga8bd1dc9da9ff3347e69dcc46ce20947f',1,'cutest.h']]], + ['assert_5flt_5ffloat_113',['ASSERT_LT_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#gac1508ae1737d673ea3afed6282f6c1dd',1,'cutest.h']]], + ['assert_5flt_5fint_114',['ASSERT_LT_INT',['../group__TEST__ASSERTION__C89__INT.html#ga6914c45a92ec29d5404668f1e0e92c77',1,'cutest.h']]], + ['assert_5flt_5fint16_115',['ASSERT_LT_INT16',['../group__TEST__ASSERTION__C99__INT16.html#ga8d31ead11197c6dc894a095bfaf43aff',1,'cutest.h']]], + ['assert_5flt_5fint32_116',['ASSERT_LT_INT32',['../group__TEST__ASSERTION__C99__INT32.html#ga9de332509b999c1c755324a072a4381c',1,'cutest.h']]], + ['assert_5flt_5fint64_117',['ASSERT_LT_INT64',['../group__TEST__ASSERTION__C99__INT64.html#gac9d935df51ae2c9cb7c4807c4ef3ddca',1,'cutest.h']]], + ['assert_5flt_5fint8_118',['ASSERT_LT_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga368c842be7f3fcc3081af854d87686d4',1,'cutest.h']]], + ['assert_5flt_5fintptr_119',['ASSERT_LT_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#ga33e1d48b54ef225dedf2340a3f29922f',1,'cutest.h']]], + ['assert_5flt_5flong_120',['ASSERT_LT_LONG',['../group__TEST__ASSERTION__C89__LONG.html#ga7e6a5a8d5597afa453fc936a98c48ce7',1,'cutest.h']]], + ['assert_5flt_5flonglong_121',['ASSERT_LT_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#gae6a2c47becbc02a43485703c6c6265d1',1,'cutest.h']]], + ['assert_5flt_5fptr_122',['ASSERT_LT_PTR',['../group__TEST__ASSERTION__C89__PTR.html#ga2440793a866c6cc0a8ddabac0f7397c6',1,'cutest.h']]], + ['assert_5flt_5fptrdiff_123',['ASSERT_LT_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#ga8b87c905be8d2d99447076d6d4dcb01f',1,'cutest.h']]], + ['assert_5flt_5fshort_124',['ASSERT_LT_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#ga2f20ef618b8c74025598b445e2675c73',1,'cutest.h']]], + ['assert_5flt_5fsize_125',['ASSERT_LT_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#gab1fbae9b414a0ab59514ad35d7033e8e',1,'cutest.h']]], + ['assert_5flt_5fuchar_126',['ASSERT_LT_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga0c314d76dc653f46292e6633d55627ff',1,'cutest.h']]], + ['assert_5flt_5fuint_127',['ASSERT_LT_UINT',['../group__TEST__ASSERTION__C89__UINT.html#ga2ad9c498573a42817ed297af029f2896',1,'cutest.h']]], + ['assert_5flt_5fuint16_128',['ASSERT_LT_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#gabb9dd87fa385e4947af582c98e514ef8',1,'cutest.h']]], + ['assert_5flt_5fuint32_129',['ASSERT_LT_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#ga60a38e1664f957cc913f4f1ef2855280',1,'cutest.h']]], + ['assert_5flt_5fuint64_130',['ASSERT_LT_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#ga974f1f232481464f2f2274b76fd5b7ed',1,'cutest.h']]], + ['assert_5flt_5fuint8_131',['ASSERT_LT_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#ga132596e386e185aff33cb64bd5bde088',1,'cutest.h']]], + ['assert_5flt_5fuintptr_132',['ASSERT_LT_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#ga0a90fbcdca9d48d7aa7de3fa4dd65748',1,'cutest.h']]], + ['assert_5flt_5fulong_133',['ASSERT_LT_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#gadf477662adf7d4ba438369cd47cb9d67',1,'cutest.h']]], + ['assert_5flt_5fulonglong_134',['ASSERT_LT_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#gab2fa067fa63cae555dc68da2de385b9e',1,'cutest.h']]], + ['assert_5flt_5fushort_135',['ASSERT_LT_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#gac7bfc10f4ddce619577ff50fa44a267f',1,'cutest.h']]], + ['assert_5fne_5fchar_136',['ASSERT_NE_CHAR',['../group__TEST__ASSERTION__C89__CHAR.html#gac0190044e2845928566fbb52be78370a',1,'cutest.h']]], + ['assert_5fne_5fdchar_137',['ASSERT_NE_DCHAR',['../group__TEST__ASSERTION__C89__DCHAR.html#ga162896fca9ea7e6599dfac15cd9fb246',1,'cutest.h']]], + ['assert_5fne_5fdouble_138',['ASSERT_NE_DOUBLE',['../group__TEST__ASSERTION__C89__DOUBLE.html#ga24b7526c5adde11cca7566e798eec989',1,'cutest.h']]], + ['assert_5fne_5ffloat_139',['ASSERT_NE_FLOAT',['../group__TEST__ASSERTION__C89__FLOAT.html#ga42d69efefb68acdb5bce3dccec4d8955',1,'cutest.h']]], + ['assert_5fne_5fint_140',['ASSERT_NE_INT',['../group__TEST__ASSERTION__C89__INT.html#ga295a890a62535abaf81bd967cf7bf990',1,'cutest.h']]], + ['assert_5fne_5fint16_141',['ASSERT_NE_INT16',['../group__TEST__ASSERTION__C99__INT16.html#gad956dc677bca82b8550e4f6d9c0af5d5',1,'cutest.h']]], + ['assert_5fne_5fint32_142',['ASSERT_NE_INT32',['../group__TEST__ASSERTION__C99__INT32.html#ga706c6538fe3693df977e95958ae38a41',1,'cutest.h']]], + ['assert_5fne_5fint64_143',['ASSERT_NE_INT64',['../group__TEST__ASSERTION__C99__INT64.html#gae7d158708de8c49d6c446ffb65d2e64c',1,'cutest.h']]], + ['assert_5fne_5fint8_144',['ASSERT_NE_INT8',['../group__TEST__ASSERTION__C99__INT8.html#ga216d5fbdf919e3c97a0e95b4383b4fbb',1,'cutest.h']]], + ['assert_5fne_5fintptr_145',['ASSERT_NE_INTPTR',['../group__TEST__ASSERTION__C99__INTPTR.html#ga5280c05b9355c44933f8327336096eaa',1,'cutest.h']]], + ['assert_5fne_5flong_146',['ASSERT_NE_LONG',['../group__TEST__ASSERTION__C89__LONG.html#gae2c3c8f431131b1ff02c8b92234788fc',1,'cutest.h']]], + ['assert_5fne_5flonglong_147',['ASSERT_NE_LONGLONG',['../group__TEST__ASSERTION__C99__LONGLONG.html#gaf23562a67c62d0371fd69c5ae3030248',1,'cutest.h']]], + ['assert_5fne_5fptr_148',['ASSERT_NE_PTR',['../group__TEST__ASSERTION__C89__PTR.html#gab7fc4346e2bef7569bd8512975654fda',1,'cutest.h']]], + ['assert_5fne_5fptrdiff_149',['ASSERT_NE_PTRDIFF',['../group__TEST__ASSERTION__C99__PTRDIFF.html#ga0e64badd193ddbbd02a8dabe94d17e6d',1,'cutest.h']]], + ['assert_5fne_5fshort_150',['ASSERT_NE_SHORT',['../group__TEST__ASSERTION__C89__SHORT.html#ga4b4c42dc5046760bedead101210d6b9f',1,'cutest.h']]], + ['assert_5fne_5fsize_151',['ASSERT_NE_SIZE',['../group__TEST__ASSERTION__C99__SIZE.html#gaa19694ad3b0c2b4943aaec3f087a0993',1,'cutest.h']]], + ['assert_5fne_5fstr_152',['ASSERT_NE_STR',['../group__TEST__ASSERTION__C89__STR.html#ga26aded1f804f203d209583d561e670e6',1,'cutest.h']]], + ['assert_5fne_5fuchar_153',['ASSERT_NE_UCHAR',['../group__TEST__ASSERTION__C89__UCHAR.html#ga720e7ca030acd20644669395531ffe0b',1,'cutest.h']]], + ['assert_5fne_5fuint_154',['ASSERT_NE_UINT',['../group__TEST__ASSERTION__C89__UINT.html#ga66111c2726120ee052ccd28935fadb62',1,'cutest.h']]], + ['assert_5fne_5fuint16_155',['ASSERT_NE_UINT16',['../group__TEST__ASSERTION__C99__UINT16.html#ga6b8fe9830899581b39e91af63f2debe7',1,'cutest.h']]], + ['assert_5fne_5fuint32_156',['ASSERT_NE_UINT32',['../group__TEST__ASSERTION__C99__UINT32.html#gad2ca6f079bb4c1f6e9d23e8bd41726c7',1,'cutest.h']]], + ['assert_5fne_5fuint64_157',['ASSERT_NE_UINT64',['../group__TEST__ASSERTION__C99__UINT64.html#ga5c9c65b487f96014ae884748c57d408f',1,'cutest.h']]], + ['assert_5fne_5fuint8_158',['ASSERT_NE_UINT8',['../group__TEST__ASSERTION__C99__UINT8.html#ga8d0919935d7f2f75f5f9f498adc730dc',1,'cutest.h']]], + ['assert_5fne_5fuintptr_159',['ASSERT_NE_UINTPTR',['../group__TEST__ASSERTION__C99__UINTPTR.html#gac97b2b7385009404ecafbf79133bc3a5',1,'cutest.h']]], + ['assert_5fne_5fulong_160',['ASSERT_NE_ULONG',['../group__TEST__ASSERTION__C89__ULONG.html#ga2dec6dbf5284659c8afb55df7e73d282',1,'cutest.h']]], + ['assert_5fne_5fulonglong_161',['ASSERT_NE_ULONGLONG',['../group__TEST__ASSERTION__C99__ULONGLONG.html#gafeda3486e47756df9e2d0c04cb9524d8',1,'cutest.h']]], + ['assert_5fne_5fushort_162',['ASSERT_NE_USHORT',['../group__TEST__ASSERTION__C89__USHORT.html#ga88b55d8eea3bb390e2ad63bccc3aa569',1,'cutest.h']]], + ['assert_5ftemplate_163',['ASSERT_TEMPLATE',['../group__TEST__CUSTOM__TYPE.html#ga92ca4696dab06a5102f29d080c23bde7',1,'cutest.h']]], + ['assertion_164',['Assertion',['../group__TEST__ASSERTION.html',1,'']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 00000000..783f24ee --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['before_5fall_5ftest_0',['before_all_test',['../structcutest__hook__t.html#ad11032f5974a0ec1a836c6f756a77dc3',1,'cutest_hook_t']]], + ['before_5fsetup_1',['before_setup',['../structcutest__hook__t.html#a0bea2a88fdf26ac296d2b5acbd67b138',1,'cutest_hook_t']]], + ['before_5fteardown_2',['before_teardown',['../structcutest__hook__t.html#afeea1a44da209a47f7903a33b2f9e039',1,'cutest_hook_t']]], + ['before_5ftest_3',['before_test',['../structcutest__hook__t.html#a3aedc58e87fd84929777904454c54867',1,'cutest_hook_t']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 00000000..accba03c --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['c89_20assertion_0',['C89 Assertion',['../group__TEST__ASSERTION__C89.html',1,'']]], + ['c99_20assertion_1',['C99 Assertion',['../group__TEST__ASSERTION__C99.html',1,'']]], + ['char_2',['char',['../group__TEST__ASSERTION__C89__CHAR.html',1,'']]], + ['clock_5fgettime_28_29_3',['clock_gettime()',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html',1,'']]], + ['const_20char_2a_4',['const char*',['../group__TEST__ASSERTION__C89__STR.html',1,'']]], + ['const_20void_2a_5',['const void*',['../group__TEST__ASSERTION__C89__PTR.html',1,'']]], + ['cunittest_6',['CUnitTest',['../index.html',1,'']]], + ['custom_20type_20assertion_20support_7',['Custom type assertion support',['../group__TEST__CUSTOM__TYPE.html',1,'']]], + ['cutest_2eh_8',['cutest.h',['../cutest_8h.html',1,'']]], + ['cutest_5fcolor_5fdefault_9',['CUTEST_COLOR_DEFAULT',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5af940b3892295db55283cf41f48c12eae',1,'cutest.h']]], + ['cutest_5fcolor_5fgreen_10',['CUTEST_COLOR_GREEN',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1c8b09131a6368c1eb4227d220540b62',1,'cutest.h']]], + ['cutest_5fcolor_5fred_11',['CUTEST_COLOR_RED',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1208fcc6dddc82fabf31735a12d98f68',1,'cutest.h']]], + ['cutest_5fcolor_5fyellow_12',['CUTEST_COLOR_YELLOW',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5ab1b815014a22539750632e9b1db6cfc3',1,'cutest.h']]], + ['cutest_5fget_5fcurrent_5ffixture_13',['cutest_get_current_fixture',['../group__TEST__RUN.html#ga7636bc77112126ea53aba25a3b757645',1,'cutest.h']]], + ['cutest_5fget_5fcurrent_5ftest_14',['cutest_get_current_test',['../group__TEST__RUN.html#gaf6e4d455b57144a4740fea63e0c4d413',1,'cutest.h']]], + ['cutest_5fhook_5ft_15',['cutest_hook_t',['../structcutest__hook__t.html',1,'']]], + ['cutest_5fporting_5fabort_16',['cutest_porting_abort',['../group__TEST__PORTING__SYSTEM__API__ABORT.html#ga108296e67136ae44b4fc30d459b8f05b',1,'cutest.h']]], + ['cutest_5fporting_5fclock_5fgettime_17',['cutest_porting_clock_gettime',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ga8167c2a3896fdad9761be02ba482a48c',1,'cutest.h']]], + ['cutest_5fporting_5fcolor_5ft_18',['cutest_porting_color_t',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga5d1a457b08b19877db1868e2148d17d5',1,'cutest.h']]], + ['cutest_5fporting_5fcompare_5ffloating_5fnumber_19',['cutest_porting_compare_floating_number',['../group__TEST__FLOATING__NUMBER.html#gaf2a94c291e6f3b9a86df24d8b768bcda',1,'cutest.h']]], + ['cutest_5fporting_5fcvfprintf_20',['cutest_porting_cvfprintf',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga1d13aa9e1315a076a42136933e710320',1,'cutest.h']]], + ['cutest_5fporting_5fgettid_21',['cutest_porting_gettid',['../group__TEST__PORTING__SYSTEM__API__GETTID.html#gaa01eddddeefc427e31411d493d1d8f91',1,'cutest.h']]], + ['cutest_5fporting_5fjmpbuf_5ft_22',['cutest_porting_jmpbuf_t',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html#gae6162236e92ca8c6991397ed0fd9a3cc',1,'cutest.h']]], + ['cutest_5fporting_5flongjmp_5ffn_23',['cutest_porting_longjmp_fn',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga0c294a17e3d1c9b27dc1d01283dfc986',1,'cutest.h']]], + ['cutest_5fporting_5fsetjmp_24',['cutest_porting_setjmp',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html#gaec860c1f1f9652d824b13abc8046d1cc',1,'cutest.h']]], + ['cutest_5fporting_5fsetjmp_5ffn_25',['cutest_porting_setjmp_fn',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html#ga5da79e2d6db714f235703020ebc75534',1,'cutest.h']]], + ['cutest_5fporting_5ftimespec_5ft_26',['cutest_porting_timespec_t',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#structcutest__porting__timespec__t',1,'']]], + ['cutest_5frun_5ftests_27',['cutest_run_tests',['../group__TEST__RUN.html#ga68b356be458390a148ad1761e4b9355c',1,'cutest.h']]], + ['cutest_5fskip_5ftest_28',['cutest_skip_test',['../group__TEST__RUN.html#gaf7cd1ae6ee5222ec410d37377f9f79f6',1,'cutest.h']]], + ['cutest_5fversion_5fmajor_29',['CUTEST_VERSION_MAJOR',['../cutest_8h.html#a90efd23c3749664e7802aea66f6259f8',1,'cutest.h']]], + ['cutest_5fversion_5fminor_30',['CUTEST_VERSION_MINOR',['../cutest_8h.html#ac4bb316988e289b6949511b4c1f9327a',1,'cutest.h']]], + ['cutest_5fversion_5fpatch_31',['CUTEST_VERSION_PATCH',['../cutest_8h.html#a7de8c4408e84461c4f93a3368bf1047a',1,'cutest.h']]], + ['cutest_5fversion_5fprerel_32',['CUTEST_VERSION_PREREL',['../cutest_8h.html#a9a70533ef1f680682a7fe6bbf135c7a5',1,'cutest.h']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 00000000..65ebd0fd --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['define_20test_0',['Define Test',['../group__TEST__DEFINE.html',1,'']]], + ['double_1',['double',['../group__TEST__ASSERTION__C89__DOUBLE.html',1,'']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 00000000..d413c714 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['faq_0',['FAQ',['../FAQ.html',1,'']]], + ['float_1',['float',['../group__TEST__ASSERTION__C89__FLOAT.html',1,'']]], + ['floating_2dpoint_20numbers_2',['Floating-Point Numbers',['../group__TEST__FLOATING__NUMBER.html',1,'']]], + ['fprintf_28_29_3',['fprintf()',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html',1,'']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 00000000..0571156d --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gettid_28_29_0',['gettid()',['../group__TEST__PORTING__SYSTEM__API__GETTID.html',1,'']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 00000000..66ba8a02 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['int_0',['int',['../group__TEST__ASSERTION__C89__INT.html',1,'']]], + ['int16_5ft_1',['int16_t',['../group__TEST__ASSERTION__C99__INT16.html',1,'']]], + ['int32_5ft_2',['int32_t',['../group__TEST__ASSERTION__C99__INT32.html',1,'']]], + ['int64_5ft_3',['int64_t',['../group__TEST__ASSERTION__C99__INT64.html',1,'']]], + ['int8_5ft_4',['int8_t',['../group__TEST__ASSERTION__C99__INT8.html',1,'']]], + ['inttpr_5ft_5',['inttpr_t',['../group__TEST__ASSERTION__C99__INTPTR.html',1,'']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 00000000..996421d9 --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['long_0',['long',['../group__TEST__ASSERTION__C89__LONG.html',1,'']]], + ['long_20long_1',['long long',['../group__TEST__ASSERTION__C99__LONGLONG.html',1,'']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 00000000..f1ae5df3 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['manually_20registr_20test_0',['Manually registr test',['../group__TEST__MANUAL__REGISTRATION.html',1,'']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 00000000..0e98bb21 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['porting_0',['Porting',['../group__TEST__PORTING.html',1,'']]], + ['ptrdiff_5ft_1',['ptrdiff_t',['../group__TEST__ASSERTION__C99__PTRDIFF.html',1,'']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 00000000..7c001db6 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['run_0',['Run',['../group__TEST__RUN.html',1,'']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 00000000..e7b09028 --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['setjmp_28_29_0',['setjmp()',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html',1,'']]], + ['short_1',['short',['../group__TEST__ASSERTION__C89__SHORT.html',1,'']]], + ['signed_20char_2',['signed char',['../group__TEST__ASSERTION__C89__DCHAR.html',1,'']]], + ['size_5ft_3',['size_t',['../group__TEST__ASSERTION__C99__SIZE.html',1,'']]], + ['system_20api_4',['System API',['../group__TEST__PORTING__SYSTEM__API.html',1,'']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 00000000..2e93e862 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['test_0',['TEST',['../group__TEST__DEFINE.html#gac93f21795a575d224cfe3e3b66f48acf',1,'cutest.h']]], + ['test_5fc_5fapi_1',['TEST_C_API',['../cutest_8h.html#ac3c2c470a197a8a315fe87afafaa2887',1,'cutest.h']]], + ['test_5ff_2',['TEST_F',['../group__TEST__DEFINE.html#ga575a559e1183281e6639b661b177e247',1,'cutest.h']]], + ['test_5ffixture_5fsetup_3',['TEST_FIXTURE_SETUP',['../group__TEST__DEFINE.html#gadb2fe247b7b65cb1fb5a6dd1b7b0124c',1,'cutest.h']]], + ['test_5ffixture_5fteardown_4',['TEST_FIXTURE_TEARDOWN',['../group__TEST__DEFINE.html#ga62c5baa0dd19af30aa89f4c709012744',1,'cutest.h']]], + ['test_5fget_5fparam_5',['TEST_GET_PARAM',['../group__TEST__DEFINE.html#gaa478699429dd8fe58d204887bdc59bc9',1,'cutest.h']]], + ['test_5finitializer_6',['TEST_INITIALIZER',['../group__TEST__MANUAL__REGISTRATION.html#gaf8423fba14309d2ec748e8fea8140cd0',1,'cutest.h']]], + ['test_5fmanual_5fdeclare_5ftest_5finterface_7',['TEST_MANUAL_DECLARE_TEST_INTERFACE',['../group__TEST__MANUAL__REGISTRATION.html#ga088b89f4f8b396a46ebd37cd5232c2d9',1,'cutest.h']]], + ['test_5fmanual_5fregister_5ftest_5finterface_8',['TEST_MANUAL_REGISTER_TEST_INTERFACE',['../group__TEST__MANUAL__REGISTRATION.html#ga1b927d6ac5457b8dd2388996370304b2',1,'cutest.h']]], + ['test_5fneed_5fmanual_5fregistration_9',['TEST_NEED_MANUAL_REGISTRATION',['../group__TEST__MANUAL__REGISTRATION.html#gab0041e70abff2e3b9239e783785b2260',1,'cutest.h']]], + ['test_5fp_10',['TEST_P',['../group__TEST__DEFINE.html#ga3fe7e1133df7c29b10ae1975ba63c67d',1,'cutest.h']]], + ['test_5fparameterized_5fdefine_11',['TEST_PARAMETERIZED_DEFINE',['../group__TEST__DEFINE.html#gabe6f4afe8aa2d3cef6ee4a8df9d48a0e',1,'cutest.h']]], + ['test_5fparameterized_5fsuppress_5funused_12',['TEST_PARAMETERIZED_SUPPRESS_UNUSED',['../group__TEST__DEFINE.html#gab26fb171905a6e620f1c091c9e0a022e',1,'cutest.h']]], + ['test_5fregister_5ftype_5fonce_13',['TEST_REGISTER_TYPE_ONCE',['../group__TEST__CUSTOM__TYPE.html#ga656b672186d93ed68416528c22251bbc',1,'cutest.h']]], + ['tv_5fnsec_14',['tv_nsec',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#a87f023ba4df946995ed7434144501c4a',1,'cutest_porting_timespec_t']]], + ['tv_5fsec_15',['tv_sec',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ad7ba4ed1f2602412d3b21ab19720fbb2',1,'cutest_porting_timespec_t']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 00000000..65236ad8 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['uint16_5ft_0',['uint16_t',['../group__TEST__ASSERTION__C99__UINT16.html',1,'']]], + ['uint32_5ft_1',['uint32_t',['../group__TEST__ASSERTION__C99__UINT32.html',1,'']]], + ['uint64_5ft_2',['uint64_t',['../group__TEST__ASSERTION__C99__UINT64.html',1,'']]], + ['uint8_5ft_3',['uint8_t',['../group__TEST__ASSERTION__C99__UINT8.html',1,'']]], + ['uinttpr_5ft_4',['uinttpr_t',['../group__TEST__ASSERTION__C99__UINTPTR.html',1,'']]], + ['unsigned_20char_5',['unsigned char',['../group__TEST__ASSERTION__C89__UCHAR.html',1,'']]], + ['unsigned_20int_6',['unsigned int',['../group__TEST__ASSERTION__C89__UINT.html',1,'']]], + ['unsigned_20long_7',['unsigned long',['../group__TEST__ASSERTION__C89__ULONG.html',1,'']]], + ['unsigned_20long_20long_8',['unsigned long long',['../group__TEST__ASSERTION__C99__ULONGLONG.html',1,'']]], + ['unsigned_20short_9',['unsigned short',['../group__TEST__ASSERTION__C89__USHORT.html',1,'']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 00000000..0340368d --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['cutest_5fhook_5ft_0',['cutest_hook_t',['../structcutest__hook__t.html',1,'']]], + ['cutest_5fporting_5ftimespec_5ft_1',['cutest_porting_timespec_t',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#structcutest__porting__timespec__t',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 00000000..a933eea1 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 00000000..abdd545a --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['cutest_5fversion_5fmajor_0',['CUTEST_VERSION_MAJOR',['../cutest_8h.html#a90efd23c3749664e7802aea66f6259f8',1,'cutest.h']]], + ['cutest_5fversion_5fminor_1',['CUTEST_VERSION_MINOR',['../cutest_8h.html#ac4bb316988e289b6949511b4c1f9327a',1,'cutest.h']]], + ['cutest_5fversion_5fpatch_2',['CUTEST_VERSION_PATCH',['../cutest_8h.html#a7de8c4408e84461c4f93a3368bf1047a',1,'cutest.h']]], + ['cutest_5fversion_5fprerel_3',['CUTEST_VERSION_PREREL',['../cutest_8h.html#a9a70533ef1f680682a7fe6bbf135c7a5',1,'cutest.h']]] +]; diff --git a/search/defines_1.js b/search/defines_1.js new file mode 100644 index 00000000..3ff6681a --- /dev/null +++ b/search/defines_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['test_5fc_5fapi_0',['TEST_C_API',['../cutest_8h.html#ac3c2c470a197a8a315fe87afafaa2887',1,'cutest.h']]] +]; diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 00000000..d0de3e75 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cutest_5fporting_5fcolor_5ft_0',['cutest_porting_color_t',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga5d1a457b08b19877db1868e2148d17d5',1,'cutest.h']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 00000000..c6d10854 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['cutest_5fcolor_5fdefault_0',['CUTEST_COLOR_DEFAULT',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5af940b3892295db55283cf41f48c12eae',1,'cutest.h']]], + ['cutest_5fcolor_5fgreen_1',['CUTEST_COLOR_GREEN',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1c8b09131a6368c1eb4227d220540b62',1,'cutest.h']]], + ['cutest_5fcolor_5fred_2',['CUTEST_COLOR_RED',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5a1208fcc6dddc82fabf31735a12d98f68',1,'cutest.h']]], + ['cutest_5fcolor_5fyellow_3',['CUTEST_COLOR_YELLOW',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#gga5d1a457b08b19877db1868e2148d17d5ab1b815014a22539750632e9b1db6cfc3',1,'cutest.h']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 00000000..b15e814c --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cutest_2eh_0',['cutest.h',['../cutest_8h.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 00000000..a193cb41 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['cutest_5fget_5fcurrent_5ffixture_0',['cutest_get_current_fixture',['../group__TEST__RUN.html#ga7636bc77112126ea53aba25a3b757645',1,'cutest.h']]], + ['cutest_5fget_5fcurrent_5ftest_1',['cutest_get_current_test',['../group__TEST__RUN.html#gaf6e4d455b57144a4740fea63e0c4d413',1,'cutest.h']]], + ['cutest_5fporting_5fabort_2',['cutest_porting_abort',['../group__TEST__PORTING__SYSTEM__API__ABORT.html#ga108296e67136ae44b4fc30d459b8f05b',1,'cutest.h']]], + ['cutest_5fporting_5fclock_5fgettime_3',['cutest_porting_clock_gettime',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html#ga8167c2a3896fdad9761be02ba482a48c',1,'cutest.h']]], + ['cutest_5fporting_5fcompare_5ffloating_5fnumber_4',['cutest_porting_compare_floating_number',['../group__TEST__FLOATING__NUMBER.html#gaf2a94c291e6f3b9a86df24d8b768bcda',1,'cutest.h']]], + ['cutest_5fporting_5fcvfprintf_5',['cutest_porting_cvfprintf',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html#ga1d13aa9e1315a076a42136933e710320',1,'cutest.h']]], + ['cutest_5fporting_5fgettid_6',['cutest_porting_gettid',['../group__TEST__PORTING__SYSTEM__API__GETTID.html#gaa01eddddeefc427e31411d493d1d8f91',1,'cutest.h']]], + ['cutest_5fporting_5fsetjmp_7',['cutest_porting_setjmp',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html#gaec860c1f1f9652d824b13abc8046d1cc',1,'cutest.h']]], + ['cutest_5frun_5ftests_8',['cutest_run_tests',['../group__TEST__RUN.html#ga68b356be458390a148ad1761e4b9355c',1,'cutest.h']]], + ['cutest_5fskip_5ftest_9',['cutest_skip_test',['../group__TEST__RUN.html#gaf7cd1ae6ee5222ec410d37377f9f79f6',1,'cutest.h']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 00000000..74f90f50 --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['abort_28_29_0',['abort()',['../group__TEST__PORTING__SYSTEM__API__ABORT.html',1,'']]], + ['assertion_1',['Assertion',['../group__TEST__ASSERTION.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 00000000..7026a9f8 --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['c89_20assertion_0',['C89 Assertion',['../group__TEST__ASSERTION__C89.html',1,'']]], + ['c99_20assertion_1',['C99 Assertion',['../group__TEST__ASSERTION__C99.html',1,'']]], + ['char_2',['char',['../group__TEST__ASSERTION__C89__CHAR.html',1,'']]], + ['clock_5fgettime_28_29_3',['clock_gettime()',['../group__TEST__PORTING__SYSTEM__API__CLOCK__GETTIME.html',1,'']]], + ['const_20char_2a_4',['const char*',['../group__TEST__ASSERTION__C89__STR.html',1,'']]], + ['const_20void_2a_5',['const void*',['../group__TEST__ASSERTION__C89__PTR.html',1,'']]], + ['custom_20type_20assertion_20support_6',['Custom type assertion support',['../group__TEST__CUSTOM__TYPE.html',1,'']]] +]; diff --git a/search/groups_2.js b/search/groups_2.js new file mode 100644 index 00000000..65ebd0fd --- /dev/null +++ b/search/groups_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['define_20test_0',['Define Test',['../group__TEST__DEFINE.html',1,'']]], + ['double_1',['double',['../group__TEST__ASSERTION__C89__DOUBLE.html',1,'']]] +]; diff --git a/search/groups_3.js b/search/groups_3.js new file mode 100644 index 00000000..b6efeddb --- /dev/null +++ b/search/groups_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['float_0',['float',['../group__TEST__ASSERTION__C89__FLOAT.html',1,'']]], + ['floating_2dpoint_20numbers_1',['Floating-Point Numbers',['../group__TEST__FLOATING__NUMBER.html',1,'']]], + ['fprintf_28_29_2',['fprintf()',['../group__TEST__PORTING__SYSTEM__API__FPRINTF.html',1,'']]] +]; diff --git a/search/groups_4.js b/search/groups_4.js new file mode 100644 index 00000000..0571156d --- /dev/null +++ b/search/groups_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gettid_28_29_0',['gettid()',['../group__TEST__PORTING__SYSTEM__API__GETTID.html',1,'']]] +]; diff --git a/search/groups_5.js b/search/groups_5.js new file mode 100644 index 00000000..66ba8a02 --- /dev/null +++ b/search/groups_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['int_0',['int',['../group__TEST__ASSERTION__C89__INT.html',1,'']]], + ['int16_5ft_1',['int16_t',['../group__TEST__ASSERTION__C99__INT16.html',1,'']]], + ['int32_5ft_2',['int32_t',['../group__TEST__ASSERTION__C99__INT32.html',1,'']]], + ['int64_5ft_3',['int64_t',['../group__TEST__ASSERTION__C99__INT64.html',1,'']]], + ['int8_5ft_4',['int8_t',['../group__TEST__ASSERTION__C99__INT8.html',1,'']]], + ['inttpr_5ft_5',['inttpr_t',['../group__TEST__ASSERTION__C99__INTPTR.html',1,'']]] +]; diff --git a/search/groups_6.js b/search/groups_6.js new file mode 100644 index 00000000..996421d9 --- /dev/null +++ b/search/groups_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['long_0',['long',['../group__TEST__ASSERTION__C89__LONG.html',1,'']]], + ['long_20long_1',['long long',['../group__TEST__ASSERTION__C99__LONGLONG.html',1,'']]] +]; diff --git a/search/groups_7.js b/search/groups_7.js new file mode 100644 index 00000000..f1ae5df3 --- /dev/null +++ b/search/groups_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['manually_20registr_20test_0',['Manually registr test',['../group__TEST__MANUAL__REGISTRATION.html',1,'']]] +]; diff --git a/search/groups_8.js b/search/groups_8.js new file mode 100644 index 00000000..0e98bb21 --- /dev/null +++ b/search/groups_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['porting_0',['Porting',['../group__TEST__PORTING.html',1,'']]], + ['ptrdiff_5ft_1',['ptrdiff_t',['../group__TEST__ASSERTION__C99__PTRDIFF.html',1,'']]] +]; diff --git a/search/groups_9.js b/search/groups_9.js new file mode 100644 index 00000000..7c001db6 --- /dev/null +++ b/search/groups_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['run_0',['Run',['../group__TEST__RUN.html',1,'']]] +]; diff --git a/search/groups_a.js b/search/groups_a.js new file mode 100644 index 00000000..e7b09028 --- /dev/null +++ b/search/groups_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['setjmp_28_29_0',['setjmp()',['../group__TEST__PORTING__SYSTEM__API__SETJMP.html',1,'']]], + ['short_1',['short',['../group__TEST__ASSERTION__C89__SHORT.html',1,'']]], + ['signed_20char_2',['signed char',['../group__TEST__ASSERTION__C89__DCHAR.html',1,'']]], + ['size_5ft_3',['size_t',['../group__TEST__ASSERTION__C99__SIZE.html',1,'']]], + ['system_20api_4',['System API',['../group__TEST__PORTING__SYSTEM__API.html',1,'']]] +]; diff --git a/search/groups_b.js b/search/groups_b.js new file mode 100644 index 00000000..65236ad8 --- /dev/null +++ b/search/groups_b.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['uint16_5ft_0',['uint16_t',['../group__TEST__ASSERTION__C99__UINT16.html',1,'']]], + ['uint32_5ft_1',['uint32_t',['../group__TEST__ASSERTION__C99__UINT32.html',1,'']]], + ['uint64_5ft_2',['uint64_t',['../group__TEST__ASSERTION__C99__UINT64.html',1,'']]], + ['uint8_5ft_3',['uint8_t',['../group__TEST__ASSERTION__C99__UINT8.html',1,'']]], + ['uinttpr_5ft_4',['uinttpr_t',['../group__TEST__ASSERTION__C99__UINTPTR.html',1,'']]], + ['unsigned_20char_5',['unsigned char',['../group__TEST__ASSERTION__C89__UCHAR.html',1,'']]], + ['unsigned_20int_6',['unsigned int',['../group__TEST__ASSERTION__C89__UINT.html',1,'']]], + ['unsigned_20long_7',['unsigned long',['../group__TEST__ASSERTION__C89__ULONG.html',1,'']]], + ['unsigned_20long_20long_8',['unsigned long long',['../group__TEST__ASSERTION__C99__ULONGLONG.html',1,'']]], + ['unsigned_20short_9',['unsigned short',['../group__TEST__ASSERTION__C89__USHORT.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 00000000..9f46b301 --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 00000000..b9a814c7 --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,37 @@ + + + + + + image/svg+xml + + + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 00000000..03626f64 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 00000000..6e720dcc --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 00000000..36f68734 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['cunittest_0',['CUnitTest',['../index.html',1,'']]] +]; diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 00000000..87d706bd --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['faq_0',['FAQ',['../FAQ.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 00000000..19f76f9d --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 00000000..e103a262 --- /dev/null +++ b/search/search.js @@ -0,0 +1,816 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 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. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + searchResults.Search(searchValue); + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e + + + + + + +cutest: cutest_hook_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    cutest +
    +
    UnitTest for C/C++.
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    + +
    cutest_hook_t Struct Reference
    +
    +
    + +

    CUnitTest hook. + More...

    + +

    #include <cutest.h>

    + + + + + + + + + + + + + + + + + + + + + + + + + + +

    +Data Fields

    void(* before_all_test )(int argc, char *argv[])
     Hook before run all tests.
     
    void(* after_all_test )(void)
     Hook after run all tests.
     
    void(* before_setup )(const char *fixture)
     Hook before TEST_FIXTURE_SETUP() is called.
     
    void(* after_setup )(const char *fixture, int ret)
     Hook after TEST_FIXTURE_SETUP() is called.
     
    void(* before_teardown )(const char *fixture)
     Hook before TEST_FIXTURE_TEARDOWN() is called.
     
    void(* after_teardown )(const char *fixture, int ret)
     Hook after TEST_FIXTURE_TEARDOWN() is called.
     
    void(* before_test )(const char *fixture, const char *test_name)
     Hook before TEST_F() is called.
     
    void(* after_test )(const char *fixture, const char *test_name, int ret)
     Hook after TEST_F() is called.
     
    +

    Detailed Description

    +

    CUnitTest hook.

    + +

    Definition at line 1520 of file cutest.h.

    +

    Field Documentation

    + +

    ◆ after_all_test

    + +
    +
    + + + + +
    void(* after_all_test) (void)
    +
    + +

    Hook after run all tests.

    + +

    Definition at line 1532 of file cutest.h.

    + +
    +
    + +

    ◆ after_setup

    + +
    +
    + + + + +
    void(* after_setup) (const char *fixture, int ret)
    +
    + +

    Hook after TEST_FIXTURE_SETUP() is called.

    +
    Parameters
    + + + +
    [in]fixtureFixture name
    [in]retzero: TEST_FIXTURE_SETUP() success, otherwise failure
    +
    +
    + +

    Definition at line 1545 of file cutest.h.

    + +
    +
    + +

    ◆ after_teardown

    + +
    +
    + + + + +
    void(* after_teardown) (const char *fixture, int ret)
    +
    + +

    Hook after TEST_FIXTURE_TEARDOWN() is called.

    +
    Parameters
    + + + +
    [in]fixtureFixture name
    [in]retzero: TEST_FIXTURE_TEARDOWN() success, otherwise failure
    +
    +
    + +

    Definition at line 1558 of file cutest.h.

    + +
    +
    + +

    ◆ after_test

    + +
    +
    + + + + +
    void(* after_test) (const char *fixture, const char *test_name, int ret)
    +
    + +

    Hook after TEST_F() is called.

    +
    Parameters
    + + + + +
    [in]fixtureFixture name
    [in]test_nameTest name
    [in]retzero: TEST_F() success, otherwise failure
    +
    +
    + +

    Definition at line 1573 of file cutest.h.

    + +
    +
    + +

    ◆ before_all_test

    + +
    +
    + + + + +
    void(* before_all_test) (int argc, char *argv[])
    +
    + +

    Hook before run all tests.

    +
    Parameters
    + + + +
    [in]argcThe number of arguments
    [in]argvArgument list
    +
    +
    + +

    Definition at line 1527 of file cutest.h.

    + +
    +
    + +

    ◆ before_setup

    + +
    +
    + + + + +
    void(* before_setup) (const char *fixture)
    +
    + +

    Hook before TEST_FIXTURE_SETUP() is called.

    +
    Parameters
    + + +
    [in]fixtureFixture name
    +
    +
    + +

    Definition at line 1538 of file cutest.h.

    + +
    +
    + +

    ◆ before_teardown

    + +
    +
    + + + + +
    void(* before_teardown) (const char *fixture)
    +
    + +

    Hook before TEST_FIXTURE_TEARDOWN() is called.

    +
    Parameters
    + + +
    [in]fixtureFixture name
    +
    +
    + +

    Definition at line 1551 of file cutest.h.

    + +
    +
    + +

    ◆ before_test

    + +
    +
    + + + + +
    void(* before_test) (const char *fixture, const char *test_name)
    +
    + +

    Hook before TEST_F() is called.

    +
    Parameters
    + + + +
    [in]fixtureFixture name
    [in]test_nameTest name
    +
    +
    + +

    Definition at line 1565 of file cutest.h.

    + +
    +
    +
    The documentation for this struct was generated from the following file: +
    +
    + + + + diff --git a/structcutest__hook__t.js b/structcutest__hook__t.js new file mode 100644 index 00000000..2c8da096 --- /dev/null +++ b/structcutest__hook__t.js @@ -0,0 +1,11 @@ +var structcutest__hook__t = +[ + [ "after_all_test", "structcutest__hook__t.html#af35a8f1596015e2a5eb4e7d1627cbe90", null ], + [ "after_setup", "structcutest__hook__t.html#a65cd1148edd36e6b5b263627a3a13e22", null ], + [ "after_teardown", "structcutest__hook__t.html#aecdd2df4de12c5d92c5d90717767a002", null ], + [ "after_test", "structcutest__hook__t.html#aade7270ed90b669e9e896328e5ccb21b", null ], + [ "before_all_test", "structcutest__hook__t.html#ad11032f5974a0ec1a836c6f756a77dc3", null ], + [ "before_setup", "structcutest__hook__t.html#a0bea2a88fdf26ac296d2b5acbd67b138", null ], + [ "before_teardown", "structcutest__hook__t.html#afeea1a44da209a47f7903a33b2f9e039", null ], + [ "before_test", "structcutest__hook__t.html#a3aedc58e87fd84929777904454c54867", null ] +]; \ No newline at end of file diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 00000000..3b443fc6 Binary files /dev/null and b/sync_off.png differ diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 00000000..e08320fb Binary files /dev/null and b/sync_on.png differ diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 00000000..3b725c41 Binary files /dev/null and b/tab_a.png differ diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 00000000..e34850ac Binary files /dev/null and b/tab_ad.png differ diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 00000000..e2b4a863 Binary files /dev/null and b/tab_b.png differ diff --git a/tab_bd.png b/tab_bd.png new file mode 100644 index 00000000..91c25249 Binary files /dev/null and b/tab_bd.png differ diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 00000000..fd5cb705 Binary files /dev/null and b/tab_h.png differ diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 00000000..2489273d Binary files /dev/null and b/tab_hd.png differ diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 00000000..ab478c95 Binary files /dev/null and b/tab_s.png differ diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 00000000..757a565c Binary files /dev/null and b/tab_sd.png differ diff --git a/tabs.css b/tabs.css new file mode 100644 index 00000000..71c8a470 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file diff --git a/test_p_8c-example.html b/test_p_8c-example.html new file mode 100644 index 00000000..424e5868 --- /dev/null +++ b/test_p_8c-example.html @@ -0,0 +1,204 @@ + + + + + + + +cutest: test_p.c + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    cutest +
    +
    UnitTest for C/C++.
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    test_p.c
    +
    +
    +

    A example for parameterized test TEST_P().

    +
    #include "cutest.h"
    +
    + +
    {
    +
    }
    +
    + +
    {
    +
    }
    +
    +
    // example.test_p_simple
    +
    +
    /*
    +
    * Define parameterized test data for `example.test_p_simple`
    +
    * The test data is typeof `int` and is defined as { 1, 2, 3 }
    +
    */
    +
    TEST_PARAMETERIZED_DEFINE(example, test_p_simple, int, 1, 2, 3);
    +
    +
    /*
    +
    * `TEST_P` declare a parameterized test.
    +
    *
    +
    * The parameterized data is defined by `TEST_PARAMETERIZED_DEFINE()`, and you
    +
    * can get the data by `TEST_GET_PARAM()`. The parameterized test will be called
    +
    * many times with a specific given data.
    +
    *
    +
    * For example, if `TEST_PARAMETERIZED_DEFINE()` define test data as { 1, 2, 3 },
    +
    * this parameterized test will be run three round. The first round
    +
    * `TEST_GET_PARAM()` return value of `1`, the second round `TEST_GET_PARAM()`
    +
    * return value of `2`, and so on.
    +
    *
    +
    * It does not mater how many times you call `TEST_GET_PARAM()`, as it will
    +
    * always return the same resule.
    +
    */
    +
    TEST_P(example, test_p_simple)
    +
    {
    +
    /* We can get parameterized data by `TEST_GET_PARAM()`. */
    +
    int data = TEST_GET_PARAM();
    +
    +
    /* You will always get the same result from `TEST_GET_PARAM()` */
    + +
    }
    +
    +
    // example.test_p_structure
    +
    +
    typedef struct test_p_2_data
    +
    {
    +
    int a;
    +
    int b;
    +
    int c;
    +
    } test_p_2_data_t;
    +
    +
    /*
    +
    * Let's try more complex code.
    +
    *
    +
    * The `TEST_PARAMETERIZED_DEFINE()` macro support custom data structure like
    +
    * `struct` or `enum`, you can define any type you want.
    +
    */
    +
    TEST_PARAMETERIZED_DEFINE(example, test_p_structure, test_p_2_data_t, { 1, 2, 3 }, { 2, 3, 5 });
    +
    +
    TEST_P(example, test_p_structure)
    +
    {
    +
    /*
    +
    * The `TEST_GET_PARAM()` is strong typed, it returns the same type as you
    +
    * define.
    +
    */
    +
    test_p_2_data_t data = TEST_GET_PARAM();
    +
    +
    /* Let's do summation for test data. */
    +
    ASSERT_EQ_INT(data.a + data.b, data.c);
    +
    }
    +
    +
    // example.test_p_repeat
    +
    +
    /*
    +
    * Of course you may want to use parameterized test just to repeat your test
    +
    * code.
    +
    *
    +
    * In such condition just write some random thing in `TEST_PARAMETERIZED_DEFINE()`,
    +
    * just ensure the number of parameterized test data meet your need.
    +
    */
    +
    TEST_PARAMETERIZED_DEFINE(example, test_p_repeat, int, 0, 0, 0);
    +
    +
    TEST_P(example, test_p_repeat)
    +
    {
    +
    /*
    +
    * We don't call `TEST_GET_PARAM()`, so there might be some warnings during
    +
    * code compile. Use `TEST_PARAMETERIZED_SUPPRESS_UNUSED` to suppress it.
    +
    */
    + +
    }
    + +
    #define ASSERT_EQ_INT(a, b,...)
    Definition: cutest.h:894
    +
    #define TEST_P(fixture, test)
    Parameterized Test.
    Definition: cutest.h:273
    +
    #define TEST_FIXTURE_TEARDOWN(fixture)
    TearDown test suit.
    Definition: cutest.h:196
    +
    #define TEST_GET_PARAM()
    Get parameterized data.
    Definition: cutest.h:206
    +
    #define TEST_PARAMETERIZED_SUPPRESS_UNUSED
    Suppress unused parameter warning if TEST_GET_PARAM() is not used.
    Definition: cutest.h:246
    +
    #define TEST_PARAMETERIZED_DEFINE(fixture, test, TYPE,...)
    Define parameterized data for fixture.
    Definition: cutest.h:218
    +
    #define TEST_FIXTURE_SETUP(fixture)
    Setup test fixture.
    Definition: cutest.h:187
    +
    +
    + + + +