This is through. Kindly submit some documentation on this.

Regards & Thanks--
Subrata Modak,
====================================
====================================



                                                                           
             Subrata Modak                                                 
             <[EMAIL PROTECTED]                                             
             et.ibm.com>                                                To 
             Sent by:                  Andrew Vagin <[EMAIL PROTECTED]>         
             ltp-list-bounces@                                          cc 
             lists.sourceforge         [email protected]      
             .net                                                  Subject 
                                       Re: [LTP] [PATCH] inotify: add new  
                                       testcases for inotify               
             05/23/07 06:08 PM                                             
                                                                           
                                                                           
                                                                           
                                                                           
                                                                           




Hi Andrew,

I request more documentation on your new testcase(s) that comes embedded
with your patch, like what exactly the testcase(s) is/are all about, a
little description of "inotify" and things like that . Please see the
following for your reference:
1)
http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kdump/susetools/OO_Descriptions.txt

2) http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kdump/README
3)
http://ltp.cvs.sourceforge.net/ltp/ltp/testcases/kernel/containers/utsname/README


I would request you to submit either one "README" or
"OO_Descriptions.txt" placed under "testcases/kernel/syscalls/inotify"
directory.

Regards--
Subrata

Andrew Vagin wrote:
> I create first series testcase for inotify.
> one for test inotify on files and one for test inotify on folders
> Both test case work on next scheme:
> 1. make some file operations
> 2. Check that all events get
>
> ------------------------------------------------------------------------
>
> diff -uprN ltp.old/testcases/kernel/syscalls/inotify/inotify01.c
ltp/testcases/kernel/syscalls/inotify/inotify01.c
> --- ltp.old/testcases/kernel/syscalls/inotify/inotify01.c
1970-01-01 03:00:00.000000000 +0300
> +++ ltp/testcases/kernel/syscalls/inotify/inotify01.c
2007-05-22 17:23:23.000000000 +0400
> @@ -0,0 +1,299 @@
> +/*
> + * Copyright (c) 2007 SWSoft.  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.,
59
> + * Temple Place - Suite 330, Boston MA 02111-1307, USA.
> + *
> + * Started by Andrew Vagin <[EMAIL PROTECTED]>
> + *
> + */
> +/*
> + * NAME
> + *     inotify01
> + *
> + * DESCRIPTION
> + *     Check that inotify work for a file
> + *
> + * ALGORITHM
> + *     Execute sequence file's operation and check return events
> + *
> + */
> +
> +#include <sys/inotify.h>
> +#include <stdio.h>
> +#include <sys/stat.h>
> +#include <sys/types.h>
> +#include <sys/fcntl.h>
> +#include <errno.h>
> +#include <string.h>
> +#include "test.h"
> +#include "usctest.h"
> +
> +#define EVENT_MAX 1024
> +/* size of the event structure, not counting name */
> +#define EVENT_SIZE  (sizeof (struct inotify_event))
> +/* reasonable guess as to size of 1024 events */
> +#define EVENT_BUF_LEN        (EVENT_MAX * (EVENT_SIZE + 16))
> +
> +void setup();
> +void cleanup();
> +
> +
> +
> +char *TCID="inotify01";         /* Test program identifier.    */
> +int TST_TOTAL = 7;            /* Total number of test cases. */
> +extern int Tst_count;        /* Test Case counter for tst_* routines */
> +
> +#define BUF_SIZE 256
> +char fname[BUF_SIZE];
> +char buf[BUF_SIZE];
> +int fd, fd_notify;
> +uint32_t wd;
> +
> +int event_set[EVENT_MAX];
> +
> +int main(int ac, char **av){
> +    int lc;        /* loop counter */
> +    char *msg;        /* message returned from parse_opts */
> +
> +    /*
> +     * parse standard options
> +     */
> +    if ( (msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)
NULL )
> +        tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
> +
> +    /*
> +     * perform global setup for test
> +     */
> +    setup();
> +
> +    /*
> +     * check looping state if -c option given
> +     */
> +
> +    for (lc=0; TEST_LOOPING(lc); lc++) {
> +        Tst_count = 0;
> +        /* reset Tst_count in case we are looping. */
> +
> +        /*
> +         * generate sequence of events
> +         */
> +        if (chmod(fname, 0755) < 0) {
> +            tst_brkm(TBROK, cleanup,
> +                    "chmod(%s, 0755) Failed, errno=%d : %s",
> +                    fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_ATTRIB;
> +        Tst_count++;
> +
> +        if ((fd = open(fname, O_RDONLY)) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +              "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
> +              fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_OPEN;
> +        Tst_count++;
> +
> +        if (read(fd, buf, BUF_SIZE) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                    "read(%d, buf, %d) Failed, errno=%d : %s",
> +                    fd, BUF_SIZE, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_ACCESS;
> +        Tst_count++;
> +
> +        if (close(fd) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                    "close(%s) Failed, errno=%d : %s",
> +                    fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_CLOSE_NOWRITE;
> +        Tst_count++;
> +
> +
> +        if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +              "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
> +              fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_OPEN;
> +        Tst_count++;
> +
> +        if (write(fd, buf, BUF_SIZE) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                "write(%d, %s, 1) Failed, errno=%d : %s",
> +                fd, fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_MODIFY;
> +        Tst_count++;
> +
> +        if (close(fd) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                    "close(%s) Failed, errno=%d : %s",
> +                    fname, errno, strerror(errno));
> +        }
> +        event_set[Tst_count] = IN_CLOSE_WRITE;
> +        Tst_count++;
> +
> +        if (TST_TOTAL != Tst_count) {
> +            tst_brkm(TBROK, cleanup,
> +                    "TST_TOTAL and Tst_count are not equal");
> +        }
> +        Tst_count = 0;
> +
> +        /*
> +         * get list on events
> +         */
> +        char event_buf[EVENT_BUF_LEN];
> +        int len, i = 0, test_num = 0;
> +        if ((len = read(fd_notify, event_buf, EVENT_BUF_LEN)) < 0) {
> +            tst_brkm(TBROK, cleanup,
> +                "read(%d, buf, %d) Failed, errno=%d : %s",
> +                fd_notify, EVENT_BUF_LEN, errno,
> +                strerror(errno));
> +
> +        }
> +
> +        /*
> +         * check events
> +         */
> +        while (i < len) {
> +            struct inotify_event *event;
> +            event = (struct inotify_event *) &event_buf[i];
> +            if (test_num >= TST_TOTAL) {
> +                tst_resm(TFAIL,
> +                    "get unnecessary event: wd=%d mask=%x "
> +                    "cookie=%u len=%u",
> +                    event->wd, event->mask,
> +                    event->cookie, event->len);
> +            } else if (event_set[test_num] == event->mask){
> +                tst_resm(TPASS, "get event: wd=%d mask=%x"
> +                    " cookie=%u len=%u",
> +                    event->wd, event->mask,
> +                    event->cookie, event->len);
> +
> +            } else {
> +                tst_resm( TFAIL, "get event: wd=%d mask=%x "
> +                    "(expected %x) cookie=%u len=%u",
> +                    event->wd, event->mask,
> +                    event_set[test_num],
> +                    event->cookie, event->len);
> +            }
> +            test_num++;
> +            i += EVENT_SIZE + event->len;
> +        }
> +        for (; test_num<TST_TOTAL; test_num++){
> +            tst_resm(TFAIL, "don't get event: mask=%x ",
> +                    event_set[test_num]);
> +
> +        }
> +
> +    }    /* End for TEST_LOOPING */
> +
> +    /*
> +     * cleanup and exit
> +     */
> +    cleanup();
> +
> +    return 0;
> +}    /* End main */
> +
> +/*
> + * setup() - performs all ONE TIME setup for this test.
> + */
> +void setup(){
> +    /* capture signals */
> +    tst_sig(NOFORK, DEF_HANDLER, cleanup);
> +
> +    /* Pause if that option was specified */
> +    TEST_PAUSE;
> +
> +    /* make a temp directory and cd to it */
> +    tst_tmpdir();
> +
> +    sprintf(fname,"tfile_%d",getpid());
> +    if ((fd = open(fname,O_RDWR|O_CREAT,0700)) == -1) {
> +        tst_brkm(TBROK, cleanup,
> +            "open(%s, O_RDWR|O_CREAT,0700) Failed, errno=%d : %s",
> +            fname, errno, strerror(errno));
> +    }
> +    if (( write(fd, fname, 1)) == -1) {
> +        tst_brkm(TBROK, cleanup,
> +                "write(%d, %s, 1) Failed, errno=%d : %s",
> +                fd, fname, errno, strerror(errno));
> +    }
> +
> +    /* close the file we have open */
> +    if (close(fd) == -1) {
> +        tst_brkm(TBROK, cleanup,
> +                "close(%s) Failed, errno=%d : %s",
> +                fname, errno, strerror(errno));
> +    }
> +    if ((fd_notify = inotify_init ()) < 0) {
> +        if( errno == ENOSYS ){
> +            tst_resm(TCONF,"inotify is not configured in this kernel.");
> +            tst_resm(TCONF,"Test will not run.");
> +            tst_exit();
> +        }else{
> +            tst_brkm(TBROK, cleanup,
> +                "inotify_init () Failed, errno=%d : %s",
> +                errno, strerror(errno));
> +        }
> +    }
> +
> +    if ((wd = inotify_add_watch (fd_notify, fname, IN_ALL_EVENTS)) < 0){
> +        tst_brkm(TBROK, cleanup,
> +                "inotify_add_watch (%d, %s, IN_ALL_EVENTS)"
> +                "Failed, errno=%d : %s",
> +                fd_notify, fname, errno, strerror(errno));
> +    };
> +
> +}    /* End setup() */
> +
> +
> +/*
> + * cleanup() - performs all ONE TIME cleanup for this test at
> + *        completion or premature exit.
> + */
> +void cleanup(){
> +    if (inotify_rm_watch(fd_notify, wd) < 0) {
> +        tst_resm(TWARN,    "inotify_rm_watch (%d, %d) Failed,"
> +                "errno=%d : %s",
> +                fd_notify, wd, errno, strerror(errno));
> +
> +    }
> +
> +    if (close(fd_notify) == -1) {
> +        tst_resm(TWARN, "close(%d) Failed, errno=%d : %s",
> +                fd_notify, errno, strerror(errno));
> +    }
> +
> +
> +    /*
> +     * print timing stats if that option was specified.
> +     * print errno log if that option was specified.
> +     */
> +    TEST_CLEANUP;
> +
> +    /* Remove tmp dir and all files in it */
> +    tst_rmdir();
> +
> +    /* exit with return code appropriate for results */
> +    tst_exit();
> +}    /* End cleanup() */
> diff -uprN ltp.old/testcases/kernel/syscalls/inotify/inotify02.c
ltp/testcases/kernel/syscalls/inotify/inotify02.c
> --- ltp.old/testcases/kernel/syscalls/inotify/inotify02.c
1970-01-01 03:00:00.000000000 +0300
> +++ ltp/testcases/kernel/syscalls/inotify/inotify02.c
2007-05-22 17:23:17.000000000 +0400
> @@ -0,0 +1,325 @@
> +/*
> + * Copyright (c) 2007 SWSoft.  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.,
59
> + * Temple Place - Suite 330, Boston MA 02111-1307, USA.
> + *
> + * Started by Andrew Vagin <[EMAIL PROTECTED]>
> + *
> + */
>
+/****************************************************************************

> + * NAME
> + *     inotify02
> + *
> + * DESCRIPTION
> + *     Check that inotify work for a directory
> + *
> + * ALGORITHM
> + *     Execute sequence file's operation and check return events
> + *
> + *
***************************************************************************/

> +#include <sys/inotify.h>
> +#include <stdio.h>
> +#include <sys/stat.h>
> +#include <sys/types.h>
> +#include <sys/fcntl.h>
> +#include <errno.h>
> +#include <string.h>
> +#include "test.h"
> +#include "usctest.h"
> +
> +#define EVENT_MAX 1024
> +/* size of the event structure, not counting name */
> +#define EVENT_SIZE  (sizeof (struct inotify_event))
> +/* reasonable guess as to size of 1024 events */
> +#define EVENT_BUF_LEN        (EVENT_MAX * (EVENT_SIZE + 16))
> +
> +void setup();
> +void cleanup();
> +
> +
> +
> +char *TCID="inotify02";         /* Test program identifier.    */
> +int TST_TOTAL=9;            /* Total number of test cases. */
> +extern int Tst_count;        /* Test Case counter for tst_* routines */
> +
> +#define BUF_SIZE 256
> +char fname1[BUF_SIZE], fname2[BUF_SIZE];
> +char buf[BUF_SIZE];
> +int fd, fd_notify;
> +uint32_t wd;
> +
> +struct event_t {
> +        char name[BUF_SIZE];
> +        uint32_t mask;
> +        uint32_t len;
> +};
> +#define FILE_NAME1 "test_file1"
> +#define FILE_NAME2 "test_file2"
> +
> +struct event_t event_set [EVENT_MAX];
> +
> +int main(int ac, char **av){
> +    int lc;        /* loop counter */
> +    char *msg;        /* message returned from parse_opts */
> +
> +    /*
> +     * parse standard options
> +     */
> +    if ((msg=parse_opts(ac, av, (option_t *) NULL, NULL)) != (char *)
NULL)
> +        tst_brkm(TBROK, cleanup, "OPTION PARSING ERROR - %s", msg);
> +
> +    /*
> +     * perform global setup for test
> +     */
> +    setup();
> +
> +    /*
> +     * check looping state if -c option given
> +     */
> +    for (lc=0; TEST_LOOPING(lc); lc++) {
> +
> +        /* reset Tst_count in case we are looping. */
> +        Tst_count = 0;
> +
> +        /*
> +         * generate sequence of events
> +         */
> +        if (chmod(".", 0755) < 0) {
> +            tst_brkm(TBROK, cleanup,
> +                "chmod(\".\", 0755) Failed, errno=%d : %s",
> +                     errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_ISDIR | IN_ATTRIB;
> +        strcpy(event_set[Tst_count].name, "");
> +        Tst_count++;
> +
> +        if ((fd = creat(FILE_NAME1, 0755)) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                "creat(\"%s\", 755) Failed, errno=%d : %s",
> +                fname1, errno, strerror(errno));
> +        }
> +
> +        event_set[Tst_count].mask = IN_CREATE;
> +        strcpy(event_set[Tst_count].name, FILE_NAME1);
> +        Tst_count++;
> +        event_set[Tst_count].mask = IN_OPEN;
> +        strcpy(event_set[Tst_count].name, FILE_NAME1);
> +        Tst_count++;
> +
> +        if (close(fd) == -1) {
> +            tst_brkm(TBROK, cleanup,
> +                    "close(%s) Failed, errno=%d : %s",
> +                    fname1, errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_CLOSE_WRITE;
> +        strcpy(event_set[Tst_count].name, FILE_NAME1);
> +        Tst_count++;
> +
> +
> +
> +
> +        if (rename(FILE_NAME1, FILE_NAME2) == -1){
> +            tst_brkm(TBROK, cleanup,
> +                    "rename(%s, %s) Failed, errno=%d : %s",
> +                    FILE_NAME1, FILE_NAME2,
> +                    errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_MOVED_FROM;
> +        strcpy(event_set[Tst_count].name, FILE_NAME1);
> +        Tst_count++;
> +        event_set[Tst_count].mask = IN_MOVED_TO;
> +        strcpy(event_set[Tst_count].name, FILE_NAME2);
> +        Tst_count++;
> +
> +
> +
> +        if (unlink(FILE_NAME2) == -1){
> +            tst_brkm(TBROK, cleanup,
> +                    "unlink(%s) Failed, errno=%d : %s",
> +                    FILE_NAME2,
> +                    errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_DELETE;
> +        strcpy(event_set[Tst_count].name, FILE_NAME2);
> +        Tst_count++;
> +
> +
> +        if (getcwd(fname1, BUF_SIZE) == NULL){
> +            tst_brkm(TBROK, cleanup,
> +                    "getcwd(%x, %d) Failed, errno=%d : %s",
> +                    fname1, BUF_SIZE,
> +                    errno, strerror(errno));
> +        }
> +
> +        snprintf(fname2, BUF_SIZE, "%s.rename", fname1);
> +        if (rename(fname1, fname2) == -1){
> +            tst_brkm(TBROK, cleanup,
> +                    "rename(%s, %s) Failed, errno=%d : %s",
> +                    fname1, fname2,
> +                    errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_MOVE_SELF;
> +        strcpy(event_set[Tst_count].name, "");
> +        Tst_count++;
> +
> +
> +        if (rename(fname2, fname1) == -1){
> +            tst_brkm(TBROK, cleanup,
> +                    "rename(%s, %s) Failed, errno=%d : %s",
> +                    fname1, fname2,
> +                    errno, strerror(errno));
> +        }
> +        event_set[Tst_count].mask = IN_MOVE_SELF;
> +        strcpy(event_set[Tst_count].name, "");
> +        Tst_count++;
> +
> +        if (Tst_count != TST_TOTAL) {
> +            tst_brkm(TBROK, cleanup,
> +                "Tst_count and TST_TOTAL are not equal");
> +        }
> +
> +        Tst_count = 0;
> +
> +
> +        char event_buf[EVENT_BUF_LEN];
> +        int len, i = 0, test_num = 0;
> +        if ((len = read(fd_notify, event_buf, EVENT_BUF_LEN)) < 0) {
> +            tst_brkm(TBROK, cleanup,
> +                "read(%d, buf, %d) Failed, errno=%d : %s",
> +                fd_notify, EVENT_BUF_LEN,
> +                errno, strerror(errno));
> +
> +        }
> +
> +        while (i < len) {
> +            struct inotify_event *event;
> +            event = (struct inotify_event *) &event_buf[i];
> +            if (test_num >= TST_TOTAL){
> +                tst_resm(TFAIL, "get unnecessary event: "
> +                    "wd=%d mask=%x cookie=%u len=%u"
> +                    "name=\"%s\"",event->wd, event->mask,
> +                    event->cookie, event->len,
> +                            event->name);
> +
> +            } else     if ((event_set[test_num].mask == event->mask) &&
> +                    (! strncmp( event_set[test_num].name,
> +                        event->name, event->len))) {
> +                tst_resm(TPASS, "get event: wd=%d mask=%x"
> +                        " cookie=%u len=%u name=\"%s\"",
> +                        event->wd, event->mask,
> +                        event->cookie, event->len,
> +                        event->name);
> +
> +            } else {
> +                tst_resm(TFAIL, "get event: wd=%d mask=%x "
> +                    "(expected %x) cookie=%u len=%u "
> +                    "name=\"%s\" (expected \"%s\") %d",
> +                    event->wd, event->mask,
> +                    event_set[test_num].mask,
> +                    event->cookie, event->len, event->name,
> +                    event_set[test_num].name,
> +                    strcmp(event_set[test_num].name,
> +                        event->name));
> +            }
> +            test_num++;
> +            i += EVENT_SIZE + event->len;
> +        }
> +
> +        for (; test_num<TST_TOTAL; test_num++){
> +            tst_resm(TFAIL, "don't get event: mask=%x ",
> +                    event_set[test_num]);
> +
> +        }
> +
> +    }    /* End for TEST_LOOPING */
> +
> +    /*
> +     * cleanup and exit
> +     */
> +    cleanup();
> +
> +    return 0;
> +}    /* End main */
> +
> +/*
> + * setup() - performs all ONE TIME setup for this test.
> + */
> +void setup(){
> +    /* capture signals */
> +    tst_sig(NOFORK, DEF_HANDLER, cleanup);
> +
> +    /* Pause if that option was specified */
> +    TEST_PAUSE;
> +
> +    /* make a temp directory and cd to it */
> +    tst_tmpdir();
> +
> +    if ((fd_notify = inotify_init ()) < 0) {
> +        if( errno == ENOSYS ){
> +            tst_resm(TCONF, "inotify is not configured in this
kernel.");
> +            tst_resm(TCONF, "Test will not run.");
> +            tst_exit();
> +        }else{
> +            tst_brkm(TBROK, cleanup,
> +                "inotify_init () Failed, errno=%d : %s",
> +                errno, strerror(errno));
> +        }
> +    }
> +
> +    if ((wd = inotify_add_watch (fd_notify, ".", IN_ALL_EVENTS)) < 0){
> +        tst_brkm(TBROK, cleanup,
> +                "inotify_add_watch (%d, \".\", IN_ALL_EVENTS)"
> +                "Failed, errno=%d : %s",
> +                fd_notify, errno, strerror(errno));
> +    };
> +
> +}    /* End setup() */
> +
> +
> +/*
> + * cleanup() - performs all ONE TIME cleanup for this test at
> + *        completion or premature exit.
> + */
> +void cleanup(){
> +    if (inotify_rm_watch(fd_notify, wd) < 0) {
> +        tst_resm(TWARN,    "inotify_rm_watch (%d, %d) Failed,"
> +                "errno=%d : %s",
> +                fd_notify, wd, errno, strerror(errno));
> +
> +    }
> +
> +    if (close(fd_notify) == -1) {
> +        tst_resm(TWARN, "close(%d) Failed, errno=%d : %s",
> +                fd_notify, errno, strerror(errno));
> +    }
> +
> +
> +    /*
> +     * print timing stats if that option was specified.
> +     * print errno log if that option was specified.
> +     */
> +    TEST_CLEANUP;
> +
> +    /* Remove tmp dir and all files in it */
> +    tst_rmdir();
> +
> +    /* exit with return code appropriate for results */
> +    tst_exit();
> +}    /* End cleanup() */
> diff -uprN ltp.old/testcases/kernel/syscalls/inotify/Makefile
ltp/testcases/kernel/syscalls/inotify/Makefile
> --- ltp.old/testcases/kernel/syscalls/inotify/Makefile
1970-01-01 03:00:00.000000000 +0300
> +++ ltp/testcases/kernel/syscalls/inotify/Makefile         2007-05-22
17:23:30.000000000 +0400
> @@ -0,0 +1,31 @@
> +#
> +#  Copyright (c) SWSoft, 2007
> +#
> +#  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 St, Fifth Floor, Boston, MA  02110-1301
USA
> +#
> +
> +CFLAGS += -I../../../../include -Wall --static
> +LDLIBS += -L../../../../lib -lltp
> +
> +SRCS    = $(wildcard *.c)
> +TARGETS = $(patsubst %.c,%,$(SRCS))
> +
> +all: $(TARGETS)
> +
> +install:
> +          @set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ;
done
> +
> +clean:
> +          rm -f $(TARGETS)
> diff -uprN ltp.old/testcases/kernel/syscalls/read/Makefile~
ltp/testcases/kernel/syscalls/read/Makefile~
> --- ltp.old/testcases/kernel/syscalls/read/Makefile~
1970-01-01 03:00:00.000000000 +0300
> +++ ltp/testcases/kernel/syscalls/read/Makefile~           2006-10-18
00:29:00.000000000 +0400
> @@ -0,0 +1,31 @@
> +#
> +#  Copyright (c) International Business Machines  Corp., 2001
> +#
> +#  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 St, Fifth Floor, Boston, MA  02110-1301
USA
> +#
> +
> +CFLAGS += -I../../../../include -Wall
> +LDLIBS += -L../../../../lib -lltp
> +
> +SRCS    = $(wildcard *.c)
> +TARGETS = $(patsubst %.c,%,$(SRCS))
> +
> +all: $(TARGETS)
> +
> +install:
> +          @set -e; for i in $(TARGETS); do ln -f $$i ../../../bin/$$i ;
done
> +
> +clean:
> +          rm -f $(TARGETS)
>
> ------------------------------------------------------------------------
>
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> ------------------------------------------------------------------------
>
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list
>


-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to