diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-11-05 15:23:03 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-11-12 09:36:20 +0100 |
commit | a467f5996339ed1071bae350cd04f43c6f1e6ad3 (patch) | |
tree | 204a48184b04eacd7bee2db47b2d7fb16d0bfdad /testsuites/sptests/sp27 | |
parent | psxtmtests: Avoid build system defined defines (diff) | |
download | rtems-a467f5996339ed1071bae350cd04f43c6f1e6ad3.tar.bz2 |
sptests: Avoid build system defined defines
Update #3818.
Diffstat (limited to 'testsuites/sptests/sp27')
-rw-r--r-- | testsuites/sptests/sp27/init.c | 146 | ||||
-rw-r--r-- | testsuites/sptests/sp27/sp27impl.h | 145 |
2 files changed, 146 insertions, 145 deletions
diff --git a/testsuites/sptests/sp27/init.c b/testsuites/sptests/sp27/init.c index b9522fd364..c1e9ba5996 100644 --- a/testsuites/sptests/sp27/init.c +++ b/testsuites/sptests/sp27/init.c @@ -1,145 +1 @@ -/* - * Test for rtems_semaphore_flush - * - * COPYRIGHT (c) 1989-2012. - * On-Line Applications Research Corporation (OAR). - * - * The license and distribution terms for this file may be - * found in the file LICENSE in this distribution or at - * http://www.rtems.org/license/LICENSE. - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include <bsp.h> -#include <tmacros.h> - -#include <stdio.h> -#include <stdlib.h> - -/* forward declarations to avoid warnings */ -rtems_task Init(rtems_task_argument argument); -void starttask(int arg); -rtems_task subtask(rtems_task_argument arg); -void doTest(void); - -#define NTASK 4 - -#if defined(USE_COUNTING_SEMAPHORE) - #define TEST_NAME "27a" - #define TEST_SEMAPHORE_TYPE "counting" - #define TEST_SEMAPHORE_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES -#else - #define TEST_NAME "27" - #define TEST_SEMAPHORE_TYPE "binary" - #define TEST_SEMAPHORE_ATTRIBUTES (RTEMS_LOCAL| \ - RTEMS_BINARY_SEMAPHORE|RTEMS_NO_INHERIT_PRIORITY| \ - RTEMS_NO_PRIORITY_CEILING|RTEMS_FIFO) -#endif - -const char rtems_test_name[] = "SP " TEST_NAME; - -rtems_id semaphore; -volatile int flags[NTASK]; - -rtems_task subtask( - rtems_task_argument arg -) -{ - rtems_status_code sc; - - for (;;) { - flags[arg]++; - sc = rtems_semaphore_obtain(semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT); - if (sc == RTEMS_SUCCESSFUL) - puts("Obtained semaphore -- and should not have done so!"); - else if (sc != RTEMS_UNSATISFIED) - printf("Can't get semaphore: %s\n", rtems_status_text(sc)); - } -} - -void starttask( - int arg -) -{ - rtems_id tid; - rtems_status_code sc; - rtems_task_priority priority; - - rtems_task_set_priority(RTEMS_SELF, RTEMS_CURRENT_PRIORITY, &priority); - sc = rtems_task_create(rtems_build_name('S', 'R', 'V', arg + 'A'), - priority, - RTEMS_MINIMUM_STACK_SIZE, - RTEMS_PREEMPT|RTEMS_NO_TIMESLICE|RTEMS_NO_ASR|RTEMS_INTERRUPT_LEVEL(0), - RTEMS_NO_FLOATING_POINT|RTEMS_LOCAL, - &tid); - directive_failed( sc, "task create" ); - - sc = rtems_task_start(tid, subtask, (rtems_task_argument) arg); - directive_failed( sc, "task start" ); -} - -void doTest(void) -{ - rtems_status_code sc; - int pass, i; - - sc = rtems_semaphore_create( - rtems_build_name('S', 'E', 'M', 'F'), - 0, - TEST_SEMAPHORE_ATTRIBUTES, - 0, - &semaphore); - directive_failed( sc, "semaphore create" ); - - for (i = 0 ; i < NTASK ; i++) - flags[i] = 0; - - for (i = 0 ; i < NTASK ; i++) - starttask(i); - - for (pass = 1 ; pass < 10 ; pass++) { - rtems_task_wake_after(1); - for (i = 0 ; i < NTASK ; i++) { - if (flags[i] != pass) - printf("flags[%d] = %d -- expected %d\n", i, flags[i], pass); - } - sc = rtems_semaphore_flush(semaphore); - directive_failed( sc, "semaphore flush" ); - } - - printf("Flushed all waiting tasks\n" ); -} - -rtems_task Init( - rtems_task_argument ignored -) -{ - TEST_BEGIN(); - puts( "Testing " TEST_SEMAPHORE_TYPE " semaphore flush" ); - doTest(); - TEST_END(); - - rtems_test_exit(0); -} - -/**************** START OF CONFIGURATION INFORMATION ****************/ - -#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION - -#define CONFIGURE_RTEMS_INIT_TASKS_TABLE - -#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER -#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER - -#define CONFIGURE_MAXIMUM_TASKS 6 -#define CONFIGURE_MAXIMUM_SEMAPHORES 1 - -#define CONFIGURE_INIT - -#include <rtems/confdefs.h> - -/**************** END OF CONFIGURATION INFORMATION ****************/ - +#include "sp27impl.h" diff --git a/testsuites/sptests/sp27/sp27impl.h b/testsuites/sptests/sp27/sp27impl.h new file mode 100644 index 0000000000..b9522fd364 --- /dev/null +++ b/testsuites/sptests/sp27/sp27impl.h @@ -0,0 +1,145 @@ +/* + * Test for rtems_semaphore_flush + * + * COPYRIGHT (c) 1989-2012. + * On-Line Applications Research Corporation (OAR). + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.rtems.org/license/LICENSE. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include <bsp.h> +#include <tmacros.h> + +#include <stdio.h> +#include <stdlib.h> + +/* forward declarations to avoid warnings */ +rtems_task Init(rtems_task_argument argument); +void starttask(int arg); +rtems_task subtask(rtems_task_argument arg); +void doTest(void); + +#define NTASK 4 + +#if defined(USE_COUNTING_SEMAPHORE) + #define TEST_NAME "27a" + #define TEST_SEMAPHORE_TYPE "counting" + #define TEST_SEMAPHORE_ATTRIBUTES RTEMS_DEFAULT_ATTRIBUTES +#else + #define TEST_NAME "27" + #define TEST_SEMAPHORE_TYPE "binary" + #define TEST_SEMAPHORE_ATTRIBUTES (RTEMS_LOCAL| \ + RTEMS_BINARY_SEMAPHORE|RTEMS_NO_INHERIT_PRIORITY| \ + RTEMS_NO_PRIORITY_CEILING|RTEMS_FIFO) +#endif + +const char rtems_test_name[] = "SP " TEST_NAME; + +rtems_id semaphore; +volatile int flags[NTASK]; + +rtems_task subtask( + rtems_task_argument arg +) +{ + rtems_status_code sc; + + for (;;) { + flags[arg]++; + sc = rtems_semaphore_obtain(semaphore, RTEMS_WAIT, RTEMS_NO_TIMEOUT); + if (sc == RTEMS_SUCCESSFUL) + puts("Obtained semaphore -- and should not have done so!"); + else if (sc != RTEMS_UNSATISFIED) + printf("Can't get semaphore: %s\n", rtems_status_text(sc)); + } +} + +void starttask( + int arg +) +{ + rtems_id tid; + rtems_status_code sc; + rtems_task_priority priority; + + rtems_task_set_priority(RTEMS_SELF, RTEMS_CURRENT_PRIORITY, &priority); + sc = rtems_task_create(rtems_build_name('S', 'R', 'V', arg + 'A'), + priority, + RTEMS_MINIMUM_STACK_SIZE, + RTEMS_PREEMPT|RTEMS_NO_TIMESLICE|RTEMS_NO_ASR|RTEMS_INTERRUPT_LEVEL(0), + RTEMS_NO_FLOATING_POINT|RTEMS_LOCAL, + &tid); + directive_failed( sc, "task create" ); + + sc = rtems_task_start(tid, subtask, (rtems_task_argument) arg); + directive_failed( sc, "task start" ); +} + +void doTest(void) +{ + rtems_status_code sc; + int pass, i; + + sc = rtems_semaphore_create( + rtems_build_name('S', 'E', 'M', 'F'), + 0, + TEST_SEMAPHORE_ATTRIBUTES, + 0, + &semaphore); + directive_failed( sc, "semaphore create" ); + + for (i = 0 ; i < NTASK ; i++) + flags[i] = 0; + + for (i = 0 ; i < NTASK ; i++) + starttask(i); + + for (pass = 1 ; pass < 10 ; pass++) { + rtems_task_wake_after(1); + for (i = 0 ; i < NTASK ; i++) { + if (flags[i] != pass) + printf("flags[%d] = %d -- expected %d\n", i, flags[i], pass); + } + sc = rtems_semaphore_flush(semaphore); + directive_failed( sc, "semaphore flush" ); + } + + printf("Flushed all waiting tasks\n" ); +} + +rtems_task Init( + rtems_task_argument ignored +) +{ + TEST_BEGIN(); + puts( "Testing " TEST_SEMAPHORE_TYPE " semaphore flush" ); + doTest(); + TEST_END(); + + rtems_test_exit(0); +} + +/**************** START OF CONFIGURATION INFORMATION ****************/ + +#define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION + +#define CONFIGURE_RTEMS_INIT_TASKS_TABLE + +#define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER +#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER + +#define CONFIGURE_MAXIMUM_TASKS 6 +#define CONFIGURE_MAXIMUM_SEMAPHORES 1 + +#define CONFIGURE_INIT + +#include <rtems/confdefs.h> + +/**************** END OF CONFIGURATION INFORMATION ****************/ + |