void param_defaults(struct model_params *params)
{
params->verbose = !!DBG_ENABLED();
- params->uninitvalue = 0;
params->maxexecutions = 10;
+ params->traceminsize = 0;
+ params->checkthreshold = 500000;
+ params->removevisible = false;
params->nofork = false;
}
" 0 is quiet; 1 shows valid executions; 2 is noisy;\n"
" 3 is noisier.\n"
" Default: %d\n"
- "-u, --uninitialized=VALUE Return VALUE any load which may read from an\n"
- " uninitialized atomic.\n"
- " Default: %u\n"
"-t, --analysis=NAME Use Analysis Plugin.\n"
"-o, --options=NAME Option for previous analysis plugin. \n"
"-x, --maxexec=NUM Maximum number of executions.\n"
" Default: %u\n"
" -o help for a list of options\n"
- "-n No fork\n\n",
+ "-n No fork\n"
+ "-m, --minsize=NUM Minimum number of actions to keep\n"
+ " Default: %u\n"
+ "-f, --freqfree=NUM Frequency to free actions\n"
+ " Default: %u\n"
+ "-r, --removevisible Free visible writes\n",
params->verbose,
- params->uninitvalue,
- params->maxexecutions);
+ params->maxexecutions,
+ params->traceminsize,
+ params->checkthreshold);
model_print("Analysis plugins:\n");
for(unsigned int i=0;i<registeredanalysis->size();i++) {
TraceAnalysis * analysis=(*registeredanalysis)[i];
}
void parse_options(struct model_params *params) {
- const char *shortopts = "hnt:o:u:x:v::";
+ const char *shortopts = "hrnt:o:x:v:m:f:";
const struct option longopts[] = {
{"help", no_argument, NULL, 'h'},
- {"verbose", optional_argument, NULL, 'v'},
- {"uninitialized", required_argument, NULL, 'u'},
+ {"removevisible", no_argument, NULL, 'r'},
{"analysis", required_argument, NULL, 't'},
{"options", required_argument, NULL, 'o'},
{"maxexecutions", required_argument, NULL, 'x'},
+ {"verbose", optional_argument, NULL, 'v'},
+ {"minsize", required_argument, NULL, 'm'},
+ {"freqfree", required_argument, NULL, 'f'},
{0, 0, 0, 0} /* Terminator */
};
int opt, longindex;
- int tmpoptind = optind;
bool error = false;
char * options = getenv("C11TESTER");
case 'v':
params->verbose = optarg ? atoi(optarg) : 1;
break;
- case 'u':
- params->uninitvalue = atoi(optarg);
- break;
case 't':
if (install_plugin(optarg))
error = true;
break;
+ case 'm':
+ params->traceminsize = atoi(optarg);
+ break;
+ case 'f':
+ params->checkthreshold = atoi(optarg);
+ break;
+ case 'r':
+ params->removevisible = true;
+ break;
case 'o':
{
ModelVector<TraceAnalysis *> * analyses = getInstalledTraceAnalysis();
}
}
- /* Restore (global) optind for potential use by user program */
- optind = tmpoptind;
+ /* Special value to reset implementation as described by Linux man page. */
+ optind = 0;
if (error)
print_usage(params);