ReactOS  0.4.14-dev-317-g96040ec
RtlDosSearchPath_Ustr.c File Reference
#include "precomp.h"
Include dependency graph for RtlDosSearchPath_Ustr.c:

Go to the source code of this file.

Macros

#define ok_eq_ulong(value, expected)   ok((value) == (expected), #value " = %lu, expected %lu\n", value, expected)
 
#define ok_eq_hex(value, expected)   ok((value) == (expected), #value " = 0x%lx, expected 0x%lx\n", value, expected)
 
#define ok_eq_pointer(value, expected)   ok((value) == (expected), #value " = %p, expected %p\n", value, expected)
 
#define ok_eq_ustr(str1, str2)
 

Functions

 START_TEST (RtlDosSearchPath_Ustr)
 

Macro Definition Documentation

◆ ok_eq_hex

#define ok_eq_hex (   value,
  expected 
)    ok((value) == (expected), #value " = 0x%lx, expected 0x%lx\n", value, expected)

Definition at line 27 of file RtlDosSearchPath_Ustr.c.

◆ ok_eq_pointer

#define ok_eq_pointer (   value,
  expected 
)    ok((value) == (expected), #value " = %p, expected %p\n", value, expected)

Definition at line 28 of file RtlDosSearchPath_Ustr.c.

◆ ok_eq_ulong

#define ok_eq_ulong (   value,
  expected 
)    ok((value) == (expected), #value " = %lu, expected %lu\n", value, expected)

Definition at line 26 of file RtlDosSearchPath_Ustr.c.

◆ ok_eq_ustr

#define ok_eq_ustr (   str1,
  str2 
)
Value:
do { \
ok((str1)->Buffer == (str2)->Buffer, "Buffer modified\n"); \
ok((str1)->Length == (str2)->Length, "Length modified\n"); \
ok((str1)->MaximumLength == (str2)->MaximumLength, "MaximumLength modified\n"); \
} while (0)
Definition: bufpool.h:45
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:101
UnicodeString MaximumLength
Definition: rtlfuncs.h:2982

Definition at line 30 of file RtlDosSearchPath_Ustr.c.

Function Documentation

◆ START_TEST()

START_TEST ( RtlDosSearchPath_Ustr  )

Definition at line 36 of file RtlDosSearchPath_Ustr.c.

