diff options
Diffstat (limited to 'sys/contrib/xz-embedded/userspace/buftest.c')
-rw-r--r-- | sys/contrib/xz-embedded/userspace/buftest.c | 48 |
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; +} |