should be it
This commit is contained in:
53
external/duckdb/test/api/test_windows_unicode_path.cpp
vendored
Normal file
53
external/duckdb/test/api/test_windows_unicode_path.cpp
vendored
Normal file
@@ -0,0 +1,53 @@
|
||||
#include "catch.hpp"
|
||||
#include "test_helpers.hpp"
|
||||
#include "duckdb.hpp"
|
||||
#include "duckdb/main/db_instance_cache.hpp"
|
||||
|
||||
using namespace duckdb;
|
||||
using namespace std;
|
||||
|
||||
void TestConnectToDatabase(const string &path, bool create_table = false) {
|
||||
// connect to the database using the standard syntax
|
||||
{
|
||||
DuckDB db(path);
|
||||
Connection con(db);
|
||||
if (create_table) {
|
||||
REQUIRE_NO_FAIL(con.Query("CREATE TABLE test AS SELECT * FROM range(10) t(i)"));
|
||||
}
|
||||
|
||||
auto result = con.Query("SELECT SUM(i) FROM test");
|
||||
REQUIRE(CHECK_COLUMN(result, 0, {45}));
|
||||
}
|
||||
|
||||
// connect to the database using the db instance cache
|
||||
{
|
||||
DBInstanceCache cache;
|
||||
DBConfig config;
|
||||
auto db = cache.CreateInstance(path, config);
|
||||
Connection con(*db);
|
||||
|
||||
auto result = con.Query("SELECT SUM(i) FROM test");
|
||||
REQUIRE(CHECK_COLUMN(result, 0, {45}));
|
||||
}
|
||||
}
|
||||
|
||||
TEST_CASE("Issue #6931 - test windows unicode path", "[windows]") {
|
||||
string dirname = "Moseguí_i_González";
|
||||
auto test_directory = TestDirectoryPath() + "/" + dirname;
|
||||
auto current_directory = TestGetCurrentDirectory();
|
||||
TestCreateDirectory(test_directory);
|
||||
TestChangeDirectory(test_directory);
|
||||
|
||||
// relative path INSIDE folder with accents
|
||||
TestConnectToDatabase("test.db", true);
|
||||
|
||||
TestChangeDirectory("..");
|
||||
// relative path TOWARDS folder with accents
|
||||
TestConnectToDatabase(dirname + "/" + "test.db");
|
||||
|
||||
// absolute path with folder with accents
|
||||
TestConnectToDatabase(current_directory + "/" + test_directory + "/" + "test.db");
|
||||
|
||||
// revert current working directory
|
||||
TestChangeDirectory(current_directory);
|
||||
}
|
||||
Reference in New Issue
Block a user