summaryrefslogtreecommitdiffstats
path: root/src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c b/src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c
new file mode 100644
index 000000000..36771b3df
--- /dev/null
+++ b/src/isa-l/tests/fuzz/igzip_dump_inflate_corpus.c
@@ -0,0 +1,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;
+}