All of lore.kernel.org
 help / color / mirror / Atom feed
* [LTP] [PATCH 1/2] getuid/getuid01: Convert to new API
@ 2021-11-09  8:57 tangmeng
  2021-11-09  8:57 ` [LTP] [PATCH 2/2] getuid/getuid03: " tangmeng
  2021-11-10 10:44 ` [LTP] [PATCH 1/2] getuid/getuid01: " Cyril Hrubis
  0 siblings, 2 replies; 4+ messages in thread
From: tangmeng @ 2021-11-09  8:57 UTC (permalink / raw)
  To: ltp; +Cc: tangmeng

Signed-off-by: tangmeng <tangmeng@uniontech.com>
---
 testcases/kernel/syscalls/getuid/getuid01.c | 88 ++++-----------------
 1 file changed, 17 insertions(+), 71 deletions(-)

diff --git a/testcases/kernel/syscalls/getuid/getuid01.c b/testcases/kernel/syscalls/getuid/getuid01.c
index cf8c77424..6e8cee96a 100644
--- a/testcases/kernel/syscalls/getuid/getuid01.c
+++ b/testcases/kernel/syscalls/getuid/getuid01.c
@@ -1,84 +1,30 @@
+// 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/
- */
-/*
  *    AUTHOR		: William Roske
  *    CO-PILOT		: Dave Fenner
  */
-#include <sys/types.h>
-#include <fcntl.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);
+/*\
+ * [Description]
+ *
+ * Check the basic functionality of the getuid() system call.
+ */

-TCID_DEFINE(getuid01);
-int TST_TOTAL = 1;
+#include "tst_test.h"
+#include "compat_tst_16.h"

-int main(int ac, char **av)
+static void verify_getuid(void)
 {
-	int lc;
+	TEST(GETUID());

-	tst_parse_opts(ac, av, NULL, NULL);
-
-	setup();
-
-	for (lc = 0; TEST_LOOPING(lc); lc++) {
-
-		tst_count = 0;
-
-		TEST(GETUID(cleanup));
-
-		if (TEST_RETURN == -1)
-			tst_resm(TFAIL | TTERRNO, "getuid failed");
-		else
-			tst_resm(TPASS, "getuid returned %ld", TEST_RETURN);
-
-	}
-
-	cleanup();
-	tst_exit();
-}
-
-static void setup(void)
-{
-	tst_sig(NOFORK, DEF_HANDLER, cleanup);
-	TEST_PAUSE;
+	if (TST_RET == -1)
+		tst_res(TFAIL | TTERRNO, "getuid failed");
+	else
+		tst_res(TPASS, "getuid returned %ld", TST_RET);
 }

-static void cleanup(void)
-{
-}
+static struct tst_test test = {
+	.test_all = verify_getuid,
+};
--
2.20.1




-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [LTP] [PATCH 2/2] getuid/getuid03: Convert to new API
  2021-11-09  8:57 [LTP] [PATCH 1/2] getuid/getuid01: Convert to new API tangmeng
