diff options
Diffstat (limited to 'kernel/tools/lib/lockdep/tests')
-rw-r--r-- | kernel/tools/lib/lockdep/tests/AA.c | 13 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABBA.c | 13 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABBCCA.c | 15 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABBCCDDA.c | 17 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABCABC.c | 15 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABCDBCDA.c | 17 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/ABCDBDDA.c | 17 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/WW.c | 13 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/common.h | 12 | ||||
-rw-r--r-- | kernel/tools/lib/lockdep/tests/unlock_balance.c | 12 |
10 files changed, 144 insertions, 0 deletions
diff --git a/kernel/tools/lib/lockdep/tests/AA.c b/kernel/tools/lib/lockdep/tests/AA.c new file mode 100644 index 000000000..0f782ff40 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/AA.c @@ -0,0 +1,13 @@ +#include <liblockdep/mutex.h> + +void main(void) +{ + pthread_mutex_t a, b; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + + pthread_mutex_lock(&a); + pthread_mutex_lock(&b); + pthread_mutex_lock(&a); +} diff --git a/kernel/tools/lib/lockdep/tests/ABBA.c b/kernel/tools/lib/lockdep/tests/ABBA.c new file mode 100644 index 000000000..07f0e29d5 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABBA.c @@ -0,0 +1,13 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(b, a); +} diff --git a/kernel/tools/lib/lockdep/tests/ABBCCA.c b/kernel/tools/lib/lockdep/tests/ABBCCA.c new file mode 100644 index 000000000..843db09ac --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABBCCA.c @@ -0,0 +1,15 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b, c; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + pthread_mutex_init(&c, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(b, c); + LOCK_UNLOCK_2(c, a); +} diff --git a/kernel/tools/lib/lockdep/tests/ABBCCDDA.c b/kernel/tools/lib/lockdep/tests/ABBCCDDA.c new file mode 100644 index 000000000..33620e268 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABBCCDDA.c @@ -0,0 +1,17 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b, c, d; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + pthread_mutex_init(&c, NULL); + pthread_mutex_init(&d, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(b, c); + LOCK_UNLOCK_2(c, d); + LOCK_UNLOCK_2(d, a); +} diff --git a/kernel/tools/lib/lockdep/tests/ABCABC.c b/kernel/tools/lib/lockdep/tests/ABCABC.c new file mode 100644 index 000000000..3fee51e3a --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABCABC.c @@ -0,0 +1,15 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b, c; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + pthread_mutex_init(&c, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(c, a); + LOCK_UNLOCK_2(b, c); +} diff --git a/kernel/tools/lib/lockdep/tests/ABCDBCDA.c b/kernel/tools/lib/lockdep/tests/ABCDBCDA.c new file mode 100644 index 000000000..427ba562c --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABCDBCDA.c @@ -0,0 +1,17 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b, c, d; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + pthread_mutex_init(&c, NULL); + pthread_mutex_init(&d, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(c, d); + LOCK_UNLOCK_2(b, c); + LOCK_UNLOCK_2(d, a); +} diff --git a/kernel/tools/lib/lockdep/tests/ABCDBDDA.c b/kernel/tools/lib/lockdep/tests/ABCDBDDA.c new file mode 100644 index 000000000..680c6cf3e --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/ABCDBDDA.c @@ -0,0 +1,17 @@ +#include <liblockdep/mutex.h> +#include "common.h" + +void main(void) +{ + pthread_mutex_t a, b, c, d; + + pthread_mutex_init(&a, NULL); + pthread_mutex_init(&b, NULL); + pthread_mutex_init(&c, NULL); + pthread_mutex_init(&d, NULL); + + LOCK_UNLOCK_2(a, b); + LOCK_UNLOCK_2(c, d); + LOCK_UNLOCK_2(b, d); + LOCK_UNLOCK_2(d, a); +} diff --git a/kernel/tools/lib/lockdep/tests/WW.c b/kernel/tools/lib/lockdep/tests/WW.c new file mode 100644 index 000000000..d44f77d71 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/WW.c @@ -0,0 +1,13 @@ +#include <liblockdep/rwlock.h> + +void main(void) +{ + pthread_rwlock_t a, b; + + pthread_rwlock_init(&a, NULL); + pthread_rwlock_init(&b, NULL); + + pthread_rwlock_wrlock(&a); + pthread_rwlock_rdlock(&b); + pthread_rwlock_wrlock(&a); +} diff --git a/kernel/tools/lib/lockdep/tests/common.h b/kernel/tools/lib/lockdep/tests/common.h new file mode 100644 index 000000000..d89e94d47 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/common.h @@ -0,0 +1,12 @@ +#ifndef _LIBLOCKDEP_TEST_COMMON_H +#define _LIBLOCKDEP_TEST_COMMON_H + +#define LOCK_UNLOCK_2(a, b) \ + do { \ + pthread_mutex_lock(&(a)); \ + pthread_mutex_lock(&(b)); \ + pthread_mutex_unlock(&(b)); \ + pthread_mutex_unlock(&(a)); \ + } while(0) + +#endif diff --git a/kernel/tools/lib/lockdep/tests/unlock_balance.c b/kernel/tools/lib/lockdep/tests/unlock_balance.c new file mode 100644 index 000000000..0bc62de68 --- /dev/null +++ b/kernel/tools/lib/lockdep/tests/unlock_balance.c @@ -0,0 +1,12 @@ +#include <liblockdep/mutex.h> + +void main(void) +{ + pthread_mutex_t a; + + pthread_mutex_init(&a, NULL); + + pthread_mutex_lock(&a); + pthread_mutex_unlock(&a); + pthread_mutex_unlock(&a); +} |