On Mon, Jul 20, 2009 at 7:55 PM, Wang Yong<[email protected]> wrote:
> This patch also fixed the path which we pass to setup_file(). If
> progdir is not a absolute pathname of the working directory, the file
> open will fail.
>
> This patch fixed the problem.
>
> Signed-off-by: WangYong <[email protected]>
>
> diff -Nurp a/testcases/kernel/syscalls/utimes/utimes01.c 
> b/testcases/kernel/syscalls/utimes/utimes01.c
> --- a/testcases/kernel/syscalls/utimes/utimes01.c       2009-07-21 
> 08:51:05.000000000 +0800
> +++ b/testcases/kernel/syscalls/utimes/utimes01.c       2009-07-21 
> 08:55:01.000000000 +0800
> @@ -138,7 +138,6 @@ void setup() {
>  */
>  static int opt_debug;
>  static char *progname;
> -static char *progdir;
>
>  enum test_type {
>                NORMAL,
> @@ -232,7 +231,7 @@ static int do_test(struct test_case *tc)
>         struct stat st;
>         uid_t old_uid;
>
> -        TEST(rc = setup_file(progdir, "test.file", fpath));
> +        TEST(rc = setup_file(TESTDIR, "test.file", fpath));
>         if (rc < 0)
>                 return 1;
>
> @@ -339,8 +338,6 @@ int main(int ac, char **av) {
>        progname = strchr(av[0], '/');
>         progname = progname ? progname + 1 : av[0];
>
> -       progdir = strdup(av[0]);
> -        progdir = dirname(progdir);
>
>         /* parse standard options */
>         if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char 
> *)NULL){

Wang,
    Would you please verify this diff in your environment too? It does
what your diff did, in addition to fixes a harmless warning with
-Wnonnull:

1. Fix the utimes testcase so that it passes with the appropriate
non-hardcoded directory, as provided by Wang Yong
<[email protected]>
2. Fix a compiler warning by using an intermediary const char*
variable, as casting alone was still causing compiler warnings in gcc
4.3.2.

Signed-off-by: Garrett Cooper <[email protected]>

Index: testcases/kernel/syscalls/utimes/utimes01.c
===================================================================
RCS file: /cvsroot/ltp/ltp/testcases/kernel/syscalls/utimes/utimes01.c,v
retrieving revision 1.2
diff -u -r1.2 utimes01.c
--- testcases/kernel/syscalls/utimes/utimes01.c 10 Jul 2009 10:14:59 -0000     1
.2
+++ testcases/kernel/syscalls/utimes/utimes01.c 21 Jul 2009 04:20:44 -0000
@@ -138,7 +138,6 @@
  */
 static int opt_debug;
 static char *progname;
-static char *progdir;

 enum test_type {
                NORMAL,
@@ -232,7 +231,7 @@
         struct stat st;
         uid_t old_uid;

-        TEST(rc = setup_file(progdir, "test.file", fpath));
+        TEST(rc = setup_file(TESTDIR, "test.file", fpath));
         if (rc < 0)
                 return 1;

@@ -257,9 +256,19 @@
                 fpath[len - 1] = '\0';
         }
         errno = 0;
-        if (tc->ttype == NO_FNAME)
-                TEST(sys_ret = utimes(NULL, tv));
-        else
+        if (tc->ttype == NO_FNAME) {
+                /**
+                 * Note (garrcoop):
+                 *
+                 * If you do NULL directly, then gcc [4.3] will complain when
+                 * one specifies -Wnonnull in CPPFLAGS. This is a negative
+                 * test, but let's not allow the compiler to complain about
+                 * something trivial like this.
+                 **/
+                const char *dummy = NULL;
+                TEST(sys_ret = utimes(dummy, tv));
+        }
+       else
                 TEST(sys_ret = utimes(fpath, tv));
         sys_errno = errno;
         if (tc->ttype == FILE_NOT_EXIST)
@@ -339,9 +348,6 @@
        progname = strchr(av[0], '/');
         progname = progname ? progname + 1 : av[0];

-       progdir = strdup(av[0]);
-        progdir = dirname(progdir);
-
         /* parse standard options */
         if ((msg = parse_opts(ac, av, (option_t *)NULL, NULL)) != (char *)NULL)
{
              tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);

------------------------------------------------------------------------------
Enter the BlackBerry Developer Challenge  
This is your chance to win up to $100,000 in prizes! For a limited time, 
vendors submitting new applications to BlackBerry App World(TM) will have
the opportunity to enter the BlackBerry Developer Challenge. See full prize  
details at: http://p.sf.net/sfu/Challenge
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to