@ 2021-11-09  8:57 ` tangmeng
  2021-11-10 11:06   ` Cyril Hrubis
  2021-11-10 10:44 ` [LTP] [PATCH 1/2] getuid/getuid01: " Cyril Hrubis
  1 sibling, 1 reply; 4+ messages in thread
From: tangmeng @ 2021-11-09  8:57 UTC (permalink / raw)
  To: ltp; +Cc: tangmeng

Signed-off-by: tangmeng <tangmeng@uniontech.com>
---
 testcases/kernel/syscalls/getuid/getuid03.c | 90 ++++++---------------
 1 file changed, 26 insertions(+), 64 deletions(-)

diff --git a/testcases/kernel/syscalls/getuid/getuid03.c b/testcases/kernel/syscalls/getuid/getuid03.c
index 7c81c628e..f551e982e 100644
--- a/testcases/kernel/syscalls/getuid/getuid03.c
+++ b/testcases/kernel/syscalls/getuid/getuid03.c
@@ -1,23 +1,12 @@
+// 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
  */

-/*
+/*\
+ * [Description]
+ *
  * Testcase to check the basic functionality of the getuid() system call.
  *
  * For functionality test the return value from getgid() is compared to passwd
@@ -25,64 +14,37 @@
  */

 #include <pwd.h>
-#include <errno.h>
+#include "tst_test.h"
+#include "compat_tst_16.h"

-#include "test.h"
-#include "compat_16.h"
-
-TCID_DEFINE(getuid03);
-int TST_TOTAL = 1;
-
-static void setup(void);
-static void cleanup(void);
-
-int main(int ac, char **av)
+static void verify_getuid(void)
 {
 	struct passwd *pwent;
-	int lc;
 	uid_t uid;

-	tst_parse_opts(ac, av, NULL, NULL);
-
-	setup();
+	TEST(GETUID());

-	for (lc = 0; TEST_LOOPING(lc); lc++) {
+	if (TST_RET == -1)
+		tst_brk(TBROK | TTERRNO, "getuid failed");

-		tst_count = 0;
+	uid = getuid();
+	pwent = getpwuid(uid);

-		TEST(GETUID(cleanup));
+	if (pwent == NULL)
+		tst_res(TFAIL | TERRNO, "getpwuid failed");

-		if (TEST_RETURN == -1)
-			tst_brkm(TBROK | TTERRNO, cleanup, "getuid failed");
+	UID16_CHECK(pwent->pw_uid, getuid);

-		uid = getuid();
-		pwent = getpwuid(uid);
-
-		if (pwent == NULL)
-			tst_resm(TFAIL | TERRNO, "getpwuid failed");
-
-		UID16_CHECK(pwent->pw_uid, getuid, cleanup);
-
-		if (pwent->pw_uid != TEST_RETURN)
-			tst_resm(TFAIL, "getpwuid value, %d, "
-				 "does not match getuid "
-				 "value, %ld", pwent->pw_uid,
-				 TEST_RETURN);
-		else
-			tst_resm(TPASS, "values from getuid "
-				 "and getpwuid match");
-	}
-	cleanup();
-	tst_exit();
+	if (pwent->pw_uid != TST_RET)
+		tst_res(TFAIL, "getpwuid value, %d, "
+			 "does not match getuid "
+			 "value, %ld", pwent->pw_uid,
+			 TST_RET);
+	else
+		tst_res(TPASS, "values from getuid "
+			 "and getpwuid match");
 }

-static void setup(void)
-{
-	tst_sig(NOFORK, DEF_HANDLER, cleanup);
-
-	TEST_PAUSE;
-}
-
-static void cleanup(void)
-{
-}
+static struct tst_test test = {
+        .test_all = verify_getuid,
+};
--
2.20.1




-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [LTP] [PATCH 1/2] getuid/getuid01: Convert to new API
  2021-11-09  8:57 [LTP] [PATCH 1/2] getuid/getuid01: Convert to new API tangmeng
  2021-11-09  8:57 ` [LTP] [PATCH 2/2] getuid/getuid03: " tangmeng
