diff options
author | Aaron Clauson <aaron@sipsorcery.com> | 2019-11-30 21:31:46 +0000 |
---|---|---|
committer | Aaron Clauson <aaron@sipsorcery.com> | 2019-11-30 21:31:46 +0000 |
commit | 70ed2ab7ef9e7ebf56f77b7c410a345ff455938f (patch) | |
tree | 0a5fe9362dabea71bc8b4571c2a1292ad29932a9 /src | |
parent | 114e89e596a66f3cb1ebd8fc2d775b61c5722245 (diff) |
Add unit test for DB creation with unicode path
An issue arose when attempting to switch back to the main repo version of leveldb when the bitcoin data directory uses a unicode path. The leveldb windows file IO wrapper was using the *A ANSI win32 calls instead of the Unicode *W ones. This unit test will catch if the path created by leveldb doesn't match what we're expecting. For more info see https://github.com/google/leveldb/issues/755.
Diffstat (limited to 'src')
-rw-r--r-- | src/test/dbwrapper_tests.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/test/dbwrapper_tests.cpp b/src/test/dbwrapper_tests.cpp index 57d5b2bb5c..b647c0f70b 100644 --- a/src/test/dbwrapper_tests.cpp +++ b/src/test/dbwrapper_tests.cpp @@ -397,6 +397,18 @@ BOOST_AUTO_TEST_CASE(iterator_string_ordering) } } +BOOST_AUTO_TEST_CASE(unicodepath) +{ + // Attempt to create a database with a utf8 character in the path. + // On Windows this test will fail if the directory is created using + // the ANSI CreateDirectoryA call and the code page isn't UTF8. + // It will succeed if the created with CreateDirectoryW. + fs::path ph = GetDataDir() / "test_runner_₿_🏃_20191128_104644"; + CDBWrapper dbw(ph, (1 << 20)); + + fs::path lockPath = ph / "LOCK"; + BOOST_CHECK(boost::filesystem::exists(lockPath)); +} BOOST_AUTO_TEST_SUITE_END() |