⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crtest.c

📁 harvest是一个下载html网页得机器人
💻 C
📖 第 1 页 / 共 2 页
字号:
    len = sprintf(buf, "%08d", i);    if(lob){      if(!(val = crgetlob(curia, buf, len, 0, -1, NULL))){        pdperror(name);        err = TRUE;        break;      }    } else {      if(!(val = crget(curia, buf, len, 0, -1, NULL))){        pdperror(name);        err = TRUE;        break;      }    }    free(val);    /* print progression */    if(rnum > 250 && i % (rnum / 250) == 0){      putchar('.');      fflush(stdout);      if(i == rnum || i % (rnum / 10) == 0){        printfflush(" (%08d)\n", i);      }    }  }  /* close the database */  if(!crclose(curia)){    pdperror(name);    return 1;  }  if(!err) printfflush("ok\n\n");  return err ? 1 : 0;}/* perform rcat command */int dorcat(const char *name, int rnum, int bnum, int dnum, int pnum, int align){  CURIA *curia;  int i, err, len;  char buf[RECBUFSIZ];  printfflush("<Random Writing Test>\n  name=%s  rnum=%d  bnum=%d  dnum=%d  pnum=%d  align=%d\n\n",              name, rnum, bnum, dnum, pnum, align);  if(!(curia = cropen(name, CR_OWRITER | CR_OCREAT | CR_OTRUNC, bnum, dnum))){    pdperror(name);    return 1;  }  if(!crsetalign(curia, align)){    pdperror(name);    crclose(curia);    return 1;  }  err = FALSE;  for(i = 1; i <= rnum; i++){    len = sprintf(buf, "%08d", myrand() % pnum + 1);    if(!crput(curia, buf, len, buf, len, CR_DCAT)){      pdperror(name);      err = TRUE;      break;    }    if(rnum > 250 && i % (rnum / 250) == 0){      putchar('.');      fflush(stdout);      if(i == rnum || i % (rnum / 10) == 0){        printfflush(" (%08d: fsiz=%d rnum=%d)\n", i, crfsiz(curia), crrnum(curia));      }    }  }  if(!crclose(curia)){    pdperror(name);    return 1;  }  if(!err) printfflush("ok\n\n");  return err ? 1 : 0;}/* perform combo command */int docombo(const char *name){  CURIA *curia;  char buf[RECBUFSIZ], wbuf[RECBUFSIZ], *vbuf;  int i, len, wlen, vsiz;  printfflush("<Combination Test>\n  name=%s\n\n", name);  printfflush("Creating a database with bnum 3 ... ");  if(!(curia = cropen(name, CR_OWRITER | CR_OCREAT | CR_OTRUNC, 3, 3))){    pdperror(name);    return 1;  }  printfflush("ok\n");  printfflush("Setting alignment as 16 ... ");  if(!crsetalign(curia, 16)){    pdperror(name);    crclose(curia);    return 1;  }  printfflush("ok\n");  printfflush("Adding 20 records ... ");  for(i = 1; i <= 20; i++){    len = sprintf(buf, "%08d", i);    if(!crput(curia, buf, len, buf, len, CR_DOVER)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Checking records ... ");  for(i = 1; i <= 20; i++){    len = sprintf(buf, "%08d", i);    if(!(vbuf = crget(curia, buf, len, 0, -1, &vsiz))){      pdperror(name);      crclose(curia);      return 1;    }    free(vbuf);    if(vsiz != crvsiz(curia, buf, len)){      fprintf(stderr, "%s: %s: invalid vsiz\n", progname, name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Overwriting top 10 records without moving rooms ... ");  for(i = 1; i <= 10; i++){    len = sprintf(buf, "%08d", i);    if(!crput(curia, buf, len, buf, len, CR_DOVER)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Overwriting top 5 records with moving rooms ... ");  for(i = 1; i <= 5; i++){    len = sprintf(buf, "%08d", i);    wlen = sprintf(wbuf, "%024d", i);    if(!crput(curia, buf, len, wbuf, wlen, CR_DOVER)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Overwriting top 15 records in concatenation with moving rooms ... ");  for(i = 1; i <= 15; i++){    len = sprintf(buf, "%08d", i);    wlen = sprintf(wbuf, "========================");    if(!crput(curia, buf, len, wbuf, wlen, CR_DCAT)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Checking records ... ");  for(i = 1; i <= 20; i++){    len = sprintf(buf, "%08d", i);    if(!(vbuf = crget(curia, buf, len, 0, -1, &vsiz))){      pdperror(name);      crclose(curia);      return 1;    }    free(vbuf);    if(vsiz != crvsiz(curia, buf, len)){      fprintf(stderr, "%s: %s: invalid vsiz\n", progname, name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Deleting top 10 records ... ");  for(i = 1; i <= 10; i++){    len = sprintf(buf, "%08d", i);    if(!crout(curia, buf, len)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Checking deleted records ... ");  for(i = 1; i <= 10; i++){    len = sprintf(buf, "%08d", i);    vbuf = crget(curia, buf, len, 0, -1, &vsiz);    free(vbuf);    if(vbuf || dpecode != DP_ENOITEM){      fprintf(stderr, "%s: %s: deleting failed\n", progname, name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Overwriting top 15 records in concatenation with moving rooms ... ");  for(i = 1; i <= 15; i++){    len = sprintf(buf, "%08d", i);    wlen = sprintf(wbuf, "========================");    if(!crput(curia, buf, len, wbuf, wlen, CR_DCAT)){      pdperror(name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Checking records ... ");  for(i = 1; i <= 20; i++){    len = sprintf(buf, "%08d", i);    if(!(vbuf = crget(curia, buf, len, 0, -1, &vsiz))){      pdperror(name);      crclose(curia);      return 1;    }    free(vbuf);    if(vsiz != crvsiz(curia, buf, len)){      fprintf(stderr, "%s: %s: invalid vsiz\n", progname, name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Optimizing the database ... ");  if(!croptimize(curia, -1)){    pdperror(name);    crclose(curia);    return 1;  }  printfflush("ok\n");  printfflush("Checking records ... ");  for(i = 1; i <= 20; i++){    len = sprintf(buf, "%08d", i);    if(!(vbuf = crget(curia, buf, len, 0, -1, &vsiz))){      pdperror(name);      crclose(curia);      return 1;    }    free(vbuf);    if(vsiz != crvsiz(curia, buf, len)){      fprintf(stderr, "%s: %s: invalid vsiz\n", progname, name);      crclose(curia);      return 1;    }  }  printfflush("ok\n");  printfflush("Closing database ... ");  if(!crclose(curia)){    pdperror(name);    return 1;  }  printfflush("ok\n");  printfflush("all ok\n\n");  return 0;}/* perform wicked command */int dowicked(const char *name, int rnum){  CURIA *curia;  int i, len, err;  char buf[RECBUFSIZ], *val;  printfflush("<Wicked Writing Test>\n  name=%s  rnum=%d\n\n", name, rnum);  err = FALSE;  if(!(curia = cropen(name, CR_OWRITER | CR_OCREAT | CR_OTRUNC, rnum / 10, 5))){    pdperror(name);    return 1;  }  if(!crsetalign(curia, 16)){    pdperror(name);    err = TRUE;  }  for(i = 1; i <= rnum; i++){    len = sprintf(buf, "%08d", myrand() % rnum + 1);    switch(myrand() % 16){    case 0:      putchar('O');      if(!crput(curia, buf, len, buf, len, CR_DOVER)) err = TRUE;      break;    case 1:      putchar('K');      if(!crput(curia, buf, len, buf, len, CR_DKEEP) && dpecode != DP_EKEEP) err = TRUE;      break;    case 2:      putchar('D');      if(!crout(curia, buf, len) && dpecode != DP_ENOITEM) err = TRUE;      break;    case 3:      putchar('V');      if(crvsiz(curia, buf, len) == -1 && dpecode != DP_ENOITEM) err = TRUE;      break;    default:      putchar('C');      if(!crput(curia, buf, len, buf, len, CR_DCAT)) err = TRUE;      break;    }    if(i % 50 == 0) printfflush(" (%08d)\n", i);    if(err){      pdperror(name);      break;    }  }  if(!croptimize(curia, -1)){    pdperror(name);    err = TRUE;  }  for(i = 1; i <= rnum; i++){    len = sprintf(buf, "%08d", i);    if(!crput(curia, buf, len, ":", -1, CR_DCAT)){      pdperror(name);      err = TRUE;      break;    }    putchar(':');    if(i % 50 == 0) printfflush(" (%08d)\n", i);  }  if(!croptimize(curia, -1)){    pdperror(name);    err = TRUE;  }  for(i = 1; i <= rnum; i++){    len = sprintf(buf, "%08d", i);    if(!(val = crget(curia, buf, len, 0, -1, NULL))){      pdperror(name);      err = TRUE;      break;    }    free(val);    putchar('=');    if(i % 50 == 0) printfflush(" (%08d)\n", i);  }  if(!criterinit(curia)){    pdperror(name);    err = TRUE;  }  for(i = 1; i <= rnum; i++){    if(!(val = criternext(curia, NULL))){      pdperror(name);      err = TRUE;      break;    }    free(val);    putchar('@');    if(i % 50 == 0) printfflush(" (%08d)\n", i);  }  if(!crclose(curia)){    pdperror(name);    return 1;  }  if(!err) printfflush("ok\n\n");  return err ? 1 : 0;}/* END OF FILE */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -