13
13
along with this program; if not, write to the Free Software
14
14
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
18
17
#include <string.h>
19
18
#include <assert.h>
21
20
#include <string.h>
21
#include <my_getopt.h>
22
#include <drizzle_version.h>
26
#if TIME_WITH_SYS_TIME
27
# include <sys/time.h>
31
# include <sys/time.h>
24
#define ARCHIVE_ROW_HEADER_SIZE 4
37
26
#define COMMENT_STRING "Your bases"
38
27
#define FRM_STRING "My bases"
45
34
char test_string[BUFFER_LEN];
47
uint64_t row_lengths[]= {536870912LL, 2147483648LL, 4294967296LL, 8589934592LL};
48
uint64_t row_numbers[]= {524288LL, 2097152LL, 4194304LL, 8388608LL};
36
unsigned long long row_lengths[]= {536870912LL, 2147483648LL, 4294967296LL, 8589934592LL};
37
unsigned long long row_numbers[]= {524288LL, 2097152LL, 4194304LL, 8388608LL};
51
int size_test(uint64_t length, uint64_t rows_to_test_for, az_method method);
40
int size_test(unsigned long long length, unsigned long long rows_to_test_for, az_method method);
52
41
int small_test(az_method method);
53
42
long int timedif(struct timeval a, struct timeval b);
56
45
int main(int argc, char *argv[])
64
drizzled::internal::my_init();
67
57
for (method= AZ_METHOD_BLOCK; method < AZ_METHOD_MAX; method++)
72
62
printf("Testing %d\n", (int)method);
73
63
gettimeofday(&start_time, NULL);
74
small_test((az_method)method);
75
65
gettimeofday(&end_time, NULL);
76
66
timing= timedif(end_time, start_time);
77
67
printf("\tTime took %ld.%03ld seconds\n\n", timing / 1000, timing % 1000);
89
79
struct timeval start_time, end_time;
92
printf("Testing %"PRIu64" bytes with (%d)\n", row_lengths[x], (int)method);
82
printf("Testing %llu bytes with (%d)\n", row_lengths[x], (int)method);
93
83
gettimeofday(&start_time, NULL);
94
size_test(row_lengths[x], row_numbers[x], (az_method)method);
84
size_test(row_lengths[x], row_numbers[x], method);
95
85
gettimeofday(&end_time, NULL);
96
86
timing= timedif(end_time, start_time);
97
87
printf("\tTime took %ld.%03ld seconds\n\n", timing / 1000, timing % 1000);
101
drizzled::internal::my_end();
118
108
unlink(TEST_FILENAME);
120
if (!(ret= azopen(&writer_handle, TEST_FILENAME, O_CREAT|O_RDWR,
110
if (!(ret= azopen(&writer_handle, TEST_FILENAME, O_CREAT|O_RDWR|O_BINARY,
123
113
printf("Could not create test file\n");
127
azwrite_comment(&writer_handle, (char *)COMMENT_STRING,
117
azwrite_comment(&writer_handle, (char *)COMMENT_STRING,
128
118
(unsigned int)strlen(COMMENT_STRING));
129
119
azread_comment(&writer_handle, comment_str);
130
120
assert(!memcmp(COMMENT_STRING, comment_str,
131
121
strlen(COMMENT_STRING)));
133
azwrite_frm(&writer_handle, (char *)FRM_STRING,
123
azwrite_frm(&writer_handle, (char *)FRM_STRING,
134
124
(unsigned int)strlen(FRM_STRING));
135
125
azread_frm(&writer_handle, comment_str);
136
126
assert(!memcmp(FRM_STRING, comment_str,
137
127
strlen(FRM_STRING)));
140
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY,
130
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY|O_BINARY,
143
133
printf("Could not open test file\n");
185
175
azclose(&reader_handle);
187
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY,
177
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY|O_BINARY,
190
180
printf("Could not open test file\n");
239
229
assert(!memcmp(reader_handle.row_ptr, test_string, ret));
242
if (!(ret= azopen(&writer_handle, TEST_FILENAME, O_RDWR, method)))
232
if (!(ret= azopen(&writer_handle, TEST_FILENAME, O_RDWR|O_BINARY, method)))
244
234
printf("Could not open file (%s) for appending\n", TEST_FILENAME);
285
int size_test(uint64_t length, uint64_t rows_to_test_for,
275
int size_test(unsigned long long length, unsigned long long rows_to_test_for,
286
276
az_method method)
288
278
azio_stream writer_handle, reader_handle;
289
uint64_t write_length;
290
uint64_t read_length;
279
unsigned long long write_length;
280
unsigned long long read_length;
281
unsigned long long count;
292
282
unsigned int ret;
296
if (!(ret= azopen(&writer_handle, TEST_FILENAME,
297
O_CREAT|O_RDWR|O_TRUNC,
286
if (!(ret= azopen(&writer_handle, TEST_FILENAME,
287
O_CREAT|O_RDWR|O_TRUNC|O_BINARY,
300
290
printf("Could not create test file\n");
304
for (count= 0, write_length= 0; write_length < length ;
294
for (count= 0, write_length= 0; write_length < length ;
305
295
write_length+= ret)
319
309
assert(write_length == count * BUFFER_LEN); /* Number of rows time BUFFER_LEN */
320
310
azflush(&writer_handle, Z_SYNC_FLUSH);
322
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY,
312
if (!(ret= azopen(&reader_handle, TEST_FILENAME, O_RDONLY|O_BINARY,
325
315
printf("Could not open test file\n");
329
319
/* We do a double loop to test speed */
330
320
for (x= 0, read_length= 0; x < 2; x++, read_length= 0)
322
unsigned long long count;
334
324
azread_init(&reader_handle);
335
for (read_count= 0; read_count < writer_handle.rows; read_count++)
325
for (count= 0; count < writer_handle.rows; count++)
337
327
ret= azread_row(&reader_handle, &error);
338
328
read_length+= ret;