diff --git a/sys/include/embUnit/AssertImpl.h b/sys/include/embUnit/AssertImpl.h index cf7e4951cf1256a81c8e9bff4c28fcca51989adb..6d948b1b41bdd6b0f5fb0a74dcba6c984e51b9ff 100644 --- a/sys/include/embUnit/AssertImpl.h +++ b/sys/include/embUnit/AssertImpl.h @@ -46,8 +46,8 @@ void assertImplementationCStr(const char *expected,const char *actual, long line #define TEST_ASSERT_EQUAL_STRING(expected_, actual_) \ do { \ - __typeof__(expected_) ____expected__ = expected_; \ - __typeof__(actual_) ____actual__ = actual_; \ + const char *____expected__ = expected_; \ + const char *____actual__ = actual_; \ if (stdimpl_strcmp(____expected__, ____actual__) != 0) { \ assertImplementationCStr(____expected__, ____actual__, __LINE__, RIOT_FILE_RELATIVE); \ return; \ diff --git a/tests/embunit/Makefile b/tests/embunit/Makefile new file mode 100644 index 0000000000000000000000000000000000000000..cd1c9e7b8b6e684eaae136f27c017c2e83076bc1 --- /dev/null +++ b/tests/embunit/Makefile @@ -0,0 +1,9 @@ +include ../Makefile.tests_common + +USEMODULE += embunit + +INCLUDES += -I$(RIOTBASE)/tests/unittests/common + +TEST_ON_CI_WHITELIST += all + +include $(RIOTBASE)/Makefile.include diff --git a/tests/embunit/main.c b/tests/embunit/main.c new file mode 100644 index 0000000000000000000000000000000000000000..6d8caaf5d7f68e17efc954eabc6ed31b84eb0759 --- /dev/null +++ b/tests/embunit/main.c @@ -0,0 +1,58 @@ +/* + * Copyright (C) 2018 HAW Hamburg + * + * This file is subject to the terms and conditions of the GNU Lesser + * General Public License v2.1. See the file LICENSE in the top level + * directory for more details. + */ + + /** + * @ingroup tests + * @{ + * + * @file + * @brief Unit tests for embUnit + * + * @author Sebastian Meiling <s@mlng.net> + */ + +#include <stdio.h> +#include <stdlib.h> +#include <string.h> + +#include "assert.h" +#include "embUnit.h" + +#define TEST_STRING_7 ("7") + +static const char *num = "7"; + +static void test_string_macro(void) +{ + TEST_ASSERT_EQUAL_STRING(TEST_STRING_7, num); +} + +static void test_string_array(void) +{ + int digit = 7; + char should_be[2] = { '0' + digit, 0 }; + TEST_ASSERT_EQUAL_STRING(should_be, num); +} + +TestRef test_embunit(void) +{ + EMB_UNIT_TESTFIXTURES(fixtures) { + new_TestFixture(test_string_macro), + new_TestFixture(test_string_array) + }; + + EMB_UNIT_TESTCALLER(tests_embunit, NULL, NULL, fixtures); + return (TestRef) & tests_embunit; +} + +int main(void) +{ + TESTS_START(); + TESTS_RUN(test_embunit()); + TESTS_END(); +} diff --git a/tests/embunit/tests/01-run.py b/tests/embunit/tests/01-run.py new file mode 100755 index 0000000000000000000000000000000000000000..5fc8788f24cbb51d21b196745921c8631a9c674d --- /dev/null +++ b/tests/embunit/tests/01-run.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2017 Freie Universität Berlin +# +# This file is subject to the terms and conditions of the GNU Lesser +# General Public License v2.1. See the file LICENSE in the top level +# directory for more details. + +import sys +from testrunner import run + + +def testfunc(child): + child.expect(r'OK \(\d+ tests\)') + + +if __name__ == "__main__": + sys.exit(run(testfunc))