Hi!
> diff --git a/testcases/kernel/mem/zram/zram01.c 
> b/testcases/kernel/mem/zram/zram01.c
> index 6967bd1..38adf63 100644
> --- a/testcases/kernel/mem/zram/zram01.c
> +++ b/testcases/kernel/mem/zram/zram01.c
> @@ -44,6 +44,7 @@ int modprobe = 0;
>  
>  static void set_disksize(void);
>  static void write_device(void);
> +static void verify_device(void);
>  static void reset(void);
>  static void setup(void);
>  static void cleanup(void);
> @@ -68,6 +69,7 @@ int main(int argc, char *argv[])
>  
>               write_device();
>               dump_info();
> +             verify_device();
>  
>               reset();
>               dump_info();
> @@ -96,7 +98,7 @@ static void set_disksize(void)
>  static void write_device(void)
>  {
>       int fd;
> -     void *s;
> +     char *s;
>  
>       tst_resm(TINFO, "map it into memory.");
>       fd = open(DEVICE, O_RDWR);
> @@ -107,7 +109,8 @@ static void write_device(void)
>               tst_brkm(TBROK|TERRNO, cleanup, "mmap");
>  
>       tst_resm(TINFO, "write all the memory.");
> -     memset(s, 'a', SIZE);
> +     memset(s, 'a', SIZE-1);
> +     s[SIZE-1] = '\0';
>  
>       if (munmap(s, SIZE) == -1)
>               tst_brkm(TBROK|TERRNO, cleanup, "munmap");
> @@ -115,6 +118,37 @@ static void write_device(void)
>       close(fd);
>  }
>  
> +static void verify_device(void)
> +{
> +     int fd, i, fail;
> +     char *s;
> +
> +     tst_resm(TINFO, "verify contents from device.");
> +     fd = open(DEVICE, O_RDONLY);
> +     if (fd == -1)
> +             tst_brkm(TBROK|TERRNO, cleanup, "open %s", DEVICE);
> +     s = mmap(NULL, SIZE, PROT_READ, MAP_PRIVATE, fd, 0);
> +     if (s == MAP_FAILED)
> +             tst_brkm(TBROK|TERRNO, cleanup, "2nd mmap");
> +
> +     i = 0;
> +     fail = 0;
> +     while (s[i]) {
> +             if (s[i] != 'a')
> +                     fail++;
> +             i++;
> +     }

Hmm, I would make sure here, that I haven't read more than SIZE
characters. Eg. I wouldn't expect that device you are testing is null
terminated, even if you wrote the terminating zero there.

> +     if (i != SIZE-1)
> +             tst_resm(TFAIL, "expect size: %d, actual size: %d.",
> +                             SIZE-1, i);
> +     if (fail)
> +             tst_resm(TFAIL, "%d failed bytes found.", fail);
> +     if (munmap(s, SIZE) == -1)
> +             tst_brkm(TBROK|TERRNO, cleanup, "2nd munmap");
> +
> +     close(fd);
> +}
> +
>  static void reset(void)
>  {
>       int fd;


-- 
Cyril Hrubis
chru...@suse.cz

------------------------------------------------------------------------------
Write once. Port to many.
Get the SDK and tools to simplify cross-platform app development. Create 
new or port existing apps to sell to consumers worldwide. Explore the 
Intel AppUpSM program developer opportunity. appdeveloper.intel.com/join
http://p.sf.net/sfu/intel-appdev
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to