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