On Sun, 20 Aug 2023 at 19:14, Osama Muhammad <osmtendev@xxxxxxxxx> wrote: > > This patch covers the testing of PR_GET_NAME by > reading it's value from proc/self/task/pid/comm > and matching it with the value returned by PR_GET_NAME. > If the values are matched then it's successful, otherwise > it fails. Any Feedback on this patch? > > changes since v1: > - Handled fscanf,fopen error checking. > - Defined MAX_PATH_LEN. > > Signed-off-by: Osama Muhammad <osmtendev@xxxxxxxxx> > --- > .../selftests/prctl/set-process-name.c | 32 +++++++++++++++++++ > 1 file changed, 32 insertions(+) > > diff --git a/tools/testing/selftests/prctl/set-process-name.c b/tools/testing/selftests/prctl/set-process-name.c > index 3bc5e0e09..562f707ba 100644 > --- a/tools/testing/selftests/prctl/set-process-name.c > +++ b/tools/testing/selftests/prctl/set-process-name.c > @@ -12,6 +12,7 @@ > #define CHANGE_NAME "changename" > #define EMPTY_NAME "" > #define TASK_COMM_LEN 16 > +#define MAX_PATH_LEN 50 > > int set_name(char *name) > { > @@ -47,6 +48,35 @@ int check_null_pointer(char *check_name) > return res; > } > > +int check_name(void) > +{ > + > + int pid; > + > + pid = getpid(); > + FILE *fptr = NULL; > + char path[MAX_PATH_LEN] = {}; > + char name[TASK_COMM_LEN] = {}; > + char output[TASK_COMM_LEN] = {}; > + int j; > + > + j = snprintf(path, MAX_PATH_LEN, "/proc/self/task/%d/comm", pid); > + fptr = fopen(path, "r"); > + if (!fptr) > + return -EIO; > + > + fscanf(fptr, "%s", output); > + if (ferror(fptr)) > + return -EIO; > + > + int res = prctl(PR_GET_NAME, name, NULL, NULL, NULL); > + > + if (res < 0) > + return -errno; > + > + return !strcmp(output, name); > +} > + > TEST(rename_process) { > > EXPECT_GE(set_name(CHANGE_NAME), 0); > @@ -57,6 +87,8 @@ TEST(rename_process) { > > EXPECT_GE(set_name(CHANGE_NAME), 0); > EXPECT_LT(check_null_pointer(CHANGE_NAME), 0); > + > + EXPECT_TRUE(check_name()); > } > > TEST_HARNESS_MAIN > -- > 2.34.1 >