154 lines
4.1 KiB
C
154 lines
4.1 KiB
C
/**
|
|
* Copyright (c) 2026 Dominic Masters
|
|
*
|
|
* This software is released under the MIT License.
|
|
* https://opensource.org/licenses/MIT
|
|
*/
|
|
|
|
#include "dusktest.h"
|
|
#include "assert/assert.h"
|
|
|
|
static void test_assertTrueImpl(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when true false statement
|
|
assertTrueImpl(__FILE__, __LINE__, true, "This should not assert");
|
|
|
|
// Should assert when passing false statement
|
|
expect_assert_failure(assertTrueImpl(__FILE__, __LINE__, false, "asserts"));
|
|
}
|
|
|
|
static void test_assertFalseImpl(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when passing false statement
|
|
assertFalseImpl(__FILE__, __LINE__, false, "This should not assert");
|
|
|
|
// Should assert when passing true statement
|
|
expect_assert_failure(assertFalseImpl(__FILE__, __LINE__, true, "asserts"));
|
|
}
|
|
|
|
|
|
static void test_assertUnreachableImpl(void **state) {
|
|
(void)state;
|
|
|
|
// Should always assert false
|
|
expect_assert_failure(assertUnreachableImpl(__FILE__, __LINE__, "asserts"));
|
|
}
|
|
|
|
static void test_assertNotNullImpl(void **state) {
|
|
(void)state;
|
|
|
|
int someValue = 42;
|
|
|
|
// Should not assert with a valid pointer
|
|
assertNotNullImpl(__FILE__, __LINE__, &someValue, "not assert");
|
|
|
|
// Should assert with a NULL pointer
|
|
expect_assert_failure(assertNotNullImpl(__FILE__, __LINE__, NULL, "asserts"));
|
|
}
|
|
|
|
static void test_assertDeprecatedImpl(void **state) {
|
|
(void)state;
|
|
|
|
// Always asserts when called
|
|
expect_assert_failure(assertDeprecatedImpl(__FILE__, __LINE__, "deprecated"));
|
|
}
|
|
|
|
static void test_assertTrue(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when passing true statement
|
|
assertTrue(true, "This should not assert");
|
|
|
|
// Should assert when passing false statement
|
|
expect_assert_failure(assertTrue(false, "asserts"));
|
|
}
|
|
|
|
static void test_assertFalse(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when passing true statement
|
|
assertFalse(false, "This should not assert");
|
|
|
|
// Should assert when passing false statement
|
|
expect_assert_failure(assertFalse(true, "asserts"));
|
|
}
|
|
|
|
static void test_assertUnreachable(void **state) {
|
|
(void)state;
|
|
|
|
// Should always assert false
|
|
expect_assert_failure(assertUnreachable("asserts"));
|
|
}
|
|
|
|
static void test_assertNotNull(void **state) {
|
|
(void)state;
|
|
|
|
int someValue = 42;
|
|
|
|
// Should not assert with a valid pointer
|
|
assertNotNull(&someValue, "not assert");
|
|
|
|
// Should assert with a NULL pointer
|
|
expect_assert_failure(assertNotNull(NULL, "asserts"));
|
|
}
|
|
|
|
static void test_assertNull(void **state) {
|
|
(void)state;
|
|
|
|
int someValue = 42;
|
|
|
|
// Should assert with a valid pointer
|
|
expect_assert_failure(assertNull(&someValue, "asserts"));
|
|
|
|
// Should not assert with a NULL pointer
|
|
assertNull(NULL, "not assert");
|
|
}
|
|
|
|
static void test_assertDeprecated(void **state) {
|
|
(void)state;
|
|
|
|
// Always asserts when called
|
|
expect_assert_failure(assertDeprecated("deprecated"));
|
|
}
|
|
|
|
static void test_assertStrLenMax(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when string length is within limit
|
|
assertStrLenMax("test", 10, "This should not assert");
|
|
|
|
// Should assert when string length exceeds limit
|
|
expect_assert_failure(assertStrLenMax("exceeding", 5, "asserts"));
|
|
}
|
|
|
|
static void test_assertStrLenMin(void **state) {
|
|
(void)state;
|
|
|
|
// Should not assert when string length meets minimum
|
|
assertStrLenMin("sufficient", 5, "This should not assert");
|
|
|
|
// Should assert when string length is below minimum
|
|
expect_assert_failure(assertStrLenMin("tiny", 10, "asserts"));
|
|
}
|
|
|
|
int main(void) {
|
|
const struct CMUnitTest tests[] = {
|
|
cmocka_unit_test(test_assertTrueImpl),
|
|
cmocka_unit_test(test_assertFalseImpl),
|
|
cmocka_unit_test(test_assertUnreachableImpl),
|
|
cmocka_unit_test(test_assertNotNullImpl),
|
|
cmocka_unit_test(test_assertDeprecatedImpl),
|
|
cmocka_unit_test(test_assertTrue),
|
|
cmocka_unit_test(test_assertFalse),
|
|
cmocka_unit_test(test_assertUnreachable),
|
|
cmocka_unit_test(test_assertNotNull),
|
|
cmocka_unit_test(test_assertNull),
|
|
cmocka_unit_test(test_assertDeprecated),
|
|
cmocka_unit_test(test_assertStrLenMax),
|
|
cmocka_unit_test(test_assertStrLenMin),
|
|
};
|
|
|
|
return cmocka_run_group_tests(tests, NULL, NULL);
|
|
} |