mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/netfilter/nf.git
synced 2026-04-17 22:24:18 -04:00
sysctl: Add a selftest for handling empty dirs
Basic test to ensure that empty directories can be registered and that they in turn can serve as a base dir for other registrations. Add one test to the sysctl selftest module. It first registers an empty directory under "empty_add" and then uses that as a base to register another empty dir. The sysctl bash script then checks that "empty_add" is present and that there an empty directory within it. Signed-off-by: Joel Granados <j.granados@samsung.com> Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
This commit is contained in:
committed by
Luis Chamberlain
parent
315552310c
commit
777740779e
@@ -35,6 +35,8 @@ static struct {
|
||||
struct ctl_table_header *test_h_setup_node;
|
||||
struct ctl_table_header *test_h_mnt;
|
||||
struct ctl_table_header *test_h_mnterror;
|
||||
struct ctl_table_header *empty_add;
|
||||
struct ctl_table_header *empty;
|
||||
} sysctl_test_headers;
|
||||
|
||||
struct test_sysctl_data {
|
||||
@@ -220,6 +222,25 @@ static int test_sysctl_run_register_mount_point(void)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct ctl_table test_table_empty[] = { };
|
||||
|
||||
static int test_sysctl_run_register_empty(void)
|
||||
{
|
||||
/* Tets that an empty dir can be created */
|
||||
sysctl_test_headers.empty_add
|
||||
= register_sysctl("debug/test_sysctl/empty_add", test_table_empty);
|
||||
if (!sysctl_test_headers.empty_add)
|
||||
return -ENOMEM;
|
||||
|
||||
/* Test that register on top of an empty dir works */
|
||||
sysctl_test_headers.empty
|
||||
= register_sysctl("debug/test_sysctl/empty_add/empty", test_table_empty);
|
||||
if (!sysctl_test_headers.empty)
|
||||
return -ENOMEM;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int __init test_sysctl_init(void)
|
||||
{
|
||||
int err;
|
||||
@@ -233,6 +254,10 @@ static int __init test_sysctl_init(void)
|
||||
goto out;
|
||||
|
||||
err = test_sysctl_run_register_mount_point();
|
||||
if (err)
|
||||
goto out;
|
||||
|
||||
err = test_sysctl_run_register_empty();
|
||||
|
||||
out:
|
||||
return err;
|
||||
@@ -248,6 +273,10 @@ static void __exit test_sysctl_exit(void)
|
||||
unregister_sysctl_table(sysctl_test_headers.test_h_mnt);
|
||||
if (sysctl_test_headers.test_h_mnterror)
|
||||
unregister_sysctl_table(sysctl_test_headers.test_h_mnterror);
|
||||
if (sysctl_test_headers.empty)
|
||||
unregister_sysctl_table(sysctl_test_headers.empty);
|
||||
if (sysctl_test_headers.empty_add)
|
||||
unregister_sysctl_table(sysctl_test_headers.empty_add);
|
||||
}
|
||||
|
||||
module_exit(test_sysctl_exit);
|
||||
|
||||
Reference in New Issue
Block a user