1*d2c16535SElliott Hughes // SPDX-License-Identifier: 0BSD
2*d2c16535SElliott Hughes
3*d2c16535SElliott Hughes /*
4*d2c16535SElliott Hughes * Test application to test buffer-to-buffer decoding
5*d2c16535SElliott Hughes *
6*d2c16535SElliott Hughes * Author: Lasse Collin <[email protected]>
7*d2c16535SElliott Hughes */
8*d2c16535SElliott Hughes
9*d2c16535SElliott Hughes #include <stdbool.h>
10*d2c16535SElliott Hughes #include <stdio.h>
11*d2c16535SElliott Hughes #include <string.h>
12*d2c16535SElliott Hughes #include "xz.h"
13*d2c16535SElliott Hughes
14*d2c16535SElliott Hughes #define BUFFER_SIZE (1024 * 1024)
15*d2c16535SElliott Hughes
16*d2c16535SElliott Hughes static uint8_t in[BUFFER_SIZE];
17*d2c16535SElliott Hughes static uint8_t out[BUFFER_SIZE];
18*d2c16535SElliott Hughes
main(void)19*d2c16535SElliott Hughes int main(void)
20*d2c16535SElliott Hughes {
21*d2c16535SElliott Hughes struct xz_buf b;
22*d2c16535SElliott Hughes struct xz_dec *s;
23*d2c16535SElliott Hughes enum xz_ret ret;
24*d2c16535SElliott Hughes
25*d2c16535SElliott Hughes xz_crc32_init();
26*d2c16535SElliott Hughes
27*d2c16535SElliott Hughes s = xz_dec_init(XZ_SINGLE, 0);
28*d2c16535SElliott Hughes if (s == NULL) {
29*d2c16535SElliott Hughes fputs("Initialization failed\n", stderr);
30*d2c16535SElliott Hughes return 1;
31*d2c16535SElliott Hughes }
32*d2c16535SElliott Hughes
33*d2c16535SElliott Hughes b.in = in;
34*d2c16535SElliott Hughes b.in_pos = 0;
35*d2c16535SElliott Hughes b.in_size = fread(in, 1, sizeof(in), stdin);
36*d2c16535SElliott Hughes
37*d2c16535SElliott Hughes b.out = out;
38*d2c16535SElliott Hughes b.out_pos = 0;
39*d2c16535SElliott Hughes b.out_size = sizeof(out);
40*d2c16535SElliott Hughes
41*d2c16535SElliott Hughes ret = xz_dec_run(s, &b);
42*d2c16535SElliott Hughes xz_dec_end(s);
43*d2c16535SElliott Hughes
44*d2c16535SElliott Hughes fwrite(out, 1, b.out_pos, stdout);
45*d2c16535SElliott Hughes fprintf(stderr, "%d\n", ret);
46*d2c16535SElliott Hughes
47*d2c16535SElliott Hughes return 0;
48*d2c16535SElliott Hughes }
49