@ 2021-11-10 10:44 ` Cyril Hrubis
  1 sibling, 0 replies; 4+ messages in thread
From: Cyril Hrubis @ 2021-11-10 10:44 UTC (permalink / raw)
  To: tangmeng; +Cc: ltp

Hi!
> Signed-off-by: tangmeng <tangmeng@uniontech.com>
> ---
>  testcases/kernel/syscalls/getuid/getuid01.c | 88 ++++-----------------
>  1 file changed, 17 insertions(+), 71 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/getuid/getuid01.c b/testcases/kernel/syscalls/getuid/getuid01.c
> index cf8c77424..6e8cee96a 100644
> --- a/testcases/kernel/syscalls/getuid/getuid01.c
> +++ b/testcases/kernel/syscalls/getuid/getuid01.c
> @@ -1,84 +1,30 @@
> +// SPDX-License-Identifier: GPL-2.0-or-later

The license below is GPL-2.0 not GPL-2.0-or-later.

Please make sure that you replace the license with correct tag.

>  /*
>   * 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/
> - */
> -/*
>   *    AUTHOR		: William Roske
>   *    CO-PILOT		: Dave Fenner
>   */
> -#include <sys/types.h>
> -#include <fcntl.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);
> +/*\
> + * [Description]
> + *
> + * Check the basic functionality of the getuid() system call.
> + */
> 
> -TCID_DEFINE(getuid01);
> -int TST_TOTAL = 1;
> +#include "tst_test.h"
> +#include "compat_tst_16.h"
> 
> -int main(int ac, char **av)
> +static void verify_getuid(void)
>  {
> -	int lc;
> +	TEST(GETUID());
> 
> -	tst_parse_opts(ac, av, NULL, NULL);
> -
> -	setup();
> -
> -	for (lc = 0; TEST_LOOPING(lc); lc++) {
> -
> -		tst_count = 0;
> -
> -		TEST(GETUID(cleanup));
> -
> -		if (TEST_RETURN == -1)
> -			tst_resm(TFAIL | TTERRNO, "getuid failed");
> -		else
> -			tst_resm(TPASS, "getuid returned %ld", TEST_RETURN);
> -
> -	}
> -
> -	cleanup();
> -	tst_exit();
> -}
> -
> -static void setup(void)
> -{
> -	tst_sig(NOFORK, DEF_HANDLER, cleanup);
> -	TEST_PAUSE;
> +	if (TST_RET == -1)
> +		tst_res(TFAIL | TTERRNO, "getuid failed");
> +	else
> +		tst_res(TPASS, "getuid returned %ld", TST_RET);

This can be just TST_EXP_POSSITIVE()

>  }
> 
> -static void cleanup(void)
> -{
> -}
> +static struct tst_test test = {
> +	.test_all = verify_getuid,
> +};
> --
> 2.20.1
> 
> 
> 
> 
> -- 
> Mailing list info: https://lists.linux.it/listinfo/ltp

-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LTP] [PATCH 2/2] getuid/getuid03: Convert to new API
  2021-11-09  8:57 ` [LTP] [PATCH 2/2] getuid/getuid03: " tangmeng
@ 2021-11-10 11:06   ` Cyril Hrubis
  0 siblings, 0 replies; 4+ messages in thread
From: Cyril Hrubis @ 2021-11-10 11:06 UTC (permalink / raw)
  To: tangmeng; +Cc: ltp

Hi!
> +static void verify_getuid(void)
>  {
>  	struct passwd *pwent;
> -	int lc;
>  	uid_t uid;
> 
> -	tst_parse_opts(ac, av, NULL, NULL);
> -
> -	setup();
> +	TEST(GETUID());
> 
> -	for (lc = 0; TEST_LOOPING(lc); lc++) {
> +	if (TST_RET == -1)
> +		tst_brk(TBROK | TTERRNO, "getuid failed");
> 
> -		tst_count = 0;
> +	uid = getuid();

We have the return from getuid() stored in TST_RET at this point, why do
we call it again here?

> +	pwent = getpwuid(uid);
> 
> -		TEST(GETUID(cleanup));
> +	if (pwent == NULL)
> +		tst_res(TFAIL | TERRNO, "getpwuid failed");

I guess that we should exit the test here, otherwise it will segfault,
so this should be tst_brk(TBROK | TERRNO, ...);

Also I do wonder if comparing the return from getuid() to the return
from getpwuid(getguid()) makes any sense. We lookup password entry given
an uid then check that the password entry uid matches. That sounds like
a test for getpwuid() more than anything else.

I wonder what would be better check. We should rather than this check
the return value against the /proc/self/status where all the UIDs are
listed as well.


-- 
Cyril Hrubis
chrubis@suse.cz

-- 
Mailing list info: https://lists.linux.it/listinfo/ltp

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-11-10 11:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-11-09  8:57 [LTP] [PATCH 1/2] getuid/getuid01: Convert to new API tangmeng
2021-11-09  8:57 ` [LTP] [PATCH 2/2] getuid/getuid03: " tangmeng
2021-11-10 11:06   ` Cyril Hrubis
2021-11-10 10:44 ` [LTP] [PATCH 1/2] getuid/getuid01: " Cyril Hrubis

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.