4#include <winpr/tchar.h>
5#include <winpr/winpr.h>
7static const char testPathExtension[] =
"C:\\Windows\\System32\\cmd.exe";
9int TestPathCchFindExtension(
int argc,
char* argv[])
11 PCSTR pszExt =
nullptr;
12 PCSTR pszTmp =
nullptr;
20 hr = PathCchFindExtensionA(
nullptr,
sizeof(testPathExtension), &pszExt);
23 printf(
"PathCchFindExtensionA unexpectedly succeeded with pszPath = nullptr. result: "
29 hr = PathCchFindExtensionA(testPathExtension, 0, &pszExt);
32 printf(
"PathCchFindExtensionA unexpectedly succeeded with cchPath = 0. result: 0x%08" PRIX32
38 hr = PathCchFindExtensionA(testPathExtension,
sizeof(testPathExtension),
nullptr);
41 printf(
"PathCchFindExtensionA unexpectedly succeeded with ppszExt = nullptr. result: "
49 hr = PathCchFindExtensionA(
"c:\\45.789", 9, &pszExt);
52 printf(
"PathCchFindExtensionA unexpectedly succeeded with unterminated pszPath. result: "
62 hr = PathCchFindExtensionA(pszTmp, 1, &pszExt);
65 printf(
"PathCchFindExtensionA failed with an empty terminated string. result: 0x%08" PRIX32
73 printf(
"PathCchFindExtensionA failed with an empty terminated string: pszExt pointer "
81 pszTmp =
"c:\\4.678\\";
82 hr = PathCchFindExtensionA(pszTmp, 10, &pszExt);
85 printf(
"PathCchFindExtensionA failed with a directory path. result: 0x%08" PRIX32
"\n", hr);
90 if (pszExt != &pszTmp[9])
92 printf(
"PathCchFindExtensionA failed with a directory path: pszExt pointer mismatch\n");
99 if (PathCchFindExtensionA(testPathExtension,
sizeof(testPathExtension), &pszExt) != S_OK)
101 printf(
"PathCchFindExtensionA failure: expected S_OK\n");
105 if (!pszExt || strcmp(pszExt,
".exe") != 0)
107 printf(
"PathCchFindExtensionA failure: unexpected extension\n");
111 printf(
"Extension: %s\n", pszExt);