From 3ae2e8ddb38615434dccd5a6462faae144633d27 Mon Sep 17 00:00:00 2001 From: gdisirio Date: Tue, 26 Aug 2008 14:43:09 +0000 Subject: git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@409 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- test/test.c | 6 ++++++ test/test.mk | 3 ++- test/testmtx.c | 4 ++++ test/testpools.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ test/testpools.h | 25 ++++++++++++++++++++++ 5 files changed, 100 insertions(+), 1 deletion(-) create mode 100644 test/testpools.c create mode 100644 test/testpools.h (limited to 'test') diff --git a/test/test.c b/test/test.c index 1a0b9a4ec..96bd43938 100644 --- a/test/test.c +++ b/test/test.c @@ -24,6 +24,7 @@ #include "testsem.h" #include "testmtx.h" #include "testmsg.h" +#include "testpools.h" #include "testbmk.h" /* @@ -34,10 +35,15 @@ static const struct testcase *tests[] = { &testrdy2, &testsem1, &testsem2, +#ifdef CH_USE_MUTEXES &testmtx1, &testmtx2, &testmtx3, +#endif &testmsg1, +#ifdef CH_USE_MEMPOOLS + &testpools1, +#endif &testbmk1, &testbmk2, &testbmk3, diff --git a/test/test.mk b/test/test.mk index ce890a855..73e6e1bc0 100644 --- a/test/test.mk +++ b/test/test.mk @@ -1,3 +1,4 @@ # List of all the ChibiOS/RT test files. TESTSRC = ../../test/test.c ../../test/testrdy.c ../../test/testsem.c \ - ../../test/testmtx.c ../../test/testmsg.c ../../test/testbmk.c + ../../test/testmtx.c ../../test/testmsg.c ../../test/testpools.c \ + ../../test/testbmk.c diff --git a/test/testmtx.c b/test/testmtx.c index 526a64ffa..2243b375f 100644 --- a/test/testmtx.c +++ b/test/testmtx.c @@ -21,6 +21,8 @@ #include "test.h" +#ifdef CH_USE_MUTEXES + #define ALLOWED_DELAY 5 static Mutex m1, m2; @@ -219,3 +221,5 @@ const struct testcase testmtx3 = { mtx3_teardown, mtx3_execute }; + +#endif /* CH_USE_MUTEXES */ diff --git a/test/testpools.c b/test/testpools.c new file mode 100644 index 000000000..a86eecedd --- /dev/null +++ b/test/testpools.c @@ -0,0 +1,63 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#include + +#include "test.h" + +#ifdef CH_USE_MEMPOOLS + +static MemoryPool mp1; + +static char *pools1_gettest(void) { + + return "Memory Pools, allocation and enqueuing test"; +} + +static void pools1_setup(void) { + + chPoolInit(&mp1, UserStackSize(THREADS_STACK_SIZE)); +} + +static void pools1_teardown(void) { +} + +static void pools1_execute(void) { + int i; + + /* Adding the WAs to the pool. */ + for (i = 0; i < 5; i++) + chPoolFree(&mp1, wa[i]); + + /* Empting the pool again. */ + for (i = 0; i < 5; i++) + test_assert(chPoolAlloc(&mp1, FALSE) != NULL, "pool list empty"); + + /* Now must be empty. */ + test_assert(chPoolAlloc(&mp1, FALSE) == NULL, "pool list not empty"); +} + +const struct testcase testpools1 = { + pools1_gettest, + pools1_setup, + pools1_teardown, + pools1_execute +}; + +#endif /* CH_USE_MEMPOOLS */ diff --git a/test/testpools.h b/test/testpools.h new file mode 100644 index 000000000..413d1eb76 --- /dev/null +++ b/test/testpools.h @@ -0,0 +1,25 @@ +/* + ChibiOS/RT - Copyright (C) 2006-2007 Giovanni Di Sirio. + + This file is part of ChibiOS/RT. + + ChibiOS/RT is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + ChibiOS/RT is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . +*/ + +#ifndef _TESTPOOLS_H_ +#define _TESTPOOLS_H_ + +extern const struct testcase testpools1; + +#endif /* _TESTPOOLS_H_ */ -- cgit v1.2.3