return last_allocation = malloc(size);
}
+static void set_args(int *argc, char ***argv, ...)
+{
+ va_list ap;
+ *argv = malloc(sizeof(**argv) * 20);
+
+ va_start(ap, argv);
+ for (*argc = 0;
+ ((*argv)[*argc] = va_arg(ap, char*)) != NULL;
+ (*argc)++);
+ va_end(ap);
+}
+
/* Test helpers. */
int main(int argc, char *argv[])
{
/* parse_args allocates argv */
free(argv);
- argc = 2;
- argv = malloc(sizeof(argv[0]) * 3);
- argv[0] = (char *)"thisprog";
- argv[1] = (char *)"-a";
- argv[2] = NULL;
+ set_args(&argc, &argv, "thisprog", "-a", NULL);
exitval = setjmp(exited);
if (exitval == 0) {
opt_register_noarg("-a",
opt_usage_and_exit, "[args]", "");
- argc = 2;
- argv = malloc(sizeof(argv[0]) * 3);
- argv[0] = (char *)"thisprog";
- argv[1] = (char *)"-a";
- argv[2] = NULL;
+ set_args(&argc, &argv, "thisprog", "-a", NULL);
exitval = setjmp(exited);
if (exitval == 0) {
opt_register_noarg("-a",
opt_usage_and_exit, "[args]", "");
- argc = 2;
- argv = malloc(sizeof(argv[0]) * 3);
- argv[0] = (char *)"thisprog";
- argv[1] = (char *)"--garbage";
- argv[2] = NULL;
+ set_args(&argc, &argv, "thisprog", "--garbage", NULL);
ok1(!opt_parse(&argc, argv, opt_log_stderr));
ok1(!strcmp(output,
"thisprog: --garbage: unrecognized option\n"));
reset_options();
opt_register_noarg("-a",
opt_usage_and_exit, "[args]", "");
- argc = 2;
- argv = malloc(sizeof(argv[0]) * 3);
- argv[0] = (char *)"thisprog";
- argv[1] = (char *)"--garbage";
- argv[2] = NULL;
+ set_args(&argc, &argv, "thisprog", "--garbage", NULL);
exitval = setjmp(exited);
if (exitval == 0) {
opt_parse(&argc, argv, opt_log_stderr_exit);