xtest/examples/assertions.c
2022-01-11 20:01:15 +01:00

104 lines
2 KiB
C

#include "xtest.h"
#include "source.h"
#include "examples.h"
static void test_assert() {
int i1 = 1;
int i2 = 1;
int i3 = 2;
double d1 = 1.0;
double d2 = 1.0;
double d3 = 2.0;
char c1 = 'a';
char c2 = 'a';
char c3 = 'b';
unsigned int u1 = 1;
unsigned int u2 = 1;
unsigned int u3 = 2;
xtest_assert(i1 == i2);
xtest_assert(i1 != i3);
xtest_assert(d1 == d2);
xtest_assert(d1 != d3);
xtest_assert(c1 == c2);
xtest_assert(c1 != c3);
xtest_assert(u1 == u2);
xtest_assert(u1 != u3);
xtest_assert(1);
xtest_assert(ret_1());
}
static void test_assert_is() {
int i1 = 1;
int i2 = 1;
int i3 = 2;
double d1 = 1.0;
double d2 = 1.0;
double d3 = 2.0;
char c1 = 'a';
char c2 = 'a';
char c3 = 'b';
unsigned int u1 = 1;
unsigned int u2 = 1;
unsigned int u3 = 2;
_Bool b1 = 0;
_Bool b2 = 0;
_Bool b3 = 1;
xtest_assert_is(i1, i2);
xtest_assert_is_not(i1, i3);
xtest_assert_float_is(d1, d2, 4);
xtest_assert_float_is_not(d1, d3, 4);
xtest_assert_is(c1, c2);
xtest_assert_is_not(c1, c3);
xtest_assert_is(u1, u2);
xtest_assert_is_not(u1, u3);
xtest_assert_is(b1, b2);
xtest_assert_is_not(b1, b3);
}
static void test_assert_str_is() {
const char *s1 = "ret_1";
const char *s2 = "ret_1";
const char *s3 = "bar";
xtest_assert_str_is(s1, s2);
xtest_assert_str_is_not(s1, s3);
}
static void test_assert_mem_is() {
char m1[100];
char m2[100];
for (int i = 0; i < 100; ++i) {
m1[i] = m2[i] = 'a';
}
for (int i = 50; i < 100; ++i) {
m2[i] = 'b';
}
xtest_assert_mem_is(m1, m2, 10);
xtest_assert_mem_is(m1, m2, 50);
xtest_assert_mem_is_not(m1, m2, 60);
xtest_assert_mem_is_not(m1, m2, 100);
}
void example_assertions(void) {
xtest_run(test_assert);
xtest_run(test_assert_is);
xtest_run(test_assert_str_is);
xtest_run(test_assert_mem_is);
}
#ifndef XTEST_ALL_EXAMPLES
XTEST_RUN_MAIN(example_assertions)
#endif //XTEST_ALL_EXAMPLES