1229159Sadrian/* 2229159Sadrian * Test application to test buffer-to-buffer decoding 3229159Sadrian * 4229159Sadrian * Author: Lasse Collin <lasse.collin@tukaani.org> 5229159Sadrian * 6229159Sadrian * This file has been put into the public domain. 7229159Sadrian * You can do whatever you want with this file. 8229159Sadrian */ 9229159Sadrian 10229159Sadrian#include <stdbool.h> 11229159Sadrian#include <stdio.h> 12229159Sadrian#include <string.h> 13229159Sadrian#include "xz.h" 14229159Sadrian 15229159Sadrian#define BUFFER_SIZE (1024 * 1024) 16229159Sadrian 17229159Sadrianstatic uint8_t in[BUFFER_SIZE]; 18229159Sadrianstatic uint8_t out[BUFFER_SIZE]; 19229159Sadrian 20229159Sadrianint main(void) 21229159Sadrian{ 22229159Sadrian struct xz_buf b; 23229159Sadrian struct xz_dec *s; 24229159Sadrian enum xz_ret ret; 25229159Sadrian 26229159Sadrian xz_crc32_init(); 27229159Sadrian 28229159Sadrian s = xz_dec_init(XZ_SINGLE, 0); 29229159Sadrian if (s == NULL) { 30229159Sadrian fputs("Initialization failed", stderr); 31229159Sadrian return 1; 32229159Sadrian } 33229159Sadrian 34229159Sadrian b.in = in; 35229159Sadrian b.in_pos = 0; 36229159Sadrian b.in_size = fread(in, 1, sizeof(in), stdin); 37229159Sadrian b.out = out; 38229159Sadrian b.out_pos = 0; 39229159Sadrian b.out_size = sizeof(out); 40229159Sadrian 41229159Sadrian ret = xz_dec_run(s, &b); 42229159Sadrian xz_dec_end(s); 43229159Sadrian 44229159Sadrian fwrite(out, 1, b.out_pos, stdout); 45229159Sadrian fprintf(stderr, "%d\n", ret); 46229159Sadrian 47229159Sadrian return 0; 48229159Sadrian} 49