[LTP] [PATCH v2] fstat_02: Increase test coverage by creating hard link to file and validate using fstat

Kushal Chand kushalkataria5@gmail.com
Wed Feb 23 11:20:13 CET 2022


Hi,

Apology for the late reply.

I am not sure about the st_blocks size. If you can guide me how to check
that I might work on that?

Are you planning to merge this patch with the st_blocks check or the
current version is ready to be merged?

On Thu, Feb 10, 2022 at 9:04 PM Cyril Hrubis <chrubis@suse.cz> wrote:

> Hi!
> The subject should be shorter and more to the point, something as:
>
> "fstat02: Validate st_nlink as well"
>
> > Implements: #517
>
> The code looks good now, but it's not complete solution to #517, there
> are still many fields of the structure that are not checked and a few
> more patches would be required to complete it.
>
> For instance the st_blocks should be more or less equal size/512
>
> And we should check the atime/mtime/ctime as well, but maybe it would be
> easier if we do that in a separate test.
>
> > This patch creates a hard link for a file during setup and checks if
> number of hardlinks
> > match with the expected number.
>
> This is missing Signed-off-by: line see:
>
>
> https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin
>
> > ---
> >  testcases/kernel/syscalls/fstat/fstat02.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/testcases/kernel/syscalls/fstat/fstat02.c
> b/testcases/kernel/syscalls/fstat/fstat02.c
> > index c0229de44..2f9632edf 100644
> > --- a/testcases/kernel/syscalls/fstat/fstat02.c
> > +++ b/testcases/kernel/syscalls/fstat/fstat02.c
> > @@ -17,8 +17,10 @@
> >  #include "tst_safe_macros.h"
> >
> >  #define TESTFILE        "test_file"
> > +#define LINK_TESTFILE   "link_test_file"
> >  #define FILE_SIZE       1024
> >  #define FILE_MODE    0644
> > +#define NLINK                2
> >
> >  static struct stat stat_buf;
> >  static uid_t user_id;
> > @@ -61,6 +63,12 @@ static void run(void)
> >               fail++;
> >       }
> >
> > +     if (stat_buf.st_nlink != NLINK) {
> > +             tst_res(TFAIL, "stat_buf.st_nlink = %li expected %i",
> > +                     (long)stat_buf.st_nlink, NLINK);
> > +             fail++;
> > +     }
> > +
> >       if (fail)
> >               return;
> >
> > @@ -78,6 +86,8 @@ static void setup(void)
> >
> >       if (tst_fill_file(TESTFILE, 'a', FILE_SIZE, 1))
> >               tst_brk(TBROK, "Could not fill Testfile!");
> > +
> > +     SAFE_LINK(TESTFILE, LINK_TESTFILE);
> >  }
> >
> >  static void cleanup(void)
> > --
> > 2.25.1
> >
> >
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
>
> --
> Cyril Hrubis
> chrubis@suse.cz


On Thu, Feb 10, 2022 at 9:04 PM Cyril Hrubis <chrubis@suse.cz> wrote:

> Hi!
> The subject should be shorter and more to the point, something as:
>
> "fstat02: Validate st_nlink as well"
>
> > Implements: #517
>
> The code looks good now, but it's not complete solution to #517, there
> are still many fields of the structure that are not checked and a few
> more patches would be required to complete it.
>
> For instance the st_blocks should be more or less equal size/512
>
> And we should check the atime/mtime/ctime as well, but maybe it would be
> easier if we do that in a separate test.
>
> > This patch creates a hard link for a file during setup and checks if
> number of hardlinks
> > match with the expected number.
>
> This is missing Signed-off-by: line see:
>
>
> https://www.kernel.org/doc/html/v4.17/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin
>
> > ---
> >  testcases/kernel/syscalls/fstat/fstat02.c | 10 ++++++++++
> >  1 file changed, 10 insertions(+)
> >
> > diff --git a/testcases/kernel/syscalls/fstat/fstat02.c
> b/testcases/kernel/syscalls/fstat/fstat02.c
> > index c0229de44..2f9632edf 100644
> > --- a/testcases/kernel/syscalls/fstat/fstat02.c
> > +++ b/testcases/kernel/syscalls/fstat/fstat02.c
> > @@ -17,8 +17,10 @@
> >  #include "tst_safe_macros.h"
> >
> >  #define TESTFILE        "test_file"
> > +#define LINK_TESTFILE   "link_test_file"
> >  #define FILE_SIZE       1024
> >  #define FILE_MODE    0644
> > +#define NLINK                2
> >
> >  static struct stat stat_buf;
> >  static uid_t user_id;
> > @@ -61,6 +63,12 @@ static void run(void)
> >               fail++;
> >       }
> >
> > +     if (stat_buf.st_nlink != NLINK) {
> > +             tst_res(TFAIL, "stat_buf.st_nlink = %li expected %i",
> > +                     (long)stat_buf.st_nlink, NLINK);
> > +             fail++;
> > +     }
> > +
> >       if (fail)
> >               return;
> >
> > @@ -78,6 +86,8 @@ static void setup(void)
> >
> >       if (tst_fill_file(TESTFILE, 'a', FILE_SIZE, 1))
> >               tst_brk(TBROK, "Could not fill Testfile!");
> > +
> > +     SAFE_LINK(TESTFILE, LINK_TESTFILE);
> >  }
> >
> >  static void cleanup(void)
> > --
> > 2.25.1
> >
> >
> > --
> > Mailing list info: https://lists.linux.it/listinfo/ltp
>
> --
> Cyril Hrubis
> chrubis@suse.cz
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20220223/725cff01/attachment.htm>


More information about the ltp mailing list