tst: fsbench: improvements

This commit is contained in:
Bill Zissimopoulos 2016-11-27 11:16:06 -08:00
parent 6e10e0489b
commit e86dcde1a1

View File

@ -21,7 +21,8 @@
static ULONG OptFileCount = 1000; static ULONG OptFileCount = 1000;
static ULONG OptListCount = 100; static ULONG OptListCount = 100;
static ULONG OptRdwrCount = 100; static ULONG OptRdwrCcCount = 100;
static ULONG OptRdwrNcCount = 100;
static ULONG OptMmapCount = 100; static ULONG OptMmapCount = 100;
static void file_create_dotest(ULONG CreateDisposition) static void file_create_dotest(ULONG CreateDisposition)
@ -123,7 +124,7 @@ static void dir_tests(void)
TEST(dir_rmdir_test); TEST(dir_rmdir_test);
} }
static void rdwr_dotest(ULONG CreateDisposition, ULONG CreateFlags) static void rdwr_dotest(ULONG CreateDisposition, ULONG CreateFlags, ULONG Count)
{ {
SYSTEM_INFO SystemInfo; SYSTEM_INFO SystemInfo;
PVOID Buffer; PVOID Buffer;
@ -155,7 +156,7 @@ static void rdwr_dotest(ULONG CreateDisposition, ULONG CreateFlags)
SetEndOfFile(Handle); SetEndOfFile(Handle);
} }
for (ULONG Index = 0; OptRdwrCount > Index; Index++) for (ULONG Index = 0; Count > Index; Index++)
{ {
BytesTransferred = SetFilePointer(Handle, 0, 0, FILE_BEGIN); BytesTransferred = SetFilePointer(Handle, 0, 0, FILE_BEGIN);
ASSERT(0 == BytesTransferred); ASSERT(0 == BytesTransferred);
@ -175,31 +176,32 @@ static void rdwr_dotest(ULONG CreateDisposition, ULONG CreateFlags)
_aligned_free(Buffer); _aligned_free(Buffer);
} }
static void rdwr_cached_write_test(void) static void rdwr_cc_write_test(void)
{ {
rdwr_dotest(CREATE_NEW, 0); rdwr_dotest(CREATE_NEW, 0, OptRdwrCcCount);
} }
static void rdwr_cached_read_test(void) static void rdwr_cc_read_test(void)
{ {
rdwr_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE); rdwr_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, OptRdwrCcCount);
} }
static void rdwr_noncached_write_test(void) static void rdwr_nc_write_test(void)
{ {
rdwr_dotest(CREATE_NEW, 0 | FILE_FLAG_NO_BUFFERING); rdwr_dotest(CREATE_NEW, 0 | FILE_FLAG_NO_BUFFERING, OptRdwrNcCount);
} }
static void rdwr_noncached_read_test(void) static void rdwr_nc_read_test(void)
{ {
rdwr_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE | FILE_FLAG_NO_BUFFERING); rdwr_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE | FILE_FLAG_NO_BUFFERING,
OptRdwrNcCount);
} }
static void rdwr_tests(void) static void rdwr_tests(void)
{ {
TEST(rdwr_cached_write_test); TEST(rdwr_cc_write_test);
TEST(rdwr_cached_read_test); TEST(rdwr_cc_read_test);
TEST(rdwr_noncached_write_test); TEST(rdwr_nc_write_test);
TEST(rdwr_noncached_read_test); TEST(rdwr_nc_read_test);
} }
static void mmap_dotest(ULONG CreateDisposition, ULONG CreateFlags) static void mmap_dotest(ULONG CreateDisposition, ULONG CreateFlags, ULONG Count)
{ {
SYSTEM_INFO SystemInfo; SYSTEM_INFO SystemInfo;
HANDLE Handle, Mapping; HANDLE Handle, Mapping;
@ -226,7 +228,7 @@ static void mmap_dotest(ULONG CreateDisposition, ULONG CreateFlags)
MappedView = MapViewOfFile(Mapping, FILE_MAP_ALL_ACCESS, 0, 0, 0); MappedView = MapViewOfFile(Mapping, FILE_MAP_ALL_ACCESS, 0, 0, 0);
ASSERT(0 != MappedView); ASSERT(0 != MappedView);
for (ULONG Index = 0; OptMmapCount > Index; Index++) for (ULONG Index = 0; Count > Index; Index++)
{ {
for (ULONG I = 0; Iterations > I; I++) for (ULONG I = 0; Iterations > I; I++)
{ {
@ -254,28 +256,18 @@ static void mmap_dotest(ULONG CreateDisposition, ULONG CreateFlags)
Success = CloseHandle(Handle); Success = CloseHandle(Handle);
ASSERT(Success); ASSERT(Success);
} }
static void mmap_cached_write_test(void) static void mmap_write_test(void)
{ {
mmap_dotest(CREATE_NEW, 0); mmap_dotest(CREATE_NEW, 0, OptMmapCount);
} }
static void mmap_cached_read_test(void) static void mmap_read_test(void)
{ {
mmap_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE); mmap_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE, OptMmapCount);
}
static void mmap_noncached_write_test(void)
{
mmap_dotest(CREATE_NEW, 0 | FILE_FLAG_NO_BUFFERING);
}
static void mmap_noncached_read_test(void)
{
mmap_dotest(OPEN_EXISTING, FILE_FLAG_DELETE_ON_CLOSE | FILE_FLAG_NO_BUFFERING);
} }
static void mmap_tests(void) static void mmap_tests(void)
{ {
TEST(mmap_cached_write_test); TEST(mmap_write_test);
TEST(mmap_cached_read_test); TEST(mmap_read_test);
TEST(mmap_noncached_write_test);
TEST(mmap_noncached_read_test);
} }
#define rmarg(argv, argc, argi) \ #define rmarg(argv, argc, argi) \
@ -305,9 +297,14 @@ int main(int argc, char *argv[])
OptListCount = strtoul(a + sizeof "--list=" - 1, 0, 10); OptListCount = strtoul(a + sizeof "--list=" - 1, 0, 10);
rmarg(argv, argc, argi); rmarg(argv, argc, argi);
} }
else if (0 == strncmp("--rdwr=", a, sizeof "--rdwr=" - 1)) else if (0 == strncmp("--rdwr-cc=", a, sizeof "--rdwr-cc=" - 1))
{ {
OptRdwrCount = strtoul(a + sizeof "--rdwr=" - 1, 0, 10); OptRdwrCcCount = strtoul(a + sizeof "--rdwr-cc=" - 1, 0, 10);
rmarg(argv, argc, argi);
}
else if (0 == strncmp("--rdwr-nocc=", a, sizeof "--rdwr-nocc=" - 1))
{
OptRdwrNcCount = strtoul(a + sizeof "--rdwr-nocc=" - 1, 0, 10);
rmarg(argv, argc, argi); rmarg(argv, argc, argi);
} }
else if (0 == strncmp("--mmap=", a, sizeof "--mmap=" - 1)) else if (0 == strncmp("--mmap=", a, sizeof "--mmap=" - 1))