tests: adapt posix_semaphores test to correct API

This commit is contained in:
Martine Lenders 2015-10-25 19:25:12 +01:00
parent 45b30a8e91
commit 5c2da0e289
2 changed files with 21 additions and 12 deletions

View File

@ -46,7 +46,7 @@ static void *test1_second_thread(void *arg)
msg_init_queue(test1_msg_queue, SEMAPHORE_MSG_QUEUE_SIZE); msg_init_queue(test1_msg_queue, SEMAPHORE_MSG_QUEUE_SIZE);
puts("second: sem_trywait"); puts("second: sem_trywait");
if (sem_trywait(&s1) == 0) { if (sem_trywait(&s1) < 0) {
puts("second: sem_trywait failed"); puts("second: sem_trywait failed");
} }
@ -54,7 +54,7 @@ static void *test1_second_thread(void *arg)
puts("second: wait for post"); puts("second: wait for post");
if (sem_wait(&s1) != 1) { if (sem_wait(&s1) < 0) {
puts("second: sem_wait failed"); puts("second: sem_wait failed");
} }
@ -68,7 +68,7 @@ static void test1(void)
{ {
puts("first: sem_init"); puts("first: sem_init");
if (sem_init(&s1, 0, 0) != 0) { if (sem_init(&s1, 0, 0) < 0) {
puts("first: sem_init failed"); puts("first: sem_init failed");
} }
@ -88,7 +88,7 @@ static void test1(void)
puts("first: sem_getvalue"); puts("first: sem_getvalue");
int val; int val;
if (sem_getvalue(&s1, &val) != 0 || val != 0) { if (sem_getvalue(&s1, &val) < 0 || val != 0) {
puts("first: sem_getvalue FAILED"); puts("first: sem_getvalue FAILED");
} }
@ -102,7 +102,7 @@ static void test1(void)
puts("first: sem_trywait"); puts("first: sem_trywait");
if (sem_trywait(&s1) != -1) { if (sem_trywait(&s1) < 0) {
puts("first: sem_trywait FAILED"); puts("first: sem_trywait FAILED");
} }
@ -110,7 +110,7 @@ static void test1(void)
puts("first: sem_post"); puts("first: sem_post");
if (sem_post(&s1) != 1) { if (sem_post(&s1) < 0) {
puts("first: sem_post FAILED"); puts("first: sem_post FAILED");
} }
@ -120,7 +120,7 @@ static void test1(void)
puts("first: sem_destroy"); puts("first: sem_destroy");
if (sem_destroy(&s1) != 0) { if (sem_destroy(&s1) < 0) {
puts("first: sem_destroy FAILED"); puts("first: sem_destroy FAILED");
} }
@ -141,7 +141,7 @@ void test2(void)
{ {
puts("first: sem_init"); puts("first: sem_init");
if (sem_init(&s1, 0, 0) != 0) { if (sem_init(&s1, 0, 0) < 0) {
puts("first: sem_init FAILED"); puts("first: sem_init FAILED");
} }
@ -201,11 +201,11 @@ static void *test3_two_one_thread(void *arg)
void test3(void) void test3(void)
{ {
puts("first: sem_init s1"); puts("first: sem_init s1");
if (sem_init(&s1, 0, 0) != 0) { if (sem_init(&s1, 0, 0) < 0) {
puts("first: sem_init FAILED"); puts("first: sem_init FAILED");
} }
puts("first: sem_init s2"); puts("first: sem_init s2");
if (sem_init(&s2, 0, 0) != 0) { if (sem_init(&s2, 0, 0) < 0) {
puts("first: sem_init FAILED"); puts("first: sem_init FAILED");
} }
puts("first: create thread 1"); puts("first: create thread 1");
@ -242,12 +242,20 @@ void test4(void)
abs.tv_sec = now.seconds + 1; abs.tv_sec = now.seconds + 1;
abs.tv_nsec = now.microseconds * 1000; abs.tv_nsec = now.microseconds * 1000;
puts("first: sem_init s1"); puts("first: sem_init s1");
if (sem_init(&s1, 0, 0) != 0) { if (sem_init(&s1, 0, 0) < 0) {
puts("first: sem_init FAILED"); puts("first: sem_init FAILED");
} }
vtimer_now(&start); vtimer_now(&start);
puts("first: wait 1 sec for s1"); puts("first: wait 1 sec for s1");
sem_timedwait(&s1, &abs); if (sem_timedwait(&s1, &abs) != 0) {
if (errno != ETIMEDOUT) {
printf("error waiting: %d\n", errno);
return;
}
else {
puts("first: timed out");
}
}
vtimer_now(&stop); vtimer_now(&stop);
stop = timex_sub(stop, start); stop = timex_sub(stop, start);
if (timex_cmp(stop, exp) < 0) { if (timex_cmp(stop, exp) < 0) {

View File

@ -89,6 +89,7 @@ def test4(term):
term.expect_exact("######################### TEST4:") term.expect_exact("######################### TEST4:")
term.expect_exact("first: sem_init s1") term.expect_exact("first: sem_init s1")
term.expect_exact("first: wait 1 sec for s1") term.expect_exact("first: wait 1 sec for s1")
term.expect_exact("first: timed out")
term.expect(r"first: waited 1\.\d{6} s") term.expect(r"first: waited 1\.\d{6} s")
if __name__ == "__main__": if __name__ == "__main__":