summaryrefslogtreecommitdiffstats
path: root/sys/contrib/xz-embedded/userspace/buftest.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/contrib/xz-embedded/userspace/buftest.c')
-rw-r--r--sys/contrib/xz-embedded/userspace/buftest.c48
1 files changed, 48 insertions, 0 deletions
diff --git a/sys/contrib/xz-embedded/userspace/buftest.c b/sys/contrib/xz-embedded/userspace/buftest.c
new file mode 100644
index 0000000..54b780a
--- /dev/null
+++ b/sys/contrib/xz-embedded/userspace/buftest.c
@@ -0,0 +1,48 @@
+/*
+ * Test application to test buffer-to-buffer decoding
+ *
+ * Author: Lasse Collin <lasse.collin@tukaani.org>
+ *
+ * This file has been put into the public domain.
+ * You can do whatever you want with this file.
+ */
+
+#include <stdbool.h>
+#include <stdio.h>
+#include <string.h>
+#include "xz.h"
+
+#define BUFFER_SIZE (1024 * 1024)
+
+static uint8_t in[BUFFER_SIZE];
+static uint8_t out[BUFFER_SIZE];
+
+int main(void)
+{
+ struct xz_buf b;
+ struct xz_dec *s;
+ enum xz_ret ret;
+
+ xz_crc32_init();
+
+ s = xz_dec_init(XZ_SINGLE, 0);
+ if (s == NULL) {
+ fputs("Initialization failed", stderr);
+ return 1;
+ }
+
+ b.in = in;
+ b.in_pos = 0;
+ b.in_size = fread(in, 1, sizeof(in), stdin);
+ b.out = out;
+ b.out_pos = 0;
+ b.out_size = sizeof(out);
+
+ ret = xz_dec_run(s, &b);
+ xz_dec_end(s);
+
+ fwrite(out, 1, b.out_pos, stdout);
+ fprintf(stderr, "%d\n", ret);
+
+ return 0;
+}
OpenPOWER on IntegriCloud