Author: pschweitzer Date: Wed Sep 29 21:42:11 2010 New Revision: 48932
URL: http://svn.reactos.org/svn/reactos?rev=48932&view=rev Log: [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.
Added: trunk/rostests/drivers/kmtest/ntos_fsrtl.c (with props) Modified: trunk/rostests/drivers/kmtest/kmtest.c trunk/rostests/drivers/kmtest/kmtest.rbuild
Modified: trunk/rostests/drivers/kmtest/kmtest.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/drivers/kmtest/kmtest.c?re... ============================================================================== --- trunk/rostests/drivers/kmtest/kmtest.c [iso-8859-1] (original) +++ trunk/rostests/drivers/kmtest/kmtest.c [iso-8859-1] Wed Sep 29 21:42:11 2010 @@ -174,6 +174,7 @@ 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 @@ TestStageOb, TestStageKeStall, TestStageDrv, + TestStageFsRtl, TestStageMax } TEST_STAGE;
@@ -397,6 +399,10 @@ }
FinishTest(KeyHandle, L"DriverTest"); + break; + + case TestStageFsRtl: + NtoskrnlFsRtlTest(KeyHandle); break;
default:
Modified: trunk/rostests/drivers/kmtest/kmtest.rbuild URL: http://svn.reactos.org/svn/reactos/trunk/rostests/drivers/kmtest/kmtest.rbui... ============================================================================== --- trunk/rostests/drivers/kmtest/kmtest.rbuild [iso-8859-1] (original) +++ trunk/rostests/drivers/kmtest/kmtest.rbuild [iso-8859-1] Wed Sep 29 21:42:11 2010 @@ -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>
Added: trunk/rostests/drivers/kmtest/ntos_fsrtl.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/drivers/kmtest/ntos_fsrtl.... ============================================================================== --- trunk/rostests/drivers/kmtest/ntos_fsrtl.c (added) +++ trunk/rostests/drivers/kmtest/ntos_fsrtl.c [iso-8859-1] Wed Sep 29 21:42:11 2010 @@ -1,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"); +}
Propchange: trunk/rostests/drivers/kmtest/ntos_fsrtl.c ------------------------------------------------------------------------------ svn:eol-style = native