2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for GetCurrentDirectory
5 * PROGRAMMER: Thomas Faber <thomas.faber@reactos.org>
17 const UCHAR
*Array
= Buffer
;
20 for (i
= 0; i
< Size
; i
++)
21 if (Array
[i
] != Value
)
23 trace("Expected %x, found %x at offset %lu\n", Value
, Array
[i
], (ULONG
)i
);
37 const CHAR
*Chars
= Buffer
;
38 const UCHAR
*UChars
= Buffer
;
39 SIZE_T Length
= strlen(Expected
);
44 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
48 for (i
= 0; i
< Length
; i
++)
49 if (Chars
[i
] != Expected
[i
])
51 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
55 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
59 if (UChars
[i
] != Fill
)
61 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
75 const WCHAR
*Chars
= Buffer
;
76 const UCHAR
*UChars
= Buffer
;
77 SIZE_T Length
= wcslen(Expected
);
82 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
86 for (i
= 0; i
< Length
; i
++)
87 if (Chars
[i
] != Expected
[i
])
89 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
93 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
99 if (UChars
[i
] != Fill
)
101 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
109 TestGetCurrentDirectoryA(VOID
)
111 CHAR Buffer
[MAX_PATH
];
116 Ret
= SetCurrentDirectoryA("C:\\");
117 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
119 Length
= GetCurrentDirectoryA(0, NULL
);
120 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
122 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
123 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
124 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
125 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
126 ok(Okay
, "CheckStringBufferA failed\n");
128 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
129 Length
= GetCurrentDirectoryA(0, Buffer
);
130 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
131 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
132 ok(Okay
, "CheckBuffer failed\n");
134 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
135 Length
= GetCurrentDirectoryA(1, Buffer
);
136 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
137 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
138 ok(Okay
, "CheckBuffer failed\n");
140 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
141 Length
= GetCurrentDirectoryA(2, Buffer
);
142 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
143 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
144 ok(Okay
, "CheckBuffer failed\n");
146 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
147 Length
= GetCurrentDirectoryA(3, Buffer
);
148 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
149 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
150 ok(Okay
, "CheckBuffer failed\n");
152 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
153 Length
= GetCurrentDirectoryA(4, Buffer
);
154 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
155 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
156 ok(Okay
, "CheckStringBufferA failed\n");
161 TestGetCurrentDirectoryW(VOID
)
163 WCHAR Buffer
[MAX_PATH
];
168 Ret
= SetCurrentDirectoryW(L
"C:\\");
169 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
171 Length
= GetCurrentDirectoryW(0, NULL
);
172 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
174 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
175 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
176 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
177 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
178 ok(Okay
, "CheckStringBufferW failed\n");
180 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
181 Length
= GetCurrentDirectoryW(0, Buffer
);
182 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
183 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
184 ok(Okay
, "CheckBuffer failed\n");
186 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
187 Length
= GetCurrentDirectoryW(1, Buffer
);
188 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
189 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
190 ok(Okay
, "CheckBuffer failed\n");
192 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
193 Length
= GetCurrentDirectoryW(2, Buffer
);
194 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
195 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
196 ok(Okay
, "CheckBuffer failed\n");
198 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
199 Length
= GetCurrentDirectoryW(3, Buffer
);
200 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
201 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
202 ok(Okay
, "CheckBuffer failed\n");
204 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
205 Length
= GetCurrentDirectoryW(4, Buffer
);
206 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
207 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
208 ok(Okay
, "CheckStringBufferW failed\n");
211 START_TEST(GetCurrentDirectory
)
213 TestGetCurrentDirectoryA();
214 TestGetCurrentDirectoryW();