X-Git-Url: https://codewiz.org/gitweb?a=blobdiff_plain;f=bertos%2Fkern%2Fsem_test.c;h=1045205df9fc0bd5828124f6d429f6534c05a99f;hb=bfe473a7e8951b16edbd6559b828a37e6ce378aa;hp=b6428c1be5f73314743c8ec4442b702096dfb895;hpb=36e3ba5ed4644b2abb3ce08c7ac68762d307a8cb;p=bertos.git diff --git a/bertos/kern/sem_test.c b/bertos/kern/sem_test.c index b6428c1b..1045205d 100644 --- a/bertos/kern/sem_test.c +++ b/bertos/kern/sem_test.c @@ -31,11 +31,16 @@ * * \brief Semaphore test. * - * \version $Id$ - * + * * \author Daniele Basile - * \author Stefano Fedrigo - * + * \author Stefano Fedrigo + * + * $test$: cp bertos/cfg/cfg_proc.h $cfgdir/ + * $test$: echo "#undef CONFIG_KERN" >> $cfgdir/cfg_proc.h + * $test$: echo "#define CONFIG_KERN 1" >> $cfgdir/cfg_proc.h + * $test$: cp bertos/cfg/cfg_sem.h $cfgdir/ + * $test$: echo "#undef CONFIG_KERN_SEMAPHORES" >> $cfgdir/cfg_sem.h + * $test$: echo "#define CONFIG_KERN_SEMAPHORES 1" >> $cfgdir/cfg_sem.h */ #include @@ -50,7 +55,7 @@ // Global settings for the test. #define MAX_GLOBAL_COUNT 1024 #define TEST_TIME_OUT_MS 6000 -#define DELAY 5 +#define DELAY 5 // Settings for the test process. //Process 1 @@ -83,8 +88,8 @@ unsigned int global_count = 0; /* * These macros generate the code needed to create the test process functions. - */ -#define PROC_TEST(num) static void proc_test##num(void) \ + */ +#define PROC_TEST(num) static void proc_semTest##num(void) \ { \ unsigned int local_count = 0; \ \ @@ -103,8 +108,8 @@ unsigned int global_count = 0; } \ } \ -#define PROC_TEST_STACK(num) static cpu_stack_t proc_test##num##_stack[CONFIG_KERN_MINSTACKSIZE / sizeof(cpu_stack_t)]; -#define PROC_TEST_INIT(num) proc_new(proc_test##num, NULL, sizeof(proc_test##num##_stack), proc_test##num##_stack); +#define PROC_TEST_STACK(num) PROC_DEFINE_STACK(proc_sem_test##num##_stack, KERN_MINSTACKSIZE * 2) +#define PROC_TEST_INIT(num) proc_new(proc_semTest##num, NULL, sizeof(proc_sem_test##num##_stack), proc_sem_test##num##_stack); // Define process PROC_TEST(1) @@ -134,7 +139,7 @@ int sem_testRun(void) ticks_t start_time = timer_clock(); kprintf("Run semaphore test..\n"); - + //Init the process tests PROC_TEST_INIT(1) PROC_TEST_INIT(2) @@ -145,11 +150,11 @@ int sem_testRun(void) PROC_TEST_INIT(7) PROC_TEST_INIT(8) kputs("> Main: Processes created\n"); - + /* - * Wait until all processes exit, if something goes wrong we return an + * Wait until all processes exit, if something goes wrong we return an * error after timeout_ms. - */ + */ while((timer_clock() - start_time) < ms_to_ticks(TEST_TIME_OUT_MS)) { if (sem_attempt(&sem)) @@ -165,7 +170,7 @@ int sem_testRun(void) } proc_yield(); } - + kputs("Semaphore Test fail..\n"); return -1; } @@ -177,21 +182,15 @@ int sem_testSetup(void) kprintf("Init Semaphore.."); sem_init(&sem); kprintf("Done.\n"); - - #if CONFIG_KERN_PREEMPT - kprintf("Init Interrupt (preempt mode).."); - irq_init(); - kprintf("Done.\n"); - #endif kprintf("Init Timer.."); timer_init(); kprintf("Done.\n"); - + kprintf("Init Process.."); proc_init(); kprintf("Done.\n"); - + return 0; } @@ -201,4 +200,4 @@ int sem_testTearDown(void) return 0; } -TEST_MAIN(sem); \ No newline at end of file +TEST_MAIN(sem);