Message ID | 96cf2b235f525321a562e9727b3fa0b05675efe8.1568116761.git.esyr@redhat.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Update clone3 self-tests | expand |
On 9/10/19 6:03 AM, Eugene Syromiatnikov wrote: > * tools/testing/selftests/clone3/clone3.c (CLONE3_ARGS_NO_TEST, > CLONE3_ARGS_ALL_0, CLONE3_ARGS_ALL_1): Change into an enum. > (call_clone3): Change test_mode parameter type to enum test_mode; > use switch statement for actions that dependent on test_mode selection. > (test_clone3): Change test_mode parameter type to enum test_mode. > You don't need the file name in the commit log. Please describe what you are fixing/doing in the commit. Describing the actual code changes doesn't help. Including why these changes are needed as opposed the actual changes will be helpful. I think I know why, I would like you to tell me why. > Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com> > --- > tools/testing/selftests/clone3/clone3.c | 21 ++++++++++++++------- > 1 file changed, 14 insertions(+), 7 deletions(-) > > diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c > index a0f1989..7b65ee5 100644 > --- a/tools/testing/selftests/clone3/clone3.c > +++ b/tools/testing/selftests/clone3/clone3.c > @@ -24,16 +24,18 @@ > /* V1 includes set_tid */ > #define CLONE3_ARGS_SIZE_V1 72 > > -#define CLONE3_ARGS_NO_TEST 0 > -#define CLONE3_ARGS_ALL_0 1 > -#define CLONE3_ARGS_ALL_1 2 > +enum test_mode { > + CLONE3_ARGS_NO_TEST, > + CLONE3_ARGS_ALL_0, > + CLONE3_ARGS_ALL_1, > +}; > > static pid_t raw_clone(struct clone_args *args, size_t size) > { > return syscall(__NR_clone3, args, size); > } > > -static int call_clone3(int flags, size_t size, int test_mode) > +static int call_clone3(int flags, size_t size, enum test_mode test_mode) > { > struct clone_args args = {0}; > pid_t ppid = -1; > @@ -46,7 +48,8 @@ static int call_clone3(int flags, size_t size, int test_mode) > if (size == 0) > size = sizeof(struct clone_args); > > - if (test_mode == CLONE3_ARGS_ALL_0) { > + switch (test_mode) { > + case CLONE3_ARGS_ALL_0: > args.flags = 0; > args.pidfd = 0; > args.child_tid = 0; > @@ -56,7 +59,9 @@ static int call_clone3(int flags, size_t size, int test_mode) > args. stack_size = 0; > args.tls = 0; > args.set_tid = 0; > - } else if (test_mode == CLONE3_ARGS_ALL_1) { > + break; > + > + case CLONE3_ARGS_ALL_1: > args.flags = 1; > args.pidfd = 1; > args.child_tid = 1; > @@ -66,6 +71,7 @@ static int call_clone3(int flags, size_t size, int test_mode) > args. stack_size = 1; > args.tls = 1; > args.set_tid = 1; > + break; > } > > pid = raw_clone(&args, size); > @@ -91,7 +97,8 @@ static int call_clone3(int flags, size_t size, int test_mode) > return 0; > } > > -static int test_clone3(int flags, size_t size, int expected, int test_mode) > +static int test_clone3(int flags, size_t size, int expected, > + enum test_mode test_mode) > { > int ret; > > thanks, -- Shuah
diff --git a/tools/testing/selftests/clone3/clone3.c b/tools/testing/selftests/clone3/clone3.c index a0f1989..7b65ee5 100644 --- a/tools/testing/selftests/clone3/clone3.c +++ b/tools/testing/selftests/clone3/clone3.c @@ -24,16 +24,18 @@ /* V1 includes set_tid */ #define CLONE3_ARGS_SIZE_V1 72 -#define CLONE3_ARGS_NO_TEST 0 -#define CLONE3_ARGS_ALL_0 1 -#define CLONE3_ARGS_ALL_1 2 +enum test_mode { + CLONE3_ARGS_NO_TEST, + CLONE3_ARGS_ALL_0, + CLONE3_ARGS_ALL_1, +}; static pid_t raw_clone(struct clone_args *args, size_t size) { return syscall(__NR_clone3, args, size); } -static int call_clone3(int flags, size_t size, int test_mode) +static int call_clone3(int flags, size_t size, enum test_mode test_mode) { struct clone_args args = {0}; pid_t ppid = -1; @@ -46,7 +48,8 @@ static int call_clone3(int flags, size_t size, int test_mode) if (size == 0) size = sizeof(struct clone_args); - if (test_mode == CLONE3_ARGS_ALL_0) { + switch (test_mode) { + case CLONE3_ARGS_ALL_0: args.flags = 0; args.pidfd = 0; args.child_tid = 0; @@ -56,7 +59,9 @@ static int call_clone3(int flags, size_t size, int test_mode) args. stack_size = 0; args.tls = 0; args.set_tid = 0; - } else if (test_mode == CLONE3_ARGS_ALL_1) { + break; + + case CLONE3_ARGS_ALL_1: args.flags = 1; args.pidfd = 1; args.child_tid = 1; @@ -66,6 +71,7 @@ static int call_clone3(int flags, size_t size, int test_mode) args. stack_size = 1; args.tls = 1; args.set_tid = 1; + break; } pid = raw_clone(&args, size); @@ -91,7 +97,8 @@ static int call_clone3(int flags, size_t size, int test_mode) return 0; } -static int test_clone3(int flags, size_t size, int expected, int test_mode) +static int test_clone3(int flags, size_t size, int expected, + enum test_mode test_mode) { int ret;
* tools/testing/selftests/clone3/clone3.c (CLONE3_ARGS_NO_TEST, CLONE3_ARGS_ALL_0, CLONE3_ARGS_ALL_1): Change into an enum. (call_clone3): Change test_mode parameter type to enum test_mode; use switch statement for actions that dependent on test_mode selection. (test_clone3): Change test_mode parameter type to enum test_mode. Signed-off-by: Eugene Syromiatnikov <esyr@redhat.com> --- tools/testing/selftests/clone3/clone3.c | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-)