summaryrefslogtreecommitdiffstats
path: root/src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c
blob: 36771b3df6ff1ed1710627caac8be657e853d482 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "inflate_std_vects.h"

#define DNAME_MAX 256
#define FNAME_MAX (DNAME_MAX + 81)

int main(int argc, char *argv[])
{
	uint8_t *buf;
	int i, len, err;
	FILE *fout = NULL;
	char fname[FNAME_MAX];
	char dname[DNAME_MAX];

	if (argc != 2) {
		fprintf(stderr, "Usage: %s <outdir>\n", argv[0]);
		exit(1);
	}
	strncpy(dname, argv[1], DNAME_MAX - 1);

	for (i = 0; i < sizeof(std_vect_array) / sizeof(struct vect_result); i++) {
		buf = std_vect_array[i].vector;
		len = std_vect_array[i].vector_length;
		err = std_vect_array[i].expected_error;

		snprintf(fname, FNAME_MAX, "%s/inflate_corp_n%04d_e%04d", dname, i, err);
		printf(" writing %s\n", fname);
		fout = fopen(fname, "w+");
		if (!fout) {
			fprintf(stderr, "Can't open %s for writing\n", fname);
			exit(1);
		}
		fwrite(buf, len, 1, fout);
		fclose(fout);
	}

	return 0;
}