diff options
author | Joel Granados <j.granados@samsung.com> | 2023-06-16 11:59:18 +0300 |
---|---|---|
committer | Luis Chamberlain <mcgrof@kernel.org> | 2023-06-18 12:32:54 +0300 |
commit | 35576438591e8d37c7651e6ff56f2e07c7f9615a (patch) | |
tree | 24aa1e72d96ee94c8147f8b0487d3941e416ad78 /lib/test_sysctl.c | |
parent | e009bd5efe81c5ccd2c08626a79c37d2a238ff15 (diff) | |
download | linux-35576438591e8d37c7651e6ff56f2e07c7f9615a.tar.xz |
test_sysctl: Add an unregister sysctl test
Add a test that checks that the unregistered directory is removed from
/proc/sys/debug
Signed-off-by: Joel Granados <j.granados@samsung.com>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Diffstat (limited to 'lib/test_sysctl.c')
-rw-r--r-- | lib/test_sysctl.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/lib/test_sysctl.c b/lib/test_sysctl.c index 0cf7c547d61a..555244687443 100644 --- a/lib/test_sysctl.c +++ b/lib/test_sysctl.c @@ -170,12 +170,42 @@ static int test_sysctl_setup_node_tests(void) return 0; } +/* Used to test that unregister actually removes the directory */ +static struct ctl_table test_table_unregister[] = { + { + .procname = "unregister_error", + .data = &test_data.int_0001, + .maxlen = sizeof(int), + .mode = 0644, + .proc_handler = proc_dointvec_minmax, + }, + {} +}; + +static int test_sysctl_run_unregister_nested(void) +{ + struct ctl_table_header *unregister; + + unregister = register_sysctl("debug/test_sysctl/unregister_error", + test_table_unregister); + if (!unregister) + return -ENOMEM; + + unregister_sysctl_table(unregister); + return 0; +} + static int __init test_sysctl_init(void) { int err; err = test_sysctl_setup_node_tests(); + if (err) + goto out; + + err = test_sysctl_run_unregister_nested(); +out: return err; } module_init(test_sysctl_init); |