Changeset 96348adc in mainline for kernel/test/synch/semaphore1.c


Ignore:
Timestamp:
2006-12-12T17:24:58Z (17 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
7e13972
Parents:
34db7fa
Message:

cleanup tests

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/test/synch/semaphore1.c

    r34db7fa r96348adc  
    4646static atomic_t items_consumed;
    4747
    48 static void consumer(void *arg);
    49 static void producer(void *arg);
    50 static void failed(void);
    51 
    5248static void producer(void *arg)
    5349{
     
    7470}
    7571
    76 static void failed(void)
    77 {
    78         printf("Test failed prematurely.\n");
    79         thread_exit();
    80 }
    81 
    82 void test_semaphore1(void)
     72char * test_semaphore1(void)
    8373{
    8474        int i, j, k;
    8575        int consumers, producers;
    8676       
    87         printf("Semaphore test #1\n");
    88    
    8977        waitq_initialize(&can_start);
    9078        semaphore_initialize(&sem, AT_ONCE);
    9179
    92 
    93         for (i=1; i<=3; i++) {
     80        for (i = 1; i <= 3; i++) {
    9481                thread_t *thrd;
    9582
     
    9885               
    9986                consumers = i * CONSUMERS;
    100                 producers = (4-i) * PRODUCERS;
     87                producers = (4 - i) * PRODUCERS;
    10188               
    10289                printf("Creating %d consumers and %d producers...", consumers, producers);
    10390       
    104                 for (j=0; j<(CONSUMERS+PRODUCERS)/2; j++) {
    105                         for (k=0; k<i; k++) {
     91                for (j = 0; j < (CONSUMERS + PRODUCERS) / 2; j++) {
     92                        for (k = 0; k < i; k++) {
    10693                                thrd = thread_create(consumer, NULL, TASK, 0, "consumer");
    10794                                if (thrd)
    10895                                        thread_ready(thrd);
    10996                                else
    110                                         failed();
     97                                        printf("could not create consumer %d\n", i);
    11198                        }
    112                         for (k=0; k<(4-i); k++) {
     99                        for (k = 0; k < (4 - i); k++) {
    113100                                thrd = thread_create(producer, NULL, TASK, 0, "producer");
    114101                                if (thrd)
    115102                                        thread_ready(thrd);
    116103                                else
    117                                         failed();
     104                                        printf("could not create producer %d\n", i);
    118105                        }
    119106                }
     
    124111                waitq_wakeup(&can_start, WAKEUP_ALL);
    125112       
    126                 while (items_consumed.count != consumers || items_produced.count != producers) {
     113                while ((items_consumed.count != consumers) || (items_produced.count != producers)) {
    127114                        printf("%d consumers remaining, %d producers remaining\n", consumers - items_consumed.count, producers - items_produced.count);
    128115                        thread_sleep(1);
    129116                }
    130117        }
    131         printf("Test passed.\n");
     118       
     119        return NULL;
    132120}
Note: See TracChangeset for help on using the changeset viewer.