summaryrefslogtreecommitdiff
path: root/gtests/pk11_gtest
diff options
context:
space:
mode:
authorMasatoshi Kimura <VYV03354@nifty.ne.jp>2022-03-22 17:01:53 +0000
committerMasatoshi Kimura <VYV03354@nifty.ne.jp>2022-03-22 17:01:53 +0000
commitd989ef5a6e70f54227abe5e5ea7a1efaa5c008fe (patch)
treebe393297612dd5dfe4975db8be125c861a4ed9ef /gtests/pk11_gtest
parente70b86ce336fbb68107a770a52f96ccbb6d0b34d (diff)
downloadnss-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.cc41
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