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