mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
unittests: use subfolders for different tests
Unittests for e.g. different libraries can be put into `tests/unittests/tests-XXX`, where `XXX` is your test suite. If `unittests` is made with `make all` (or any explicit argument), then all test suites get built. If you use `make tests-XXX tests-YYY …` then only the test suites `XXX` and `YYY` get built.
This commit is contained in:
parent
61152df449
commit
297bc52062
@ -16,6 +16,21 @@ else ifeq ($(OUTPUT),COMPILER)
|
||||
USEMODULE += embunit_textui
|
||||
endif
|
||||
|
||||
.PHONY : all clean core
|
||||
ifeq (, $(filter tests-%, $(MAKECMDGOALS)))
|
||||
UNIT_TESTS := $(shell find -mindepth 1 -maxdepth 1 -type d -name 'tests-*' -printf '%f ')
|
||||
else
|
||||
UNIT_TESTS := $(filter tests-%, $(MAKECMDGOALS))
|
||||
endif
|
||||
|
||||
include $(RIOTBASE)/Makefile.include
|
||||
|
||||
UNITTEST_LIBS := $(UNIT_TESTS:%=$(BINDIR)%.a)
|
||||
|
||||
all: $(UNITTEST_LIBS)
|
||||
$(UNIT_TESTS): all
|
||||
|
||||
$(UNITTEST_LIBS): $(BINDIR)%.a:
|
||||
"$(MAKE)" -C $(CURDIR)/$*
|
||||
|
||||
CFLAGS += $(shell echo $(UNIT_TESTS:tests-%=-DTEST_%_ENABLED) | tr a-z A-Z)
|
||||
BASELIBS += $(UNITTEST_LIBS)
|
||||
|
@ -6,48 +6,10 @@
|
||||
* details.
|
||||
*/
|
||||
|
||||
#include "embUnit/embUnit.h"
|
||||
#include "unittests.h"
|
||||
|
||||
#include "lpm.h"
|
||||
|
||||
#ifdef OUTPUT
|
||||
#define OUTPUT_XML (1)
|
||||
#define OUTPUT_TEXT (2)
|
||||
#define OUTPUT_COMPILER (4)
|
||||
|
||||
#if (OUTPUT==OUTPUT_XML)
|
||||
#include "textui/XMLOutputter.h"
|
||||
|
||||
#define OUTPUTTER (XMLOutputter_outputter())
|
||||
#endif
|
||||
|
||||
#if (OUTPUT==OUTPUT_TEXT)
|
||||
#include "textui/TextOutputter.h"
|
||||
|
||||
#define OUTPUTTER (TextOutputter_outputter())
|
||||
#endif
|
||||
|
||||
#if (OUTPUT==OUTPUT_COMPILER)
|
||||
#include "textui/CompilerOutputter.h"
|
||||
|
||||
#define OUTPUTTER (CompilerOutputter_outputter())
|
||||
#endif
|
||||
|
||||
#include "textui/TextUIRunner.h"
|
||||
|
||||
#define TESTS_START() TextUIRunner_start()
|
||||
#define TESTS_RUN(t) TextUIRunner_runTest(t)
|
||||
#define TESTS_END() TextUIRunner_end()
|
||||
|
||||
#else
|
||||
|
||||
#define TESTS_START() TestRunner_start()
|
||||
#define TESTS_RUN(t) TestRunner_runTest(t)
|
||||
#define TESTS_END() TestRunner_end()
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
int main(void)
|
||||
{
|
||||
#ifdef OUTPUT
|
||||
@ -55,10 +17,15 @@ int main(void)
|
||||
#endif
|
||||
|
||||
TESTS_START();
|
||||
/* put test TEST_RUN() calls here */
|
||||
|
||||
/* put test TEST_RUN() calls here: */
|
||||
/* #ifdef TEST_xxx_ENABLED
|
||||
* tests_xxx();
|
||||
* #endif
|
||||
*/
|
||||
|
||||
TESTS_END();
|
||||
|
||||
lpm_set(LPM_POWERDOWN);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
52
tests/unittests/unittests.h
Normal file
52
tests/unittests/unittests.h
Normal file
@ -0,0 +1,52 @@
|
||||
/*
|
||||
* Copyright (C) 2014 Martin Lenders
|
||||
*
|
||||
* This file is subject to the terms and conditions of the GNU Lesser General
|
||||
* Public License. See the file LICENSE in the top level directory for more
|
||||
* details.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @addtogroup unittests
|
||||
* @{
|
||||
*
|
||||
* @file unittests.h
|
||||
* @brief Common header file for unittests
|
||||
*
|
||||
* @author Freie Universität Berlin, Computer Systems & Telematics
|
||||
* @author Martine Lenders <mlenders@inf.fu-berlin.de>
|
||||
*/
|
||||
|
||||
#ifndef __UNITTESTS__H
|
||||
#define __UNITTESTS__H
|
||||
|
||||
#include "embUnit/embUnit.h"
|
||||
|
||||
#ifdef OUTPUT
|
||||
# define OUTPUT_XML (1)
|
||||
# define OUTPUT_TEXT (2)
|
||||
# define OUTPUT_COMPILER (4)
|
||||
|
||||
# if (OUTPUT==OUTPUT_XML)
|
||||
# include "textui/XMLOutputter.h"
|
||||
# define OUTPUTTER (XMLOutputter_outputter())
|
||||
# elif (OUTPUT==OUTPUT_TEXT)
|
||||
# include "textui/TextOutputter.h"
|
||||
# define OUTPUTTER (TextOutputter_outputter())
|
||||
# elif (OUTPUT==OUTPUT_COMPILER)
|
||||
# include "textui/CompilerOutputter.h"
|
||||
# define OUTPUTTER (CompilerOutputter_outputter())
|
||||
# endif
|
||||
|
||||
# include "textui/TextUIRunner.h"
|
||||
|
||||
# define TESTS_START() TextUIRunner_start()
|
||||
# define TESTS_RUN(t) TextUIRunner_runTest(t)
|
||||
# define TESTS_END() TextUIRunner_end()
|
||||
#else
|
||||
# define TESTS_START() TestRunner_start()
|
||||
# define TESTS_RUN(t) TestRunner_runTest(t)
|
||||
# define TESTS_END() TestRunner_end()
|
||||
#endif
|
||||
|
||||
#endif
|
Loading…
Reference in New Issue
Block a user