Function report |
Source Code:lib\locking-selftest.c |
Create Date:2022-07-28 06:53:21 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:locking_selftest
Proto:void locking_selftest(void)
Type:void
Parameter:Nothing
| 1975 | printk("----------------------------------\n") |
| 1976 | printk("| Locking API testsuite disabled |\n") |
| 1977 | printk("----------------------------------\n") |
| 1978 | Return |
| 1984 | printk("------------------------\n") |
| 1985 | printk("| Locking API testsuite:\n") |
| 1986 | printk("----------------------------------------------------------------------------\n") |
| 1987 | printk(" | spin |wlock |rlock |mutex | wsem | rsem |\n") |
| 1988 | printk(" --------------------------------------------------------------------------\n") |
| 1990 | init_shared_classes() |
| 1991 |
The locking-testsuite uses |
| 2004 | printk(" --------------------------------------------------------------------------\n") |
| 2005 | print_testname("recursive read-lock") |
| 2007 | dotest(Special-case for read-locking, they are* allowed to recurse on the same lock class:, SUCCESS, LOCKTYPE_RWLOCK) |
| 2009 | dotest(rsem_AA1, FAILURE, LOCKTYPE_RWSEM) |
| 2012 | print_testname("recursive read-lock #2") |
| 2014 | dotest(rlock_AA1B, SUCCESS, LOCKTYPE_RWLOCK) |
| 2016 | dotest(rsem_AA1B, FAILURE, LOCKTYPE_RWSEM) |
| 2019 | print_testname("mixed read-write-lock") |
| 2023 | dotest(rsem_AA2, FAILURE, LOCKTYPE_RWSEM) |
| 2026 | print_testname("mixed write-read-lock") |
| 2028 | dotest(rlock_AA3, FAILURE, LOCKTYPE_RWLOCK) |
| 2030 | dotest(rsem_AA3, FAILURE, LOCKTYPE_RWSEM) |
| 2033 | print_testname("mixed read-lock/lock-write ABBA") |
| 2045 | dotest(rwsem_ABBA1, FAILURE, LOCKTYPE_RWSEM) |
| 2047 | print_testname("mixed read-lock/lock-read ABBA") |
| 2051 | dotest(rwsem_ABBA2, FAILURE, LOCKTYPE_RWSEM) |
| 2053 | print_testname("mixed write-lock/lock-write ABBA") |
| 2057 | dotest(rwsem_ABBA3, FAILURE, LOCKTYPE_RWSEM) |
| 2059 | printk(" --------------------------------------------------------------------------\n") |
| 2074 | ww_tests() |
| 2076 | If unexpected_testcase_failures Then |
| 2077 | printk("-----------------------------------------------------------------\n") |
| 2079 | printk("BUG: %3d unexpected failures (out of %3d) - debugging disabled! |\n", unexpected_testcase_failures, testcase_total) |
| 2081 | printk("-----------------------------------------------------------------\n") |
| 2082 | Else if expected_testcase_failures && testcase_successes Then |
| 2083 | printk("--------------------------------------------------------\n") |
| 2084 | printk("%3d out of %3d testcases failed, as expected. |\n", expected_testcase_failures, testcase_total) |
| 2086 | printk("----------------------------------------------------\n") |
| 2088 | Else if expected_testcase_failures && Not testcase_successes Then |
| 2089 | printk("--------------------------------------------------------\n") |
| 2090 | printk("All %3d testcases failed, as expected. |\n", expected_testcase_failures) |
| 2092 | printk("----------------------------------------\n") |
| 2094 | Else |
| 2095 | printk("-------------------------------------------------------\n") |
| 2096 | printk("Good, all %3d testcases passed! |\n", testcase_successes) |
| 2098 | printk("---------------------------------\n") |
| 2101 | lockdep_set_selftest_task(NULL) |
| Source code conversion tool public plug-in interface | X |
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |