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.
changes since v1: - Handled fscanf,fopen error checking. - Defined MAX_PATH_LEN.
Signed-off-by: Osama Muhammad osmtendev@gmail.com --- .../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
On Sun, 20 Aug 2023 at 19:14, Osama Muhammad osmtendev@gmail.com 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@gmail.com
.../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
On Tue, 3 Oct 2023 at 21:01, Osama Muhammad osmtendev@gmail.com wrote:
On Sun, 20 Aug 2023 at 19:14, Osama Muhammad osmtendev@gmail.com 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.
Hi Shuah, Any Feedback on this patch.
Thanks, Osama
Any Feedback on this patch?
changes since v1: - Handled fscanf,fopen error checking. - Defined MAX_PATH_LEN.
Signed-off-by: Osama Muhammad osmtendev@gmail.com
.../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
On 11/11/23 12:23, Osama Muhammad wrote:
Signed-off-by: Osama Muhammad osmtendev@gmail.com
.../selftests/prctl/set-process-name.c | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+)
Applied to linux-kselftest next for Linux 6.8-rc1.
thanks, -- Shuah
linux-kselftest-mirror@lists.linaro.org