6da946d47d7d91b0ee5930a94642ef0cb5ab7d07
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>
10 #define WIN32_NO_STATUS
12 #include <ndk/rtltypes.h>
21 const UCHAR
*Array
= Buffer
;
24 for (i
= 0; i
< Size
; i
++)
25 if (Array
[i
] != Value
)
27 trace("Expected %x, found %x at offset %lu\n", Value
, Array
[i
], (ULONG
)i
);
41 const CHAR
*Chars
= Buffer
;
42 const UCHAR
*UChars
= Buffer
;
43 SIZE_T Length
= strlen(Expected
);
48 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
52 for (i
= 0; i
< Length
; i
++)
53 if (Chars
[i
] != Expected
[i
])
55 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
59 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
63 if (UChars
[i
] != Fill
)
65 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
79 const WCHAR
*Chars
= Buffer
;
80 const UCHAR
*UChars
= Buffer
;
81 SIZE_T Length
= wcslen(Expected
);
86 ok(0, "Size = %lu, Length = %lu\n", (ULONG
)Size
, (ULONG
)Length
);
90 for (i
= 0; i
< Length
; i
++)
91 if (Chars
[i
] != Expected
[i
])
93 trace("Expected %x, found %x at offset %lu\n", Expected
[i
], Chars
[i
], (ULONG
)i
);
97 ok(Chars
[i
] == 0, "Expected null terminator, found %x at offset %lu\n", Chars
[i
], (ULONG
)i
);
102 for (; i
< Size
; i
++)
103 if (UChars
[i
] != Fill
)
105 trace("Expected %x, found %x at offset %lu\n", Fill
, UChars
[i
], (ULONG
)i
);
113 TestGetCurrentDirectoryA(VOID
)
115 CHAR Buffer
[MAX_PATH
];
120 Ret
= SetCurrentDirectoryA("C:\\");
121 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
123 Length
= GetCurrentDirectoryA(0, NULL
);
124 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
126 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
127 Length
= GetCurrentDirectoryA(sizeof(Buffer
), Buffer
);
128 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
129 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
130 ok(Okay
, "CheckStringBufferA failed\n");
132 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
133 Length
= GetCurrentDirectoryA(0, Buffer
);
134 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
135 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
136 ok(Okay
, "CheckBuffer failed\n");
138 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
139 Length
= GetCurrentDirectoryA(1, Buffer
);
140 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
141 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
142 ok(Okay
, "CheckBuffer failed\n");
144 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
145 Length
= GetCurrentDirectoryA(2, Buffer
);
146 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
147 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
148 ok(Okay
, "CheckBuffer failed\n");
150 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
151 Length
= GetCurrentDirectoryA(3, Buffer
);
152 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
153 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
154 ok(Okay
, "CheckBuffer failed\n");
156 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
157 Length
= GetCurrentDirectoryA(4, Buffer
);
158 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
159 Okay
= CheckStringBufferA(Buffer
, sizeof(Buffer
), "C:\\", 0x55);
160 ok(Okay
, "CheckStringBufferA failed\n");
165 TestGetCurrentDirectoryW(VOID
)
167 WCHAR Buffer
[MAX_PATH
];
172 Ret
= SetCurrentDirectoryW(L
"C:\\");
173 ok(Ret
== TRUE
, "SetCurrentDirectory failed with %lu\n", GetLastError());
175 Length
= GetCurrentDirectoryW(0, NULL
);
176 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
178 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
179 Length
= GetCurrentDirectoryW(sizeof(Buffer
) / sizeof(WCHAR
), Buffer
);
180 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
181 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
182 ok(Okay
, "CheckStringBufferW failed\n");
184 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
185 Length
= GetCurrentDirectoryW(0, Buffer
);
186 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
187 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
188 ok(Okay
, "CheckBuffer failed\n");
190 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
191 Length
= GetCurrentDirectoryW(1, Buffer
);
192 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
193 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
194 ok(Okay
, "CheckBuffer failed\n");
196 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
197 Length
= GetCurrentDirectoryW(2, Buffer
);
198 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
199 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
200 ok(Okay
, "CheckBuffer failed\n");
202 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
203 Length
= GetCurrentDirectoryW(3, Buffer
);
204 ok(Length
== sizeof("C:\\"), "Length = %lu\n", Length
);
205 Okay
= CheckBuffer(Buffer
, sizeof(Buffer
), 0x55);
206 ok(Okay
, "CheckBuffer failed\n");
208 RtlFillMemory(Buffer
, sizeof(Buffer
), 0x55);
209 Length
= GetCurrentDirectoryW(4, Buffer
);
210 ok(Length
== sizeof("C:\\") - 1, "Length = %lu\n", Length
);
211 Okay
= CheckStringBufferW(Buffer
, sizeof(Buffer
), L
"C:\\", 0x55);
212 ok(Okay
, "CheckStringBufferW failed\n");
215 START_TEST(GetCurrentDirectory
)
217 TestGetCurrentDirectoryA();
218 TestGetCurrentDirectoryW();