1*63dab8eeSAdrian Chadd /* 2*63dab8eeSAdrian Chadd * Test application to test buffer-to-buffer decoding 3*63dab8eeSAdrian Chadd * 4*63dab8eeSAdrian Chadd * Author: Lasse Collin <lasse.collin@tukaani.org> 5*63dab8eeSAdrian Chadd * 6*63dab8eeSAdrian Chadd * This file has been put into the public domain. 7*63dab8eeSAdrian Chadd * You can do whatever you want with this file. 8*63dab8eeSAdrian Chadd */ 9*63dab8eeSAdrian Chadd 10*63dab8eeSAdrian Chadd #include <stdbool.h> 11*63dab8eeSAdrian Chadd #include <stdio.h> 12*63dab8eeSAdrian Chadd #include <string.h> 13*63dab8eeSAdrian Chadd #include "xz.h" 14*63dab8eeSAdrian Chadd 15*63dab8eeSAdrian Chadd #define BUFFER_SIZE (1024 * 1024) 16*63dab8eeSAdrian Chadd 17*63dab8eeSAdrian Chadd static uint8_t in[BUFFER_SIZE]; 18*63dab8eeSAdrian Chadd static uint8_t out[BUFFER_SIZE]; 19*63dab8eeSAdrian Chadd 20*63dab8eeSAdrian Chadd int main(void) 21*63dab8eeSAdrian Chadd { 22*63dab8eeSAdrian Chadd struct xz_buf b; 23*63dab8eeSAdrian Chadd struct xz_dec *s; 24*63dab8eeSAdrian Chadd enum xz_ret ret; 25*63dab8eeSAdrian Chadd 26*63dab8eeSAdrian Chadd xz_crc32_init(); 27*63dab8eeSAdrian Chadd 28*63dab8eeSAdrian Chadd s = xz_dec_init(XZ_SINGLE, 0); 29*63dab8eeSAdrian Chadd if (s == NULL) { 30*63dab8eeSAdrian Chadd fputs("Initialization failed", stderr); 31*63dab8eeSAdrian Chadd return 1; 32*63dab8eeSAdrian Chadd } 33*63dab8eeSAdrian Chadd 34*63dab8eeSAdrian Chadd b.in = in; 35*63dab8eeSAdrian Chadd b.in_pos = 0; 36*63dab8eeSAdrian Chadd b.in_size = fread(in, 1, sizeof(in), stdin); 37*63dab8eeSAdrian Chadd b.out = out; 38*63dab8eeSAdrian Chadd b.out_pos = 0; 39*63dab8eeSAdrian Chadd b.out_size = sizeof(out); 40*63dab8eeSAdrian Chadd 41*63dab8eeSAdrian Chadd ret = xz_dec_run(s, &b); 42*63dab8eeSAdrian Chadd xz_dec_end(s); 43*63dab8eeSAdrian Chadd 44*63dab8eeSAdrian Chadd fwrite(out, 1, b.out_pos, stdout); 45*63dab8eeSAdrian Chadd fprintf(stderr, "%d\n", ret); 46*63dab8eeSAdrian Chadd 47*63dab8eeSAdrian Chadd return 0; 48*63dab8eeSAdrian Chadd } 49