mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 16:36:33 +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 AttachDeviceTest(PDEVICE_OBJECT, PWCHAR);
|
||||
VOID LowerDeviceKernelAPITest(PDEVICE_OBJECT, BOOLEAN);
|
||||
VOID NtoskrnlFsRtlTest(HANDLE KeyHandle);
|
||||
|
||||
typedef enum {
|
||||
TestStageExTimer = 0,
|
||||
|
@ -185,6 +186,7 @@ typedef enum {
|
|||
TestStageOb,
|
||||
TestStageKeStall,
|
||||
TestStageDrv,
|
||||
TestStageFsRtl,
|
||||
TestStageMax
|
||||
} TEST_STAGE;
|
||||
|
||||
|
@ -399,6 +401,10 @@ RunKernelModeTest(PDRIVER_OBJECT DriverObject,
|
|||
FinishTest(KeyHandle, L"DriverTest");
|
||||
break;
|
||||
|
||||
case TestStageFsRtl:
|
||||
NtoskrnlFsRtlTest(KeyHandle);
|
||||
break;
|
||||
|
||||
default:
|
||||
ASSERT(FALSE);
|
||||
break;
|
||||
|
|
|
@ -14,5 +14,6 @@
|
|||
<file>ntos_ke.c</file>
|
||||
<file>ntos_ob.c</file>
|
||||
<file>ntos_pools.c</file>
|
||||
<file>ntos_fsrtl.c</file>
|
||||
<file>kmtest.rc</file>
|
||||
</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…
Reference in a new issue