From 37f2d329149fbbf7a328728f1eebbb7f163cbf3f Mon Sep 17 00:00:00 2001 From: Alexandre Abadie Date: Fri, 29 Nov 2019 14:04:16 +0100 Subject: [PATCH] tests: add test for cpp files exclude --- tests/cpp_exclude/Makefile | 8 ++++ tests/cpp_exclude/Makefile.ci | 6 +++ tests/cpp_exclude/main.cpp | 31 +++++++++++++ tests/cpp_exclude/module_exclude/Makefile | 5 ++ tests/cpp_exclude/module_exclude/Makefile.dep | 1 + .../module_exclude/Makefile.include | 3 ++ tests/cpp_exclude/module_exclude/module.cpp | 32 +++++++++++++ tests/cpp_exclude/module_exclude/module.hpp | 46 +++++++++++++++++++ .../module_exclude/module_excluded.cpp | 34 ++++++++++++++ tests/cpp_exclude/tests/01-run.py | 19 ++++++++ 10 files changed, 185 insertions(+) create mode 100644 tests/cpp_exclude/Makefile create mode 100644 tests/cpp_exclude/Makefile.ci create mode 100644 tests/cpp_exclude/main.cpp create mode 100644 tests/cpp_exclude/module_exclude/Makefile create mode 100644 tests/cpp_exclude/module_exclude/Makefile.dep create mode 100644 tests/cpp_exclude/module_exclude/Makefile.include create mode 100644 tests/cpp_exclude/module_exclude/module.cpp create mode 100644 tests/cpp_exclude/module_exclude/module.hpp create mode 100644 tests/cpp_exclude/module_exclude/module_excluded.cpp create mode 100755 tests/cpp_exclude/tests/01-run.py diff --git a/tests/cpp_exclude/Makefile b/tests/cpp_exclude/Makefile new file mode 100644 index 000000000..93b476529 --- /dev/null +++ b/tests/cpp_exclude/Makefile @@ -0,0 +1,8 @@ +include ../Makefile.tests_common + +FEATURES_REQUIRED += cpp + +USEMODULE += module_exclude +EXTERNAL_MODULE_DIRS += $(CURDIR)/module_exclude + +include $(RIOTBASE)/Makefile.include diff --git a/tests/cpp_exclude/Makefile.ci b/tests/cpp_exclude/Makefile.ci new file mode 100644 index 000000000..d5062a26c --- /dev/null +++ b/tests/cpp_exclude/Makefile.ci @@ -0,0 +1,6 @@ +BOARD_INSUFFICIENT_MEMORY := \ + nucleo-f031k6 \ + nucleo-f042k6 \ + stm32f030f4-demo \ + stm32f0discovery \ + # diff --git a/tests/cpp_exclude/main.cpp b/tests/cpp_exclude/main.cpp new file mode 100644 index 000000000..c5eade9af --- /dev/null +++ b/tests/cpp_exclude/main.cpp @@ -0,0 +1,31 @@ +/* + * Copyright (C) 2019 Inria + * + * 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 Sample C++ application + * + * @author Alexandre Abadie + * + * @} + */ + +#include +#include "module.hpp" + +int main() { + puts("Hello from C++"); + + module_class obj; + obj.print_hello(); + + return 0; +} diff --git a/tests/cpp_exclude/module_exclude/Makefile b/tests/cpp_exclude/module_exclude/Makefile new file mode 100644 index 000000000..84b23c9c0 --- /dev/null +++ b/tests/cpp_exclude/module_exclude/Makefile @@ -0,0 +1,5 @@ +MODULE = module_exclude + +SRCXXEXCLUDE := module_excluded.cpp + +include $(RIOTBASE)/Makefile.base diff --git a/tests/cpp_exclude/module_exclude/Makefile.dep b/tests/cpp_exclude/module_exclude/Makefile.dep new file mode 100644 index 000000000..e355de5d7 --- /dev/null +++ b/tests/cpp_exclude/module_exclude/Makefile.dep @@ -0,0 +1 @@ +FEATURES_REQUIRED += cpp diff --git a/tests/cpp_exclude/module_exclude/Makefile.include b/tests/cpp_exclude/module_exclude/Makefile.include new file mode 100644 index 000000000..1a6f083cb --- /dev/null +++ b/tests/cpp_exclude/module_exclude/Makefile.include @@ -0,0 +1,3 @@ +# Use an immediate variable to evaluate `MAKEFILE_LIST` now +USEMODULE_INCLUDES_module_exclude := $(abspath $(dir $(lastword $(MAKEFILE_LIST)))) +USEMODULE_INCLUDES += $(USEMODULE_INCLUDES_module_exclude) diff --git a/tests/cpp_exclude/module_exclude/module.cpp b/tests/cpp_exclude/module_exclude/module.cpp new file mode 100644 index 000000000..029943789 --- /dev/null +++ b/tests/cpp_exclude/module_exclude/module.cpp @@ -0,0 +1,32 @@ +/* + * Copyright (C) 2019 Inria + * + * 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 Sample module C++ class + * + * @author Alexandre Abadie + * + * @} + */ + +#include + +#include "module.hpp" + +module_class::module_class() {} + +module_class::~module_class() {} + +void module_class::print_hello(void) +{ + puts("Hello from C++ module"); +} diff --git a/tests/cpp_exclude/module_exclude/module.hpp b/tests/cpp_exclude/module_exclude/module.hpp new file mode 100644 index 000000000..c75f18132 --- /dev/null +++ b/tests/cpp_exclude/module_exclude/module.hpp @@ -0,0 +1,46 @@ +/* + * Copyright (C) 2019 Inria + * + * 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 Sample module C++ class + * + * @author Alexandre Abadie + * + * @} + */ + +#ifndef MODULE_H +#define MODULE_H + +#include + +class module_class +{ +public: + /** + * @brief constructor + */ + module_class(); + + /** + * @brief destructor + */ + ~module_class(); + + /** + * @brief public function + */ + void print_hello(void); +}; + +/** @} */ +#endif /* MODULE_H */ diff --git a/tests/cpp_exclude/module_exclude/module_excluded.cpp b/tests/cpp_exclude/module_exclude/module_excluded.cpp new file mode 100644 index 000000000..c05bf233b --- /dev/null +++ b/tests/cpp_exclude/module_exclude/module_excluded.cpp @@ -0,0 +1,34 @@ +/* + * Copyright (C) 2019 Inria + * + * 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 Sample module C++ class + * + * @author Alexandre Abadie + * + * @} + */ + +#include + +#include "module.hpp" + +#error "This should not be built" + +module_class::module_class() {} + +module_class::~module_class() {} + +void module_class::print(void) +{ + puts("Hello from C++ module"); +} diff --git a/tests/cpp_exclude/tests/01-run.py b/tests/cpp_exclude/tests/01-run.py new file mode 100755 index 000000000..b0e3f260a --- /dev/null +++ b/tests/cpp_exclude/tests/01-run.py @@ -0,0 +1,19 @@ +#!/usr/bin/env python3 + +# Copyright (C) 2019 Inria +# +# 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_exact('Hello from C++') + child.expect_exact('Hello from C++ module') + + +if __name__ == "__main__": + sys.exit(run(testfunc))