diff options
author | Masatoshi Kimura <VYV03354@nifty.ne.jp> | 2022-03-22 17:01:53 +0000 |
---|---|---|
committer | Masatoshi Kimura <VYV03354@nifty.ne.jp> | 2022-03-22 17:01:53 +0000 |
commit | d989ef5a6e70f54227abe5e5ea7a1efaa5c008fe (patch) | |
tree | be393297612dd5dfe4975db8be125c861a4ed9ef /gtests/pk11_gtest | |
parent | e70b86ce336fbb68107a770a52f96ccbb6d0b34d (diff) | |
download | nss-hg-d989ef5a6e70f54227abe5e5ea7a1efaa5c008fe.tar.gz |
Bug 1757279 - Support UTF-8 library path in the module spec string. r=nss-reviewers,jschanck
Differential Revision: https://phabricator.services.mozilla.com/D139785
Diffstat (limited to 'gtests/pk11_gtest')
-rw-r--r-- | gtests/pk11_gtest/pk11_module_unittest.cc | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/gtests/pk11_gtest/pk11_module_unittest.cc b/gtests/pk11_gtest/pk11_module_unittest.cc index 41ce8c086..eb467c3c4 100644 --- a/gtests/pk11_gtest/pk11_module_unittest.cc +++ b/gtests/pk11_gtest/pk11_module_unittest.cc @@ -81,4 +81,45 @@ TEST_F(Pkcs11ModuleTest, PublicCertificatesToken) { EXPECT_TRUE(PK11_IsFriendly(slot2.get())); } +#if defined(_WIN32) +#include <windows.h> + +class Pkcs11NonAsciiTest : public ::testing::Test { + WCHAR nonAsciiModuleName[MAX_PATH]; + + public: + Pkcs11NonAsciiTest() {} + + void SetUp() override { + WCHAR originalModuleName[MAX_PATH]; + LPWSTR filePart; + DWORD count = SearchPathW(NULL, L"pkcs11testmodule.dll", NULL, MAX_PATH, + nonAsciiModuleName, &filePart); + ASSERT_TRUE(count); + wcscpy(originalModuleName, nonAsciiModuleName); + wcscpy(filePart, L"pkcs11testmodule\u2665.dll"); + BOOL result = CopyFileW(originalModuleName, nonAsciiModuleName, TRUE); + ASSERT_TRUE(result); + ASSERT_EQ(SECSuccess, + SECMOD_AddNewModule("Pkcs11NonAsciiTest", DLL_PREFIX + "pkcs11testmodule\xE2\x99\xA5." DLL_SUFFIX, + 0, 0)) + << PORT_ErrorToName(PORT_GetError()); + } + + void TearDown() override { + int type; + ASSERT_EQ(SECSuccess, SECMOD_DeleteModule("Pkcs11NonAsciiTest", &type)); + ASSERT_EQ(SECMOD_EXTERNAL, type); + BOOL result = DeleteFileW(nonAsciiModuleName); + ASSERT_TRUE(result); + } +}; + +TEST_F(Pkcs11NonAsciiTest, LoadUnload) { + ScopedSECMODModule module(SECMOD_FindModule("Pkcs11NonAsciiTest")); + EXPECT_NE(nullptr, module); +} +#endif // defined(_WIN32) + } // namespace nss_test |