From fa12fbf167cf8e6513b462319cad435be02748fa Mon Sep 17 00:00:00 2001 From: Kaspar Schleiser <kaspar@schleiser.de> Date: Mon, 1 Nov 2010 16:12:22 +0100 Subject: [PATCH] * added mutex trylock regression test --- projects/test_mutex_trylock_fail/Jamfile | 5 +++ projects/test_mutex_trylock_fail/main.c | 31 +++++++++++++++++++ .../tests/test_mutex_trylock_fail | 13 ++++++++ 3 files changed, 49 insertions(+) create mode 100644 projects/test_mutex_trylock_fail/Jamfile create mode 100644 projects/test_mutex_trylock_fail/main.c create mode 100755 projects/test_mutex_trylock_fail/tests/test_mutex_trylock_fail diff --git a/projects/test_mutex_trylock_fail/Jamfile b/projects/test_mutex_trylock_fail/Jamfile new file mode 100644 index 0000000000..3f0bfe1dfd --- /dev/null +++ b/projects/test_mutex_trylock_fail/Jamfile @@ -0,0 +1,5 @@ +SubDir TOP projects test_mutex_trylock_fail ; + +Module test_mutex_trylock_fail : main.c ; + +UseModule test_mutex_trylock_fail ; diff --git a/projects/test_mutex_trylock_fail/main.c b/projects/test_mutex_trylock_fail/main.c new file mode 100644 index 0000000000..de7619adab --- /dev/null +++ b/projects/test_mutex_trylock_fail/main.c @@ -0,0 +1,31 @@ +#include <stdio.h> +#include <mutex.h> + +#include <thread.h> +#include <flags.h> +#include <kernel.h> + +mutex_t mutex; + +void second_thread(void) { + puts(" 2nd: trying to lock mutex..."); + mutex_trylock(&mutex); + puts(" 2nd: done."); +} + +tcb second_tcb; +char second_stack[8192]; + +int main(void) +{ + puts("main: locking mutex..."); + mutex_lock(&mutex); + + puts("main: creating thread..."); + int pid = thread_create(&second_tcb, second_stack, 8192, PRIORITY_MAIN-1, CREATE_STACKTEST, second_thread, "nr2"); + + puts("main: thread created. Unlocking mutex..."); + mutex_unlock(&mutex, true); + + puts("main: mutex unlocked."); +} diff --git a/projects/test_mutex_trylock_fail/tests/test_mutex_trylock_fail b/projects/test_mutex_trylock_fail/tests/test_mutex_trylock_fail new file mode 100755 index 0000000000..1795de002a --- /dev/null +++ b/projects/test_mutex_trylock_fail/tests/test_mutex_trylock_fail @@ -0,0 +1,13 @@ +#!/usr/bin/expect + +set timeout 5 + +spawn pseudoterm $env(PORT) + +expect { + "main: mutex unlocked." {} + timeout { exit 1 } +} + +puts "\nTest successful!\n" + -- GitLab