Changeset 1668 for zzuf


Ignore:
Timestamp:
Jan 14, 2007, 9:17:45 PM (13 years ago)
Author:
Sam Hocevar
Message:
  • Only display our own kills in verbose mode.
  • Factorise min/max ratio values.
Location:
zzuf/trunk/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • zzuf/trunk/src/fd.c

    r1663 r1668  
    5454static int maxfd, nfiles;
    5555
    56 static int32_t seed = 0;
    57 static float   ratio = 0.004f;
     56static int32_t seed = DEFAULT_SEED;
     57static float   ratio = DEFAULT_RATIO;
    5858static int     autoinc = 0;
    5959
     
    7777void _zz_setratio(float r)
    7878{
    79     if(r < 0.0f)
    80         r = 0.0f;
    81     else if(r > 5.0f)
    82         r = 5.0f;
     79    if(r < MIN_RATIO)
     80        r = MIN_RATIO;
     81    else if(r > MAX_RATIO)
     82        r = MAX_RATIO;
    8383    ratio = r;
    8484}
  • zzuf/trunk/src/libzzuf.h

    r1663 r1668  
    2626#define CHUNKBYTES 1024
    2727
     28/* Default seed is 0. Why not? */
     29#define DEFAULT_SEED 0
     30
     31/* The default fuzzing ratio is, arbitrarily, 0.4% */
     32#define DEFAULT_RATIO 0.004f
     33#define MIN_RATIO 0.00001f
     34#define MAX_RATIO 5.0f
     35
    2836struct fuzz
    2937{
  • zzuf/trunk/src/zzuf.c

    r1667 r1668  
    8181static char **newargv;
    8282static char *protect = NULL, *refuse = NULL;
    83 static int seed = 0;
    84 static int endseed = 1;
     83static uint32_t seed = DEFAULT_SEED;
     84static uint32_t endseed = DEFAULT_SEED + 1;
     85static float ratio = DEFAULT_RATIO;
     86static float endratio = DEFAULT_RATIO;
    8587static int quiet = 0;
    8688static int maxbytes = -1;
     
    215217            break;
    216218        case 'r': /* --ratio */
    217             setenv("ZZUF_RATIO", optarg, 1);
    218             _zz_setratio(atof(optarg));
     219            parser = strchr(optarg, ':');
     220            ratio = atof(optarg);
     221            endratio = parser ? atof(parser + 1) : ratio;
    219222            break;
    220223        case 'R': /* --refuse */
     
    223226        case 's': /* --seed */
    224227            parser = strchr(optarg, ':');
    225             _zz_setseed(seed = atol(optarg));
    226             endseed = parser ? atoi(parser + 1) : seed + 1;
     228            seed = atol(optarg);
     229            endseed = parser ? (uint32_t)atoi(parser + 1) : seed + 1;
    227230            break;
    228231        case 'S': /* --signal */
     
    265268            return EXIT_FAILURE;
    266269        }
     270
     271        _zz_setseed(seed);
     272        _zz_setratio(ratio);
    267273
    268274        loop_stdin();
     
    502508            sprintf(buf, "%i", seed);
    503509            setenv("ZZUF_SEED", buf, 1);
     510            sprintf(buf, "%g", ratio);
     511            setenv("ZZUF_RATIO", buf, 1);
    504512
    505513            /* Run our process */
     
    512520    }
    513521
     522    if(verbose)
     523        fprintf(stdout, "zzuf[seed=%i]: launched %s\n", seed, newargv[0]);
     524
    514525    /* We’re the parent, acknowledge spawn */
    515526    child_list[i].date = now;
     
    542553            && maxbytes >= 0 && child_list[i].bytes > maxbytes)
    543554        {
    544             fprintf(stdout, "zzuf[seed=%i]: data output exceeded, sending SIGTERM\n",
    545                     child_list[i].seed);
     555            if(verbose)
     556                fprintf(stdout, "zzuf[seed=%i]: data output exceeded,"
     557                                " sending SIGTERM\n", child_list[i].seed);
    546558            kill(child_list[i].pid, SIGTERM);
    547559            child_list[i].date = now;
     
    553565            && now > child_list[i].date + maxtime)
    554566        {
    555             fprintf(stdout, "zzuf[seed=%i]: running time exceeded, sending SIGTERM\n",
    556                     child_list[i].seed);
     567            if(verbose)
     568                fprintf(stdout, "zzuf[seed=%i]: running time exceeded,"
     569                                " sending SIGTERM\n", child_list[i].seed);
    557570            kill(child_list[i].pid, SIGTERM);
    558571            child_list[i].date = now;
     
    567580            && now > child_list[i].date + 2000000)
    568581        {
    569             fprintf(stdout, "zzuf[seed=%i]: not responding, sending SIGKILL\n",
    570                     child_list[i].seed);
     582            if(verbose)
     583                fprintf(stdout, "zzuf[seed=%i]: not responding,"
     584                                " sending SIGKILL\n", child_list[i].seed);
    571585            kill(child_list[i].pid, SIGKILL);
    572586            child_list[i].status = STATUS_SIGKILL;
Note: See TracChangeset for help on using the changeset viewer.