Hi Yamato,

On Tue, 2008-09-09 at 17:25 +0900, Masatake YAMATO wrote:
> Hi,
> 
> I worked on 2 test cases for foogid16 system calls; and I will do 5 more.
> All these test cases have the same macro. So I'd like to introduce 
> compat_gid.h;
> and put the macro to the file.
> 
> Could you add compat_gid.h to testcases/kernel/syscalls/utils/ and apply 
> patches
> for existing test cases?

Done. Thanks.

Regards--
Subrata

> 
> Here after I'd like to use the compat_gid.h in newly ported test cases.
> 
> Signed-off-by: Masatake YAMATO <[EMAIL PROTECTED]>
> 
> plain text document attachment (compat_gid.h)
> /*
>  *
>  *   Copyright (c) Red Hat Inc., 2008
>  *
>  *   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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
>  */
> 
> /* Author: Masatake YAMATO <[EMAIL PROTECTED]> */
> 
> #ifndef __COMPAT_GID_16_H__
> #define __COMPAT_GID_16_H__
> 
> 
> #include <asm/posix_types.h>
> 
> 
> #ifdef TST_USE_COMPAT16_SYSCALL
> typedef __kernel_old_gid_t GID_T;
> int 
> GID_SIZE_CHECK(gid_t gid)
> {
>       /* See high2lowgid in linux/highuid.h
>          Return 0 if gid is too large to store
>          it to __kernel_old_gid_t. */
>       return ((gid) & ~0xFFFF)? 0: 1;
> }
> 
> #else
> 
> typedef gid_t GID_T;
> int 
> GID_SIZE_CHECK(gid_t gid)
> {
>       return 1;
> }
> 
> #endif
> 
> #endif /* __SETGID_COMPAT_16_H__ */
> plain text document attachment (compat_gid.patch)
> Index: testcases/kernel/syscalls/setgid/Makefile
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgid/Makefile,v
> retrieving revision 1.11
> diff -c -r1.11 Makefile
> *** testcases/kernel/syscalls/setgid/Makefile 25 Aug 2008 14:10:02 -0000      
> 1.11
> --- testcases/kernel/syscalls/setgid/Makefile 9 Sep 2008 08:12:09 -0000
> ***************
> *** 16,22 ****
>   #  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  
> USA
>   #
>   
> ! CFLAGS += -I../../../../include -Wall
>   LDLIBS += -L../../../../lib -lltp
>   
>   include ../utils/compat_16.mk
> --- 16,22 ----
>   #  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  
> USA
>   #
>   
> ! CFLAGS += -I../../../../include -I../utils -Wall
>   LDLIBS += -L../../../../lib -lltp
>   
>   include ../utils/compat_16.mk
> Index: testcases/kernel/syscalls/setgid/compat_16.h
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgid/compat_16.h,v
> retrieving revision 1.2
> diff -c -r1.2 compat_16.h
> *** testcases/kernel/syscalls/setgid/compat_16.h      19 Aug 2008 07:00:50 
> -0000      1.2
> --- testcases/kernel/syscalls/setgid/compat_16.h      9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 23,77 ****
>   #define __SETGID_COMPAT_16_H__
>   
>   
> - #include <asm/posix_types.h>
>   #include "linux_syscall_numbers.h"
>   
>   
>   #ifdef TST_USE_COMPAT16_SYSCALL
> ! typedef __kernel_old_gid_t GID_T;
> ! int 
> ! COMPAT_SIZE_CHECK(gid_t gid)
> ! {
> !     /* See high2lowgid in linux/highuid.h
> !        Return 0 if gid is too large to store
> !        it to __kernel_old_gid_t. */
> !     return ((gid) & ~0xFFFF)? 0: 1;
> ! }
>   int 
>   SETGID(GID_T gid)
>   {
>       return syscall(__NR_setgid, gid);
>   }
>   GID_T
>   GETGID(void)
>   {
>       gid_t gid;
>   
>       gid = getgid();
> !     if (!COMPAT_SIZE_CHECK(gid))
>         tst_brkm(TBROK, 
>                  cleanup, 
>                  "gid for the current process is too large for testing 
> setgid16");
>   
>       return (GID_T)gid;
>   }
>   #else
> ! typedef gid_t GID_T;
> ! int 
> ! COMPAT_SIZE_CHECK(gid_t gid)
> ! {
> !     return 1;
> ! }
>   int 
>   SETGID(GID_T gid)
>   {
>       return setgid(gid);
>   }
>   GID_T
>   GETGID(void)
>   {
>       return getgid();
>   }
>   #endif
>   
>   #endif /* __SETGID_COMPAT_16_H__ */
> --- 23,68 ----
>   #define __SETGID_COMPAT_16_H__
>   
>   
>   #include "linux_syscall_numbers.h"
> + #include "compat_gid.h"
>   
>   
>   #ifdef TST_USE_COMPAT16_SYSCALL
> ! 
>   int 
>   SETGID(GID_T gid)
>   {
>       return syscall(__NR_setgid, gid);
>   }
> + 
>   GID_T
>   GETGID(void)
>   {
>       gid_t gid;
>   
>       gid = getgid();
> !     if (!GID_SIZE_CHECK(gid))
>         tst_brkm(TBROK, 
>                  cleanup, 
>                  "gid for the current process is too large for testing 
> setgid16");
>   
>       return (GID_T)gid;
>   }
> + 
>   #else
> ! 
>   int 
>   SETGID(GID_T gid)
>   {
>       return setgid(gid);
>   }
> + 
>   GID_T
>   GETGID(void)
>   {
>       return getgid();
>   }
> + 
>   #endif
>   
>   #endif /* __SETGID_COMPAT_16_H__ */
> Index: testcases/kernel/syscalls/setgid/setgid02.c
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgid/setgid02.c,v
> retrieving revision 1.6
> diff -c -r1.6 setgid02.c
> *** testcases/kernel/syscalls/setgid/setgid02.c       20 Aug 2008 10:55:21 
> -0000      1.6
> --- testcases/kernel/syscalls/setgid/setgid02.c       9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 93,99 ****
>                                "%s", root);
>               }
>   
> !             if (!COMPAT_SIZE_CHECK(rootpwent->pw_gid)) {
>                tst_brkm(TBROK, 
>                         cleanup, 
>                         "gid for `%s' is too large for testing setgid16", 
> --- 93,99 ----
>                                "%s", root);
>               }
>   
> !             if (!GID_SIZE_CHECK(rootpwent->pw_gid)) {
>                tst_brkm(TBROK, 
>                         cleanup, 
>                         "gid for `%s' is too large for testing setgid16", 
> ***************
> *** 134,140 ****
>           }
>       ltpuser = getpwnam(nobody_uid);
>   
> !      if (!COMPAT_SIZE_CHECK(ltpuser->pw_gid)) {
>                tst_brkm(TBROK, 
>                         cleanup, 
>                         "gid for `%s' is too large for testing setgid16", 
> --- 134,140 ----
>           }
>       ltpuser = getpwnam(nobody_uid);
>   
> !      if (!GID_SIZE_CHECK(ltpuser->pw_gid)) {
>                tst_brkm(TBROK, 
>                         cleanup, 
>                         "gid for `%s' is too large for testing setgid16", 
> Index: testcases/kernel/syscalls/setgid/setgid03.c
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgid/setgid03.c,v
> retrieving revision 1.5
> diff -c -r1.5 setgid03.c
> *** testcases/kernel/syscalls/setgid/setgid03.c       20 Aug 2008 10:55:21 
> -0000      1.5
> --- testcases/kernel/syscalls/setgid/setgid03.c       9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 138,144 ****
>                        "id %s", ltpuser1);
>       }
>   
> !     if (!(COMPAT_SIZE_CHECK(rootpwent->pw_gid))) {
>               tst_brkm(TBROK, 
>                        cleanup, 
>                        "gid for `%s' is too large for testing setgid16", 
> --- 138,144 ----
>                        "id %s", ltpuser1);
>       }
>   
> !     if (!(GID_SIZE_CHECK(rootpwent->pw_gid))) {
>               tst_brkm(TBROK, 
>                        cleanup, 
>                        "gid for `%s' is too large for testing setgid16", 
> Index: testcases/kernel/syscalls/setgroups/Makefile
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgroups/Makefile,v
> retrieving revision 1.8
> diff -c -r1.8 Makefile
> *** testcases/kernel/syscalls/setgroups/Makefile      27 Aug 2008 12:02:42 
> -0000      1.8
> --- testcases/kernel/syscalls/setgroups/Makefile      9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 16,22 ****
>   #  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  
> USA
>   #
>   
> ! CFLAGS += -I../../../../include -Wall
>   LDLIBS += -L../../../../lib -lltp
>   
>   include ../utils/compat_16.mk
> --- 16,22 ----
>   #  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  
> USA
>   #
>   
> ! CFLAGS += -I../../../../include -I../utils -Wall
>   LDLIBS += -L../../../../lib -lltp
>   
>   include ../utils/compat_16.mk
> Index: testcases/kernel/syscalls/setgroups/compat_16.h
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgroups/compat_16.h,v
> retrieving revision 1.1
> diff -c -r1.1 compat_16.h
> *** testcases/kernel/syscalls/setgroups/compat_16.h   27 Aug 2008 12:02:42 
> -0000      1.1
> --- testcases/kernel/syscalls/setgroups/compat_16.h   9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 22,44 ****
>   #ifndef __SETGROUPS_COMPAT_16_H__
>   #define __SETGROUPS_COMPAT_16_H__
>   
> ! #include <asm/posix_types.h>
>   #include "linux_syscall_numbers.h"
>   
>   /* For avoiding circular dependency. */
>   extern void cleanup(void);
>   
>   #ifdef TST_USE_COMPAT16_SYSCALL
> - typedef __kernel_old_gid_t GID_T;
> - 
> - int 
> - COMPAT_SIZE_CHECK(gid_t gid)
> - {
> -     /* See high2lowgid in linux/highuid.h
> -        Return 0 if gid is too large to store
> -        it to __kernel_old_gid_t. */
> -     return ((gid) & ~0xFFFF)? 0: 1;
> - }
>   
>   long
>   SETGROUPS(int gidsetsize, GID_T *list)
> --- 22,35 ----
>   #ifndef __SETGROUPS_COMPAT_16_H__
>   #define __SETGROUPS_COMPAT_16_H__
>   
> ! #include "compat_gid.h"
>   #include "linux_syscall_numbers.h"
>   
> + 
>   /* For avoiding circular dependency. */
>   extern void cleanup(void);
>   
>   #ifdef TST_USE_COMPAT16_SYSCALL
>   
>   long
>   SETGROUPS(int gidsetsize, GID_T *list)
> ***************
> *** 64,70 ****
>         goto out;
>     
>       for (i = 0; i < size16; i++) {
> !             if (!COMPAT_SIZE_CHECK(list32[i]))
>                 tst_brkm(TBROK,
>                          cleanup,
>                          "gid returned from getgroups is too large for 
> testing setgroups32");
> --- 55,61 ----
>         goto out;
>     
>       for (i = 0; i < size16; i++) {
> !             if (!GID_SIZE_CHECK(list32[i]))
>                 tst_brkm(TBROK,
>                          cleanup,
>                          "gid returned from getgroups is too large for 
> testing setgroups32");
> ***************
> *** 77,84 ****
>   }
>   
>   #else
> - typedef gid_t GID_T;
> - 
>   int
>   SETGROUPS(size_t size, const GID_T *list)
>   {
> --- 68,73 ----
> ***************
> *** 91,101 ****
>       return getgroups(size, list);
>   }
>   
> - int 
> - COMPAT_SIZE_CHECK(gid_t gid)
> - {
> -   return 1;
> - }
>   #endif      /* TST_USE_COMPAT16_SYSCALL */
>   
>   #endif /* __SETGROUPS_COMPAT_16_H__ */
> --- 80,85 ----
> Index: testcases/kernel/syscalls/setgroups/setgroups02.c
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgroups/setgroups02.c,v
> retrieving revision 1.5
> diff -c -r1.5 setgroups02.c
> *** testcases/kernel/syscalls/setgroups/setgroups02.c 27 Aug 2008 12:02:42 
> -0000      1.5
> --- testcases/kernel/syscalls/setgroups/setgroups02.c 9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 187,193 ****
>               tst_brkm(TFAIL, cleanup, "getpwnam(2) of %s Failed", TESTUSER);
>       }
>   
> !     if (!COMPAT_SIZE_CHECK(user_info->pw_gid)) {
>               tst_brkm(TBROK,
>                        cleanup,
>                        "gid returned from getpwnam is too large for testing 
> setgroups16");
> --- 187,193 ----
>               tst_brkm(TFAIL, cleanup, "getpwnam(2) of %s Failed", TESTUSER);
>       }
>   
> !     if (!GID_SIZE_CHECK(user_info->pw_gid)) {
>               tst_brkm(TBROK,
>                        cleanup,
>                        "gid returned from getpwnam is too large for testing 
> setgroups16");
> Index: testcases/kernel/syscalls/setgroups/setgroups03.c
> ===================================================================
> RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/setgroups/setgroups03.c,v
> retrieving revision 1.10
> diff -c -r1.10 setgroups03.c
> *** testcases/kernel/syscalls/setgroups/setgroups03.c 27 Aug 2008 12:02:42 
> -0000      1.10
> --- testcases/kernel/syscalls/setgroups/setgroups03.c 9 Sep 2008 08:12:09 
> -0000
> ***************
> *** 232,238 ****
>               tst_brkm(TFAIL, cleanup, "getpwnam(2) of %s Failed", TESTUSER);
>       }
>   
> !     if (!COMPAT_SIZE_CHECK(user_info->pw_gid)) {
>               tst_brkm(TBROK,
>                        cleanup,
>                        "gid returned from getpwnam is too large for testing 
> setgroups16");
> --- 232,238 ----
>               tst_brkm(TFAIL, cleanup, "getpwnam(2) of %s Failed", TESTUSER);
>       }
>   
> !     if (!GID_SIZE_CHECK(user_info->pw_gid)) {
>               tst_brkm(TBROK,
>                        cleanup,
>                        "gid returned from getpwnam is too large for testing 
> setgroups16");
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________ Ltp-list mailing list 
> [email protected] 
> https://lists.sourceforge.net/lists/listinfo/ltp-list


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to