37 {
39  UNICODE_STRING PathString;
40  UNICODE_STRING FileNameString;
41  UNICODE_STRING ExtensionString;
42  UNICODE_STRING CallerBuffer;
44  PUNICODE_STRING FullNameOut;
45  UNICODE_STRING EmptyString;
46  SIZE_T FilePartSize;
48  INT i;
49 
50  RtlInitUnicodeString(&EmptyString, NULL);
51 
52  /* NULLs */
53  StartSeh()
57 
58  RtlInitUnicodeString(&FileNameString, NULL);
59  StartSeh()
60  Status = RtlDosSearchPath_Ustr(0, NULL, &FileNameString, NULL, NULL, NULL, NULL, NULL, NULL);
63 
64  RtlInitUnicodeString(&PathString, NULL);
65  StartSeh()
66  Status = RtlDosSearchPath_Ustr(0, &PathString, NULL, NULL, NULL, NULL, NULL, NULL, NULL);
69  ok_eq_ustr(&PathString, &EmptyString);
70 
71  /* Minimal valid set of parameters */
72  RtlInitUnicodeString(&PathString, NULL);
73  RtlInitUnicodeString(&FileNameString, NULL);
74  StartSeh()
75  Status = RtlDosSearchPath_Ustr(0, &PathString, &FileNameString, NULL, NULL, NULL, NULL, NULL, NULL);
78  ok_eq_ustr(&PathString, &EmptyString);
79  ok_eq_ustr(&FileNameString, &EmptyString);
80 
81  /* Check valid flags */
82  for (i = 0; i < 32; i++)
83  {
84  RtlInitUnicodeString(&PathString, NULL);
85  RtlInitUnicodeString(&FileNameString, NULL);
86  StartSeh()
87  Status = RtlDosSearchPath_Ustr(1 << i, &PathString, &FileNameString, NULL, NULL, NULL, NULL, NULL, NULL);
90  ok_eq_ustr(&PathString, &EmptyString);
91  ok_eq_ustr(&FileNameString, &EmptyString);
92  }
93 
94  RtlInitUnicodeString(&PathString, NULL);
95  RtlInitUnicodeString(&FileNameString, NULL);
96  StartSeh()
97  Status = RtlDosSearchPath_Ustr(7, &PathString, &FileNameString, NULL, NULL, NULL, NULL, NULL, NULL);
100  ok_eq_ustr(&PathString, &EmptyString);
101  ok_eq_ustr(&FileNameString, &EmptyString);
102 
103  /* Everything except PathString */
104  RtlInitUnicodeString(&FileNameString, NULL);
105  RtlInitUnicodeString(&ExtensionString, NULL);
106  RtlInitUnicodeString(&CallerBuffer, NULL);
108  FullNameOut = InvalidPointer;
109  FilePartSize = (SIZE_T)-1;
110  LengthNeeded = (SIZE_T)-1;
111  StartSeh()
113  NULL,
114  &FileNameString,
115  &ExtensionString,
116  &CallerBuffer,
117  &DynamicString,
118  &FullNameOut,
119  &FilePartSize,
120  &LengthNeeded);
123  ok_eq_ustr(&FileNameString, &EmptyString);
124  ok_eq_ustr(&ExtensionString, &EmptyString);
125  ok_eq_ustr(&CallerBuffer, &EmptyString);
126  ok_eq_ustr(&DynamicString, &EmptyString);
127  ok_eq_pointer(FullNameOut, NULL);
128  ok_eq_ulong(FilePartSize, 0UL);
130 
131  /* Everything except FileNameString */
132  RtlInitUnicodeString(&PathString, NULL);
133  RtlInitUnicodeString(&ExtensionString, NULL);
134  RtlInitUnicodeString(&CallerBuffer, NULL);
136  FullNameOut = InvalidPointer;
137  FilePartSize = (SIZE_T)-1;
138  LengthNeeded = (SIZE_T)-1;
139  StartSeh()
141  &PathString,
142  NULL,
143  &ExtensionString,
144  &CallerBuffer,
145  &DynamicString,
146  &FullNameOut,
147  &FilePartSize,
148  &LengthNeeded);
151  ok_eq_ustr(&PathString, &EmptyString);
152  ok_eq_ustr(&ExtensionString, &EmptyString);
153  ok_eq_ustr(&CallerBuffer, &EmptyString);
154  ok_eq_ustr(&DynamicString, &EmptyString);
155  ok_eq_pointer(FullNameOut, NULL);
156  ok_eq_ulong(FilePartSize, 0UL);
158 
159  /* Passing CallerBuffer and DynamicString, but not FullNameOut is invalid */
160  RtlInitUnicodeString(&PathString, NULL);
161  RtlInitUnicodeString(&FileNameString, NULL);
162  RtlInitUnicodeString(&ExtensionString, NULL);
163  RtlInitUnicodeString(&CallerBuffer, NULL);
165  FullNameOut = InvalidPointer;
166  FilePartSize = (SIZE_T)-1;
167  LengthNeeded = (SIZE_T)-1;
168  StartSeh()
170  &PathString,
171  &FileNameString,
172  &ExtensionString,
173  &CallerBuffer,
174  &DynamicString,
175  NULL,
176  &FilePartSize,
177  &LengthNeeded);
180  ok_eq_ustr(&PathString, &EmptyString);
181  ok_eq_ustr(&FileNameString, &EmptyString);
182  ok_eq_ustr(&ExtensionString, &EmptyString);
183  ok_eq_ustr(&CallerBuffer, &EmptyString);
184  ok_eq_ustr(&DynamicString, &EmptyString);
185  ok_eq_ulong(FilePartSize, 0UL);
187 
188  /* All parameters given */
189  RtlInitUnicodeString(&PathString, NULL);
190  RtlInitUnicodeString(&FileNameString, NULL);
191  RtlInitUnicodeString(&ExtensionString, NULL);
192  RtlInitUnicodeString(&CallerBuffer, NULL);
194  FullNameOut = InvalidPointer;
195  FilePartSize = (SIZE_T)-1;
196  LengthNeeded = (SIZE_T)-1;
197  StartSeh()
199  &PathString,
200  &FileNameString,
201  &ExtensionString,
202  &CallerBuffer,
203  &DynamicString,
204  &FullNameOut,
205  &FilePartSize,
206  &LengthNeeded);
209  ok_eq_ustr(&PathString, &EmptyString);
210  ok_eq_ustr(&FileNameString, &EmptyString);
211  ok_eq_ustr(&ExtensionString, &EmptyString);
212  ok_eq_ustr(&CallerBuffer, &EmptyString);
213  ok_eq_ustr(&DynamicString, &EmptyString);
214  ok_eq_pointer(FullNameOut, NULL);
215  ok_eq_ulong(FilePartSize, 0UL);
217 }
#define ok_eq_ulong(value, expected)
#define ok_eq_ustr(str1, str2)
#define STATUS_INVALID_PARAMETER
Definition: udferr_usr.h:135
LONG NTSTATUS
Definition: precomp.h:26
#define ok_eq_pointer(value, expected)
#define StartSeh()
Definition: _sntprintf.h:16
int32_t INT
Definition: typedefs.h:56
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
Definition: glfuncs.h:248
NTSYSAPI NTSTATUS NTAPI RtlDosSearchPath_Ustr(_In_ ULONG Flags, _In_ PUNICODE_STRING PathString, _In_ PUNICODE_STRING FileNameString, _In_ PUNICODE_STRING ExtensionString, _In_ PUNICODE_STRING CallerBuffer, _Inout_opt_ PUNICODE_STRING DynamicString, _Out_opt_ PUNICODE_STRING *FullNameOut, _Out_opt_ PSIZE_T FilePartSize, _Out_opt_ PSIZE_T LengthNeeded)
smooth NULL
Definition: ftsmooth.c:416
#define InvalidPointer
#define ok_eq_hex(value, expected)
#define for
Definition: utility.h:88
Status
Definition: gdiplustypes.h:24
ULONG_PTR SIZE_T
Definition: typedefs.h:78
#define STATUS_NO_SUCH_FILE
Definition: udferr_usr.h:137
NTSYSAPI VOID NTAPI RtlInitUnicodeString(PUNICODE_STRING DestinationString, PCWSTR SourceString)
_Must_inspect_result_ _In_ PFILE_OBJECT _In_ SECURITY_INFORMATION _In_ ULONG _Out_opt_ PULONG LengthNeeded
Definition: fltkernel.h:1342
return STATUS_SUCCESS
Definition: btrfs.c:2938
#define UL
Definition: tui.h:83
#define EndSeh(ExpectedStatus)
Definition: _sntprintf.h:17
IN PUNICODE_STRING IN PUNICODE_STRING DynamicString