https://git.reactos.org/?p=reactos.git;a=commitdiff;h=262e5bfef1fc853e2c3c7…
commit 262e5bfef1fc853e2c3c71cbf046cff75fae415f
Author: Pierre Schweitzer <pierre(a)reactos.org>
AuthorDate: Fri Aug 31 23:07:46 2018 +0200
Commit: Pierre Schweitzer <pierre(a)reactos.org>
CommitDate: Fri Aug 31 23:07:46 2018 +0200
[KMTESTS:CC] Extended previous test to show an overlap is enough
---
modules/rostests/kmtests/ntos_cc/CcMapData_drv.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/modules/rostests/kmtests/ntos_cc/CcMapData_drv.c
b/modules/rostests/kmtests/ntos_cc/CcMapData_drv.c
index 7cf442e628..415eb148a3 100644
--- a/modules/rostests/kmtests/ntos_cc/CcMapData_drv.c
+++ b/modules/rostests/kmtests/ntos_cc/CcMapData_drv.c
@@ -24,6 +24,7 @@ typedef struct _TEST_CONTEXT
{
PVOID Bcb;
PVOID Buffer;
+ ULONG Length;
} TEST_CONTEXT, *PTEST_CONTEXT;
static BOOLEAN TestMap = FALSE;
@@ -162,12 +163,13 @@ MapInAnotherThread(IN PVOID Context)
ok(TestContext != NULL, "Called in invalid context!\n");
ok(TestContext->Bcb != NULL, "Called in invalid context!\n");
ok(TestContext->Buffer != NULL, "Called in invalid context!\n");
+ ok(TestContext->Length != 0, "Called in invalid context!\n");
Ret = FALSE;
Offset.QuadPart = 0x1000;
KmtStartSeh();
TestMap = TRUE;
- Ret = CcMapData(TestFileObject, &Offset, FileSizes.FileSize.QuadPart -
Offset.QuadPart, MAP_WAIT, &Bcb, (PVOID *)&Buffer);
+ Ret = CcMapData(TestFileObject, &Offset, TestContext->Length, MAP_WAIT,
&Bcb, (PVOID *)&Buffer);
TestMap = FALSE;
KmtEndSeh(STATUS_SUCCESS);
@@ -253,6 +255,11 @@ PerformTest(
{
PKTHREAD ThreadHandle;
+ TestContext->Length = FileSizes.FileSize.QuadPart -
Offset.QuadPart;
+ ThreadHandle = KmtStartThread(MapInAnotherThread,
TestContext);
+ KmtFinishThread(ThreadHandle, NULL);
+
+ TestContext->Length = FileSizes.FileSize.QuadPart - 2 *
Offset.QuadPart;
ThreadHandle = KmtStartThread(MapInAnotherThread,
TestContext);
KmtFinishThread(ThreadHandle, NULL);