Hi!
> +int main(int argc, char *argv[])
> +{
> +     int lc, fd;
> +     char *msg;
> +     char buf[BUFSIZ], size[BUFSIZ];
> +     void *s;
> +
> +     msg = parse_opts(argc, argv, NULL, NULL);
> +     if (msg != (char *)NULL)
> +             tst_brkm(TBROK, tst_exit, "OPTION PARSING ERROR - %s", msg);

Once again, useless cast here.

> +     setup();
> +
> +     for (lc = 0; TEST_LOOPING(lc); lc++) {
> +             Tst_count = 0;
> +             tst_resm(TINFO, "create a zram device with %d bytes in size.",
> +                     SIZE);
> +             sprintf(buf, "%s/disksize", PATH_ZRAM);
> +             fd = open(buf, O_WRONLY);

And the sprintf() here.

> +             if (fd == -1)
> +                     tst_brkm(TBROK|TERRNO, cleanup, "open %s", buf);
> +             sprintf(size, "%d", SIZE);
> +             if (write(fd, size, strlen(size)) != strlen(size))
> +                     tst_brkm(TBROK|TERRNO, cleanup, "write %s to %s", size,
> +                             buf);
> +             close(fd);
> +
> +             tst_resm(TINFO, "map it into memory.");
> +             fd = open(DEVICE, O_RDWR);
> +             if (fd == -1)
> +                     tst_brkm(TBROK|TERRNO, cleanup, "open %s", DEVICE);
> +             s = mmap(NULL, SIZE, PROT_READ|PROT_WRITE, MAP_PRIVATE, fd, 0);
> +             if (s == MAP_FAILED)
> +                     tst_brkm(TBROK|TERRNO, cleanup, "mmap");
> +
> +             tst_resm(TINFO, "write all the memory.");
> +             memset(s, SIZE, 'a');
> +             close(fd);
> +
> +             dump_info();
> +
> +             tst_resm(TINFO, "reset it.");
> +             sprintf(buf, "%s/reset", PATH_ZRAM);

And here.

> +             fd = open(buf, O_WRONLY);
> +             if (fd == -1)
> +                     tst_brkm(TBROK|TERRNO, cleanup, "open %s", buf);
> +             if (write(fd, "1", 1) != 1)
> +                     tst_brkm(TBROK|TERRNO, cleanup, "write 1 to %s", buf);
> +             close(fd);
> +
> +             dump_info();
> +     }
> +     cleanup();
> +}
> +
> +void setup(void)
> +{
> +     if (access(PATH_ZRAM, R_OK|W_OK|X_OK) == -1 && errno == ENOENT) {
> +             system("modprobe zram");
> +             modprobe = 1;
> +             if (access(PATH_ZRAM, R_OK|W_OK|X_OK) == -1 && errno == ENOENT)
> +                     tst_brkm(TCONF, tst_exit, "system has no zram device.");
> +             else
> +                     tst_brkm(TBROK|TERRNO, tst_exit, "access");
> +     }
> +     tst_sig(FORK, DEF_HANDLER, cleanup);
> +     TEST_PAUSE;
> +}
> +
> +void cleanup(void)
> +{
> +     if (modprobe == 1)
> +             system("rmmod zram");
> +
> +     TEST_CLEANUP;
> +     tst_exit();     
> +}
> +
> +void print(char *string)
> +{
> +     FILE *fp;
> +     char buf[BUFSIZ], value[BUFSIZ];
> +
> +     sprintf(buf, "%s/%s", PATH_ZRAM, string);
> +     fp = fopen(buf, "r");
> +     if (fp == NULL)
> +             tst_brkm(TBROK|TERRNO, cleanup, "fopen %s", buf);
> +
> +     if (fgets(value, BUFSIZ, fp) == NULL)
> +             tst_brkm(TBROK|TERRNO, cleanup, "fgets %s", buf);
> +     value[strlen(value) - 1] = '\0';
> +     fclose(fp);
> +
> +     tst_resm(TINFO, "%s is %s", buf, value);
> +}
> +
> +void dump_info(void)
> +{
> +     print("initstate");
> +     print("compr_data_size");
> +     print("orig_data_size");
> +     print("disksize");
> +     print("mem_used_total");
> +     print("num_reads");
> +     print("num_writes");
> +     print("zero_pages");
> +}

-- 
Cyril Hrubis
[email protected]

------------------------------------------------------------------------------
Learn how Oracle Real Application Clusters (RAC) One Node allows customers
to consolidate database storage, standardize their database environment, and, 
should the need arise, upgrade to a full multi-node Oracle RAC database 
without downtime or disruption
http://p.sf.net/sfu/oracle-sfdevnl
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to