mirror of
https://github.com/MariaDB/server.git
synced 2025-01-22 23:04:20 +01:00
0254009221
storage/maria/unittest/test_file.c: Rename: unittest/mysys/test_file.c -> storage/maria/unittest/test_file.c storage/maria/unittest/test_file.h: Rename: unittest/mysys/test_file.h -> storage/maria/unittest/test_file.h include/pagecache.h: A waiting queue mechanism moved to separate file wqueue.* Pointer name changed for compatibility mysys/Makefile.am: A waiting queue mechanism moved to separate file wqueue.* mysys/mf_keycache.c: fixed unsigned comparison mysys/mf_pagecache.c: A waiting queue mechanism moved to separate file wqueue.* Fixed bug in unregistering block during write storage/maria/Makefile.am: The loghandler files added storage/maria/ma_control_file.h: Now we have loghandler and can compile control file storage/maria/maria_def.h: Including files need for compilation of maria storage/maria/unittest/Makefile.am: unit tests of loghandler storage/maria/unittest/ma_control_file-t.c: Used maria def storage/maria/unittest/mf_pagecache_consist.c: fixed memory overrun storage/maria/unittest/mf_pagecache_single.c: fixed used uninitialized memory unittest/mysys/Makefile.am: unittests of pagecache moved to maria becase pagecache need loghandler include/wqueue.h: New BitKeeper file ``include/wqueue.h'' mysys/wqueue.c: New BitKeeper file ``mysys/wqueue.c'' storage/maria/ma_loghandler.c: New BitKeeper file ``storage/maria/ma_loghandler.c'' storage/maria/ma_loghandler.h: New BitKeeper file ``storage/maria/ma_loghandler.h'' storage/maria/ma_loghandler_lsn.h: New BitKeeper file ``storage/maria/ma_loghandler_lsn.h'' storage/maria/unittest/ma_test_loghandler-t.c: New BitKeeper file ``storage/maria/unittest/ma_test_loghandler-t.c'' storage/maria/unittest/ma_test_loghandler_multigroup-t.c: New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multigroup-t.c'' storage/maria/unittest/ma_test_loghandler_multithread-t.c: New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_multithread-t.c'' storage/maria/unittest/ma_test_loghandler_pagecache-t.c: New BitKeeper file ``storage/maria/unittest/ma_test_loghandler_pagecache-t.c''
68 lines
1.7 KiB
C
68 lines
1.7 KiB
C
#include <tap.h>
|
|
#include <my_sys.h>
|
|
#include <my_dir.h>
|
|
#include "test_file.h"
|
|
|
|
|
|
/*
|
|
Check that file contance correspond to descriptor
|
|
|
|
SYNOPSIS
|
|
test_file()
|
|
file File to test
|
|
file_name Path (and name) of file which is tested
|
|
size size of file
|
|
buff_size size of buffer which is enought to check the file
|
|
desc file descriptor to check with
|
|
|
|
RETURN
|
|
1 file if OK
|
|
0 error
|
|
*/
|
|
|
|
int test_file(PAGECACHE_FILE file, char *file_name,
|
|
off_t size, size_t buff_size, struct file_desc *desc)
|
|
{
|
|
MY_STAT stat_buff, *stat;
|
|
unsigned char *buffr= malloc(buff_size);
|
|
off_t pos= 0;
|
|
size_t byte;
|
|
int step= 0;
|
|
|
|
if ((stat= my_stat(file_name, &stat_buff, MYF(0))) == NULL)
|
|
{
|
|
diag("Can't stat() %s (errno: %d)\n", file_name, errno);
|
|
return 0;
|
|
}
|
|
if (stat->st_size != size)
|
|
{
|
|
diag("file %s size is %lu (should be %lu)\n",
|
|
file_name, (ulong) stat->st_size, (ulong) size);
|
|
return 0;
|
|
}
|
|
/* check content */
|
|
my_seek(file.file, 0, SEEK_SET, MYF(0));
|
|
while (desc[step].length != 0)
|
|
{
|
|
if (my_read(file.file, (char*)buffr, desc[step].length, MYF(0)) !=
|
|
desc[step].length)
|
|
{
|
|
diag("Can't read %u bytes from %s (errno: %d)\n",
|
|
(uint)desc[step].length, file_name, errno);
|
|
return 0;
|
|
}
|
|
for (byte= 0; byte < desc[step].length; byte++)
|
|
{
|
|
if (buffr[byte] != desc[step].content)
|
|
{
|
|
diag("content of %s mismatch 0x%x in position %lu instead of 0x%x\n",
|
|
file_name, (uint) buffr[byte], (ulong) (pos + byte),
|
|
desc[step].content);
|
|
return 0;
|
|
}
|
|
}
|
|
pos+= desc[step].length;
|
|
step++;
|
|
}
|
|
return 1;
|
|
}
|