2 * PROJECT: ReactOS api tests
3 * LICENSE: GPLv2+ - See COPYING in the top level directory
4 * PURPOSE: Test for GetCurrentDirectory
5 * PROGRAMMER: Thomas Faber <thfabba@gmx.de>
8 #define WIN32_NO_STATUS
10 #include <wine/test.h>
11 #include <ndk/rtltypes.h>
20 const UCHAR
*Array
= Buffer
;
23 for (i
= 0; i
< Size
; i
++)
24 if (Array
[i
] != Value
)
26 trace("Expected %x, found %x at offset %lu\n", Value
, Array
[i
], (ULONG
)i
);
40 const CHAR
*Chars
= Buffer
;
41 const UCHAR
*UChars
= Buffer
;
42 SIZE_T Length
= strlen(Expected
);
47 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
51 for (i
= 0; i
< Length
; i
++)
52 if (Chars
[i
] != Expected
[i
])
54 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
58 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
62 if (UChars
[i
] != Fill
)
64 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
78 const WCHAR
*Chars
= Buffer
;
79 const UCHAR
*UChars
= Buffer
;
80 SIZE_T Length
= wcslen(Expected
);
85 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
89 for (i
= 0; i
< Length
; i
++)
90 if (Chars
[i
] != Expected
[i
])
92 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
96 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
101 for (; i
< Size
; i
++)
102 if (UChars
[i
] != Fill
)
104 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
112 TestGetCurrentDirectoryA(VOID
)
114 CHAR Buffer
[MAX_PATH
];
119 Ret
= SetCurrentDirectoryA("C:\\");
120 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
122 Length
= GetCurrentDirectoryA(0, NULL
);
123 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
125 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
126 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
127 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
128 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
129 ok(Okay
, "CheckStringBufferA failed\n");
131 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
132 Length
= GetCurrentDirectoryA(0, Buffer
);
133 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
134 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
135 ok(Okay
, "CheckBuffer failed\n");
137 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
138 Length
= GetCurrentDirectoryA(1, Buffer
);
139 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
140 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
141 ok(Okay
, "CheckBuffer failed\n");
143 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
144 Length
= GetCurrentDirectoryA(2, Buffer
);
145 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
146 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
147 ok(Okay
, "CheckBuffer failed\n");
149 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
150 Length
= GetCurrentDirectoryA(3, Buffer
);
151 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
152 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
153 ok(Okay
, "CheckBuffer failed\n");
155 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
156 Length
= GetCurrentDirectoryA(4, Buffer
);
157 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
158 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
159 ok(Okay
, "CheckStringBufferA failed\n");
164 TestGetCurrentDirectoryW(VOID
)
166 WCHAR Buffer
[MAX_PATH
];
171 Ret
= SetCurrentDirectoryW(L
"C:\\");
172 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
174 Length
= GetCurrentDirectoryW(0, NULL
);
175 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
177 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
178 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
179 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
180 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
181 ok(Okay
, "CheckStringBufferW failed\n");
183 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
184 Length
= GetCurrentDirectoryW(0, Buffer
);
185 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
186 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
187 ok(Okay
, "CheckBuffer failed\n");
189 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
190 Length
= GetCurrentDirectoryW(1, Buffer
);
191 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
192 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
193 ok(Okay
, "CheckBuffer failed\n");
195 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
196 Length
= GetCurrentDirectoryW(2, Buffer
);
197 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
198 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
199 ok(Okay
, "CheckBuffer failed\n");
201 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
202 Length
= GetCurrentDirectoryW(3, Buffer
);
203 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
204 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
205 ok(Okay
, "CheckBuffer failed\n");
207 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
208 Length
= GetCurrentDirectoryW(4, Buffer
);
209 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
210 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
211 ok(Okay
, "CheckStringBufferW failed\n");
214 START_TEST(GetCurrentDirectory
)
216 TestGetCurrentDirectoryA();
217 TestGetCurrentDirectoryW();