mirror of
https://github.com/reactos/reactos.git
synced 2025-08-06 02:32:57 +00:00
[KMTEST]
Added a small testcase for FsRtlIsNameInExpression(). It's quite relevant for daily and simple use of the function. It shouldn't fail on ReactOS given our current implementation. svn path=/trunk/; revision=48932
This commit is contained in:
parent
5ea7ca5562
commit
219137196e
3 changed files with 132 additions and 0 deletions
|
@ -174,6 +174,7 @@ BOOLEAN ZwUnloadTest(PDRIVER_OBJECT, PUNICODE_STRING, PWCHAR);
|
||||||
BOOLEAN DetachDeviceTest(PDEVICE_OBJECT);
|
BOOLEAN DetachDeviceTest(PDEVICE_OBJECT);
|
||||||
BOOLEAN AttachDeviceTest(PDEVICE_OBJECT, PWCHAR);
|
BOOLEAN AttachDeviceTest(PDEVICE_OBJECT, PWCHAR);
|
||||||
VOID LowerDeviceKernelAPITest(PDEVICE_OBJECT, BOOLEAN);
|
VOID LowerDeviceKernelAPITest(PDEVICE_OBJECT, BOOLEAN);
|
||||||
|
VOID NtoskrnlFsRtlTest(HANDLE KeyHandle);
|
||||||
|
|
||||||
typedef enum {
|
typedef enum {
|
||||||
TestStageExTimer = 0,
|
TestStageExTimer = 0,
|
||||||
|
@ -185,6 +186,7 @@ typedef enum {
|
||||||
TestStageOb,
|
TestStageOb,
|
||||||
TestStageKeStall,
|
TestStageKeStall,
|
||||||
TestStageDrv,
|
TestStageDrv,
|
||||||
|
TestStageFsRtl,
|
||||||
TestStageMax
|
TestStageMax
|
||||||
} TEST_STAGE;
|
} TEST_STAGE;
|
||||||
|
|
||||||
|
@ -399,6 +401,10 @@ RunKernelModeTest(PDRIVER_OBJECT DriverObject,
|
||||||
FinishTest(KeyHandle, L"DriverTest");
|
FinishTest(KeyHandle, L"DriverTest");
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case TestStageFsRtl:
|
||||||
|
NtoskrnlFsRtlTest(KeyHandle);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
ASSERT(FALSE);
|
ASSERT(FALSE);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -14,5 +14,6 @@
|
||||||
<file>ntos_ke.c</file>
|
<file>ntos_ke.c</file>
|
||||||
<file>ntos_ob.c</file>
|
<file>ntos_ob.c</file>
|
||||||
<file>ntos_pools.c</file>
|
<file>ntos_pools.c</file>
|
||||||
|
<file>ntos_fsrtl.c</file>
|
||||||
<file>kmtest.rc</file>
|
<file>kmtest.rc</file>
|
||||||
</module>
|
</module>
|
||||||
|
|
125
rostests/drivers/kmtest/ntos_fsrtl.c
Normal file
125
rostests/drivers/kmtest/ntos_fsrtl.c
Normal file
|
@ -0,0 +1,125 @@
|
||||||
|
/*
|
||||||
|
* FsRtl Test
|
||||||
|
*
|
||||||
|
* Copyright 2010 Pierre Schweitzer <pierre.schweitzer@reactos.org>
|
||||||
|
*
|
||||||
|
* This library is free software; you can redistribute it and/or
|
||||||
|
* modify it under the terms of the GNU Library General Public
|
||||||
|
* License as published by the Free Software Foundation; either
|
||||||
|
* version 2 of the License, or (at your option) any later version.
|
||||||
|
*
|
||||||
|
* This library is distributed in the hope that it will be useful,
|
||||||
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
* Library General Public License for more details.
|
||||||
|
*
|
||||||
|
* You should have received a copy of the GNU Library General Public
|
||||||
|
* License along with this library; see the file COPYING.LIB.
|
||||||
|
* If not, write to the Free Software Foundation,
|
||||||
|
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* INCLUDES *******************************************************************/
|
||||||
|
|
||||||
|
#include "kmtest.h"
|
||||||
|
#include <ntifs.h>
|
||||||
|
|
||||||
|
#define NDEBUG
|
||||||
|
#include "debug.h"
|
||||||
|
|
||||||
|
/* PRIVATE FUNCTIONS **********************************************************/
|
||||||
|
|
||||||
|
VOID FsRtlIsNameInExpressionTest()
|
||||||
|
{
|
||||||
|
UNICODE_STRING Expression, Name;
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"ntdll.dll");
|
||||||
|
RtlInitUnicodeString(&Name, L".");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"~1");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"..");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"ntdll.dll");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"smss.exe");
|
||||||
|
RtlInitUnicodeString(&Name, L".");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"~1");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"..");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"ntdll.dll");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"NTDLL.dll");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"nt??krnl.???");
|
||||||
|
RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"he*o");
|
||||||
|
RtlInitUnicodeString(&Name, L"hello");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"helo");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"hella");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"he*");
|
||||||
|
RtlInitUnicodeString(&Name, L"hello");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"helo");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"hella");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"*.cpl");
|
||||||
|
RtlInitUnicodeString(&Name, L"kdcom.dll");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"bootvid.dll");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"ntoskrnl.exe");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L".");
|
||||||
|
RtlInitUnicodeString(&Name, L"NTDLL.DLL");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"F0_*.*");
|
||||||
|
RtlInitUnicodeString(&Name, L".");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"..");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"SETUP.EXE");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"F0_001");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"*.TTF");
|
||||||
|
RtlInitUnicodeString(&Name, L".");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"..");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
RtlInitUnicodeString(&Name, L"SETUP.INI");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == FALSE, "expected FALSE, got TRUE");
|
||||||
|
|
||||||
|
RtlInitUnicodeString(&Expression, L"*");
|
||||||
|
RtlInitUnicodeString(&Name, L".");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"..");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
RtlInitUnicodeString(&Name, L"SETUP.INI");
|
||||||
|
ok(FsRtlIsNameInExpression(&Expression, &Name, FALSE, NULL) == TRUE, "expected TRUE, got FALSE");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* PUBLIC FUNCTIONS ***********************************************************/
|
||||||
|
|
||||||
|
VOID
|
||||||
|
NtoskrnlFsRtlTest(HANDLE KeyHandle)
|
||||||
|
{
|
||||||
|
FsRtlIsNameInExpressionTest();
|
||||||
|
|
||||||
|
FinishTest(KeyHandle, L"FsRtlTest");
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue