19 #include "compression.h"
20 #include "fileutils.h"
23 #include "test_compression.h"
35 # define TEST_CMPR_USE_NETWORK 0
38 # if !TEST_CMPR_USE_NETWORK
44 static ssize_t test_send(
int sd,
const void* buf,
size_t len,
int flags)
46 return(posix_write(sd, buf, len));
53 static ssize_t test_recv(
int sd,
void* buf,
size_t len,
int flags)
55 posix_ssize_t res = -1;
59 posix_errno = POSIX_EINVAL;
62 else { res = posix_read(sd, buf, len); }
84 # define BUF_LEN (size_t) 1023
85 # define TS_NUM (size_t) 6
86 static const char* ts[TS_NUM] =
92 "VGhpcyBpcyBhIGJhc2U2NCBlbmNvZGVkIHRlc3Qgc3RyaW5nCg==",
94 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
95 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
96 "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA",
98 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
99 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
100 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
101 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
102 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
103 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
104 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
105 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
106 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
107 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
108 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
109 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
110 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
111 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
112 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
113 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
114 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
115 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
116 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB"
117 "BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB",
121 int res = POSIX_EXIT_SUCCESS;
122 # if TEST_CMPR_USE_NETWORK
123 const char* echo_host =
"localhost";
124 int af = POSIX_AF_UNSPEC;
126 const char* pathname =
"/tmp/flnews_loopb";
127 int testfile_open = 0;
131 char buf[BUF_LEN + (size_t) 1];
139 # if TEST_CMPR_USE_NETWORK
144 print_error(
"This test requires an echo daemon running on localhost");
145 res = POSIX_EXIT_FAILURE;
150 POSIX_O_RDWR | POSIX_O_CREAT | POSIX_O_TRUNC,
159 print_error(
"Creating or locking test file failed");
160 res = POSIX_EXIT_FAILURE;
162 else { testfile_open = 1; }
166 if(POSIX_EXIT_SUCCESS == res)
170 posix_send, posix_recv);
172 test_send, test_recv);
174 if(NULL == cs) { res = POSIX_EXIT_FAILURE; }
178 if(POSIX_EXIT_SUCCESS == res)
180 for(i = 0; i < TS_NUM; ++i)
187 res = POSIX_EXIT_FAILURE;
190 # if !TEST_CMPR_USE_NETWORK
191 # if CFG_USE_POSIX_API >= 200112 || CFG_USE_XSI
193 rv = posix_ftruncate(sd, (posix_off_t) 0);
197 res = POSIX_EXIT_FAILURE;
202 rv3 = posix_lseek(sd, (posix_off_t) 0, POSIX_SEEK_SET);
203 if((posix_off_t) -1 == rv3)
206 res = POSIX_EXIT_FAILURE;
214 res = POSIX_EXIT_FAILURE;
221 res = POSIX_EXIT_FAILURE;
224 # if !TEST_CMPR_USE_NETWORK
226 rv3 = posix_lseek(sd, (posix_off_t) 0, POSIX_SEEK_SET);
227 if((posix_off_t) -1 == rv3)
230 res = POSIX_EXIT_FAILURE;
238 res = POSIX_EXIT_FAILURE;
242 if(strcmp(ts[i], buf))
246 # if CFG_USE_POSIX_API >= 200112 || CFG_USE_XSI
247 loc = posix_setlocale(POSIX_LC_CTYPE,
"");
253 print_error(
"Setting locale for debug messages failed");
258 if(NULL == strstr(loc,
"UTF") && NULL == strstr(loc,
"utf"))
261 "Debug messages can't be printed with current locale");
265 fprintf(stderr,
TEST_TAB "Data sent : \"%s\"\n", ts[i]);
266 fprintf(stderr,
TEST_TAB "Data received: \"%s\"\n", buf);
269 res = POSIX_EXIT_FAILURE;
275 # if TEST_CMPR_USE_NETWORK