#include #include static spinlock_t test_lock = SPIN_LOCK_INITIALIZER; static void spin_lock_test(struct sbiunit_test_case *test) { /* We don't want to accidentally get locked */ SBIUNIT_ASSERT(test, !spin_lock_check(&test_lock)); spin_lock(&test_lock); SBIUNIT_EXPECT(test, spin_lock_check(&test_lock)); spin_unlock(&test_lock); SBIUNIT_ASSERT(test, !spin_lock_check(&test_lock)); } static void spin_trylock_fail(struct sbiunit_test_case *test) { /* We don't want to accidentally get locked */ SBIUNIT_ASSERT(test, !spin_lock_check(&test_lock)); spin_lock(&test_lock); SBIUNIT_EXPECT(test, !spin_trylock(&test_lock)); spin_unlock(&test_lock); } static void spin_trylock_success(struct sbiunit_test_case *test) { SBIUNIT_EXPECT(test, spin_trylock(&test_lock)); spin_unlock(&test_lock); } static struct sbiunit_test_case locks_test_cases[] = { SBIUNIT_TEST_CASE(spin_lock_test), SBIUNIT_TEST_CASE(spin_trylock_fail), SBIUNIT_TEST_CASE(spin_trylock_success), SBIUNIT_END_CASE, }; SBIUNIT_TEST_SUITE(locks_test_suite, locks_test_cases);