xref: /aosp_15_r20/external/xz-embedded/userspace/buftest.c (revision d2c16535d139cb185e89120452531bba6b36d3c6)
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