* [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api
@ 2023-07-06 10:05 Yang Xu
2023-07-06 10:05 ` [LTP] [PATCH v2 2/2] syscalls/geteuid02: " Yang Xu
2023-07-10 13:46 ` [LTP] [PATCH v2 1/2] syscalls/geteuid01: " Petr Vorel
0 siblings, 2 replies; 9+ messages in thread
From: Yang Xu @ 2023-07-06 10:05 UTC (permalink / raw)
To: ltp
Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
testcases/kernel/syscalls/geteuid/geteuid01.c | 91 +++++----------------------
1 file changed, 14 insertions(+), 77 deletions(-)
diff --git a/testcases/kernel/syscalls/geteuid/geteuid01.c b/testcases/kernel/syscalls/geteuid/geteuid01.c
index d02fb0a..0df8fae 100644
--- a/testcases/kernel/syscalls/geteuid/geteuid01.c
+++ b/testcases/kernel/syscalls/geteuid/geteuid01.c
@@ -1,87 +1,24 @@
+//SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
- *
- * This program is free software; you can redistribute it and/or modify it
- * under the terms of version 2 of the GNU General Public License as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it would be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- *
- * Further, this software is distributed without any warranty that it is
- * free of the rightful claim of any third person regarding infringement
- * or the like. Any license provided herein, whether implied or
- * otherwise, applies only to this software file. Patent licenses, if
- * any, provided herein do not apply to combinations of this program with
- * other software, or any other product whatsoever.
- *
- * You should have received a copy of the GNU General Public License along
- * with this program; if not, write the Free Software Foundation, Inc.,
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
- * Mountain View, CA 94043, or:
- *
- * http://www.sgi.com
- *
- * For further information regarding this notice, see:
- *
- * http://oss.sgi.com/projects/GenInfo/NoticeExplan/
- *
+ * Copyright (c) Linux Test Project, 2003-2023
+ * AUTHOR: William Roske, Dave Fenne
*/
-/*
- * AUTHOR : William Roske
- * CO-PILOT : Dave Fenner
+/*\
+ *[Description]
+ *
+ * Check the basic functionality of the geteuid() system call.
*/
-#include <sys/types.h>
-#include <errno.h>
-#include <string.h>
-#include <signal.h>
-
-#include "test.h"
-#include "compat_16.h"
-
-static void setup(void);
-static void cleanup(void);
-
-TCID_DEFINE(geteuid01);
-int TST_TOTAL = 1;
+#include "tst_test.h"
+#include "compat_tst_16.h"
-int main(int ac, char **av)
+static void verify_geteuid(void)
{
- int lc;
-
- tst_parse_opts(ac, av, NULL, NULL);
-
- setup();
-
- for (lc = 0; TEST_LOOPING(lc); lc++) {
-
- tst_count = 0;
-
- TEST(GETEUID(cleanup));
-
- if (TEST_RETURN < 0) {
- tst_resm(TFAIL | TTERRNO, "geteuid failed");
- continue; /* next loop for MTKERNEL */
- }
-
- tst_resm(TPASS, "geteuid returned %ld", TEST_RETURN);
- }
-
- cleanup();
- tst_exit();
-}
-
-static void setup(void)
-{
- tst_sig(NOFORK, DEF_HANDLER, cleanup);
- TEST_PAUSE;
+ TST_EXP_POSITIVE(GETEUID(), "geteuid()");
}
-static void cleanup(void)
-{
-}
+static struct tst_test test = {
+ .test_all = verify_geteuid,
+};
--
1.8.3.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api
2023-07-06 10:05 [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api Yang Xu
@ 2023-07-06 10:05 ` Yang Xu
2023-07-07 9:01 ` Petr Vorel
2023-07-10 13:46 ` [LTP] [PATCH v2 1/2] syscalls/geteuid01: " Petr Vorel
1 sibling, 1 reply; 9+ messages in thread
From: Yang Xu @ 2023-07-06 10:05 UTC (permalink / raw)
To: ltp
Signed-off-by: Yang Xu <xuyang2018.jy@fujitsu.com>
---
testcases/kernel/syscalls/geteuid/geteuid02.c | 89 +++++++--------------------
1 file changed, 23 insertions(+), 66 deletions(-)
diff --git a/testcases/kernel/syscalls/geteuid/geteuid02.c b/testcases/kernel/syscalls/geteuid/geteuid02.c
index e00f812..00b42c3 100644
--- a/testcases/kernel/syscalls/geteuid/geteuid02.c
+++ b/testcases/kernel/syscalls/geteuid/geteuid02.c
@@ -1,79 +1,36 @@
+//SPDX-License-Identifier: GPL-2.0-or-later
/*
* Copyright (c) International Business Machines Corp., 2001
- * Ported by Wayne Boyer
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See
- * the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ * Copyright (c) Linux Test Project, 2003-2023
+ * AUTHOR: Wayne Boyer
*/
-#include <pwd.h>
-#include <errno.h>
-
-#include "test.h"
-#include "compat_16.h"
-
-TCID_DEFINE(geteuid02);
-int TST_TOTAL = 1;
+/*\
+ *[Description]
+ *
+ * Check that geteuid() return value matches value from /proc/self/status.
+ */
-static void setup(void);
-static void cleanup(void);
+#include "tst_test.h"
+#include "compat_tst_16.h"
-int main(int ac, char **av)
+static void verify_geteuid(void)
{
- struct passwd *pwent;
- int lc;
- uid_t uid;
-
- tst_parse_opts(ac, av, NULL, NULL);
-
- setup();
+ long uid[4];
- for (lc = 0; TEST_LOOPING(lc); lc++) {
- tst_count = 0;
+ TST_EXP_POSITIVE(GETEUID(), "geteuid()");
- TEST(GETEUID(cleanup));
+ if (!TST_PASS)
+ return;
- if (TEST_RETURN == -1)
- tst_brkm(TBROK | TTERRNO, cleanup, "geteuid* failed");
+ SAFE_FILE_LINES_SCANF("/proc/self/status", "Uid: %ld %ld %ld %ld",
+ &uid[0], &uid[1], &uid[2], &uid[3]);
- uid = geteuid();
- pwent = getpwuid(uid);
-
- if (pwent == NULL)
- tst_resm(TFAIL | TERRNO, "getpwuid failed");
-
- UID16_CHECK(pwent->pw_uid, geteuid, cleanup);
- if (pwent->pw_uid != TEST_RETURN)
- tst_resm(TFAIL, "getpwuid value, %d, "
- "does not match geteuid "
- "value, %ld", pwent->pw_uid,
- TEST_RETURN);
- else
- tst_resm(TPASS, "values from geteuid "
- "and getpwuid match");
- }
-
- cleanup();
- tst_exit();
-}
-
-static void setup(void)
-{
- tst_sig(NOFORK, DEF_HANDLER, cleanup);
- TEST_PAUSE;
+ TST_EXP_EXPR(TST_RET == uid[1],
+ "geteuid() ret %ld == /proc/self/status EUID: %ld",
+ TST_RET, uid[1]);
}
-static void cleanup(void)
-{
-}
+static struct tst_test test = {
+ .test_all = verify_geteuid,
+};
--
1.8.3.1
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api
2023-07-06 10:05 ` [LTP] [PATCH v2 2/2] syscalls/geteuid02: " Yang Xu
@ 2023-07-07 9:01 ` Petr Vorel
2023-07-12 2:01 ` Yang Xu (Fujitsu)
0 siblings, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2023-07-07 9:01 UTC (permalink / raw)
To: Yang Xu; +Cc: ltp
Hi Xu,
> - if (pwent == NULL)
> - tst_resm(TFAIL | TERRNO, "getpwuid failed");
> -
> - UID16_CHECK(pwent->pw_uid, geteuid, cleanup);
Don't we need to use UID16_CHECK()? In the new API version from
compat_tst_16.h
Kind regards,
Petr
> - if (pwent->pw_uid != TEST_RETURN)
> - tst_resm(TFAIL, "getpwuid value, %d, "
> - "does not match geteuid "
> - "value, %ld", pwent->pw_uid,
> - TEST_RETURN);
> - else
> - tst_resm(TPASS, "values from geteuid "
> - "and getpwuid match");
> - }
...
> + TST_EXP_EXPR(TST_RET == uid[1],
> + "geteuid() ret %ld == /proc/self/status EUID: %ld",
> + TST_RET, uid[1]);
> }
> +static struct tst_test test = {
> + .test_all = verify_geteuid,
> +};
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api
2023-07-06 10:05 [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api Yang Xu
2023-07-06 10:05 ` [LTP] [PATCH v2 2/2] syscalls/geteuid02: " Yang Xu
@ 2023-07-10 13:46 ` Petr Vorel
2023-07-17 14:56 ` Yang Xu (Fujitsu)
1 sibling, 1 reply; 9+ messages in thread
From: Petr Vorel @ 2023-07-10 13:46 UTC (permalink / raw)
To: Yang Xu; +Cc: ltp
Hi Xu,
> + * Copyright (c) Linux Test Project, 2003-2023
> + * AUTHOR: William Roske, Dave Fenne
Very very nit: s/AUTHOR/Author/
Also, in the subject in both commits: s/api/API/
Reviewed-by: Petr Vorel <pvorel@suse.cz>
Kind regards,
Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api
2023-07-07 9:01 ` Petr Vorel
@ 2023-07-12 2:01 ` Yang Xu (Fujitsu)
2023-07-17 10:42 ` Yang Xu (Fujitsu)
0 siblings, 1 reply; 9+ messages in thread
From: Yang Xu (Fujitsu) @ 2023-07-12 2:01 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp@lists.linux.it
Hi Petr,
> Hi Xu,
>
>> - if (pwent == NULL)
>> - tst_resm(TFAIL | TERRNO, "getpwuid failed");
>> -
>> - UID16_CHECK(pwent->pw_uid, geteuid, cleanup);
> Don't we need to use UID16_CHECK()? In the new API version from
> compat_tst_16.h
>
>
Previously, the EUID was obtained from the return value of getpwuid()
and compared with the return value of geteuid() to check for a match.
This approach seemed more like a test of getpwuid() rather than testing
geteuid() itself.
EUID is stored in /proc/self/status, and we can directly obtain it for
comparison with the return from geteuid().
Best Regards
Yang Xu
> Kind regards,
> Petr
>
>> - if (pwent->pw_uid != TEST_RETURN)
>> - tst_resm(TFAIL, "getpwuid value, %d, "
>> - "does not match geteuid "
>> - "value, %ld", pwent->pw_uid,
>> - TEST_RETURN);
>> - else
>> - tst_resm(TPASS, "values from geteuid "
>> - "and getpwuid match");
>> - }
> ...
>> + TST_EXP_EXPR(TST_RET == uid[1],
>> + "geteuid() ret %ld == /proc/self/status EUID: %ld",
>> + TST_RET, uid[1]);
>> }
>
>> +static struct tst_test test = {
>> + .test_all = verify_geteuid,
>> +};
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api
2023-07-12 2:01 ` Yang Xu (Fujitsu)
@ 2023-07-17 10:42 ` Yang Xu (Fujitsu)
2023-07-17 13:11 ` Petr Vorel
0 siblings, 1 reply; 9+ messages in thread
From: Yang Xu (Fujitsu) @ 2023-07-17 10:42 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp@lists.linux.it
Hi Petr,
Kindly ping,
This case references getuid03,
the URL for providing modification suggestions is as follows:
https://patchwork.ozlabs.org/project/ltp/patch/20211109085745.21531-2-tangmeng@uniontech.com/
Best Regards
Yang Xu
> Hi Petr,
>
>> Hi Xu,
>>
>>> - if (pwent == NULL)
>>> - tst_resm(TFAIL | TERRNO, "getpwuid failed");
>>> -
>>> - UID16_CHECK(pwent->pw_uid, geteuid, cleanup);
>> Don't we need to use UID16_CHECK()? In the new API version from
>> compat_tst_16.h
>>
> >
> Previously, the EUID was obtained from the return value of getpwuid()
> and compared with the return value of geteuid() to check for a match.
> This approach seemed more like a test of getpwuid() rather than testing
> geteuid() itself.
>
> EUID is stored in /proc/self/status, and we can directly obtain it for
> comparison with the return from geteuid().
>
> Best Regards
> Yang Xu
>
>> Kind regards,
>> Petr
>>
>>> - if (pwent->pw_uid != TEST_RETURN)
>>> - tst_resm(TFAIL, "getpwuid value, %d, "
>>> - "does not match geteuid "
>>> - "value, %ld", pwent->pw_uid,
>>> - TEST_RETURN);
>>> - else
>>> - tst_resm(TPASS, "values from geteuid "
>>> - "and getpwuid match");
>>> - }
>> ...
>>> + TST_EXP_EXPR(TST_RET == uid[1],
>>> + "geteuid() ret %ld == /proc/self/status EUID: %ld",
>>> + TST_RET, uid[1]);
>>> }
>>
>>> +static struct tst_test test = {
>>> + .test_all = verify_geteuid,
>>> +};
>
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 2/2] syscalls/geteuid02: Convert into new api
2023-07-17 10:42 ` Yang Xu (Fujitsu)
@ 2023-07-17 13:11 ` Petr Vorel
0 siblings, 0 replies; 9+ messages in thread
From: Petr Vorel @ 2023-07-17 13:11 UTC (permalink / raw)
To: Yang Xu (Fujitsu); +Cc: ltp@lists.linux.it
Hi Xu,
> Hi Petr,
> Kindly ping,
I'm sorry, I thought I replied, but obviously I forget.
Go ahead and merge, please.
Reviewed-by: Petr Vorel <pvorel@suse.cz>
> This case references getuid03,
> the URL for providing modification suggestions is as follows:
> https://patchwork.ozlabs.org/project/ltp/patch/20211109085745.21531-2-tangmeng@uniontech.com/
Thanks for this info.
Kind regards,
Petr
...
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api
2023-07-10 13:46 ` [LTP] [PATCH v2 1/2] syscalls/geteuid01: " Petr Vorel
@ 2023-07-17 14:56 ` Yang Xu (Fujitsu)
2023-07-18 10:02 ` Petr Vorel
0 siblings, 1 reply; 9+ messages in thread
From: Yang Xu (Fujitsu) @ 2023-07-17 14:56 UTC (permalink / raw)
To: Petr Vorel; +Cc: ltp@lists.linux.it
Hi Petr
> Hi Xu,
>
>> + * Copyright (c) Linux Test Project, 2003-2023
>> + * AUTHOR: William Roske, Dave Fenne
> Very very nit: s/AUTHOR/Author/
>
> Also, in the subject in both commits: s/api/API/
>
> Reviewed-by: Petr Vorel <pvorel@suse.cz>
Thanks for your review.
I merged this patch set and modified getuid01 to origin gpl-2.0-only.
But It seems all of uid/gid case miss to use COMPAT_TST_16_H:= 1 in
Makefile except syscalls/setuid.
I search the history, it seems related to a bugfix[1] when
touch/modify/create fiel in syscall/utils.
[1]https://github.com/linux-test-project/ltp/commit/631d16671d876524588320ee71fd23fe22750307
Best Regards
Yang Xu
>
> Kind regards,
> Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api
2023-07-17 14:56 ` Yang Xu (Fujitsu)
@ 2023-07-18 10:02 ` Petr Vorel
0 siblings, 0 replies; 9+ messages in thread
From: Petr Vorel @ 2023-07-18 10:02 UTC (permalink / raw)
To: Yang Xu (Fujitsu); +Cc: ltp@lists.linux.it
Hi Xu,
> Hi Petr
> > Hi Xu,
> >> + * Copyright (c) Linux Test Project, 2003-2023
> >> + * AUTHOR: William Roske, Dave Fenne
> > Very very nit: s/AUTHOR/Author/
> > Also, in the subject in both commits: s/api/API/
> > Reviewed-by: Petr Vorel <pvorel@suse.cz>
> Thanks for your review.
> I merged this patch set and modified getuid01 to origin gpl-2.0-only.
> But It seems all of uid/gid case miss to use COMPAT_TST_16_H:= 1 in
> Makefile except syscalls/setuid.
> I search the history, it seems related to a bugfix[1] when
> touch/modify/create fiel in syscall/utils.
> [1]https://github.com/linux-test-project/ltp/commit/631d16671d876524588320ee71fd23fe22750307
Good point. I send a patch which switches the logic (old tests have variable):
https://patchwork.ozlabs.org/project/ltp/patch/20230718100050.1162482-1-pvorel@suse.cz/
Kind regards,
Petr
> Best Regards
> Yang Xu
> > Kind regards,
> > Petr
--
Mailing list info: https://lists.linux.it/listinfo/ltp
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2023-07-18 10:02 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-06 10:05 [LTP] [PATCH v2 1/2] syscalls/geteuid01: Convert into new api Yang Xu
2023-07-06 10:05 ` [LTP] [PATCH v2 2/2] syscalls/geteuid02: " Yang Xu
2023-07-07 9:01 ` Petr Vorel
2023-07-12 2:01 ` Yang Xu (Fujitsu)
2023-07-17 10:42 ` Yang Xu (Fujitsu)
2023-07-17 13:11 ` Petr Vorel
2023-07-10 13:46 ` [LTP] [PATCH v2 1/2] syscalls/geteuid01: " Petr Vorel
2023-07-17 14:56 ` Yang Xu (Fujitsu)
2023-07-18 10:02 ` Petr Vorel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox