From aa75574d9f246cad4a2836b58738e906f835f955 Mon Sep 17 00:00:00 2001 From: Jeremyzz Date: Thu, 1 Jun 2023 10:54:58 +0800 Subject: [PATCH 1/2] add errCode and change some Signed-off-by: Jeremyzz --- .../src/interface/include/doc_errno.h | 1 + .../src/interface/src/doc_errno.cpp | 6 ++-- .../interface/src/document_store_manager.cpp | 2 +- .../src/oh_adapter/src/sqlite_utils.cpp | 1 + .../test/unittest/api/documentdb_api_test.cpp | 30 +++++++++++++++++++ 5 files changed, 37 insertions(+), 3 deletions(-) diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/include/doc_errno.h b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/include/doc_errno.h index 274bc841..75f636b5 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/include/doc_errno.h +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/include/doc_errno.h @@ -40,6 +40,7 @@ constexpr int E_RESOURCE_BUSY = E_BASE + 50; constexpr int E_FAILED_MEMORY_ALLOCATE = E_BASE + 51; constexpr int E_INNER_ERROR = E_BASE + 52; constexpr int E_INVALID_FILE_FORMAT = E_BASE + 53; +constexpr int E_FAILED_FILE_OPERATION = E_BASE + 54; int TransferDocErr(int err); } // namespace DocumentDB diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/doc_errno.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/doc_errno.cpp index 3c8887e9..bf9dca10 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/doc_errno.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/doc_errno.cpp @@ -21,8 +21,8 @@ namespace DocumentDB { int GetErrorCategory(int errCode) { int categoryCode = errCode % 1000000; // 1000000: mod to get last 6 digits - categoryCode /= 1000; // 1000: deviced to remove first 3 digits - categoryCode *= 1000; // 1000: multiply to pad the output + categoryCode /= 1000; // 1000: deviced to remove first 3 digits + categoryCode *= 1000; // 1000: multiply to pad the output return categoryCode; } @@ -63,6 +63,8 @@ int TransferDocErr(int err) return GetErrorCategory(GRD_FAILED_MEMORY_ALLOCATE); case -E_INVALID_FILE_FORMAT: return GetErrorCategory(GRD_INVALID_FILE_FORMAT); + case -E_FAILED_FILE_OPERATION: + return GetErrorCategory(GRD_FAILED_FILE_OPERATION); case -E_INNER_ERROR: default: return GetErrorCategory(GRD_INNER_ERR); diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store_manager.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store_manager.cpp index 138c86ab..c9a91cec 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store_manager.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/interface/src/document_store_manager.cpp @@ -133,7 +133,7 @@ int DocumentStoreManager::CheckDBPath(const std::string &path, std::string &cano if (path.back() == '/') { GLOGE("Invalid path end with slash"); - return -E_INVALID_ARGS; + return -E_FAILED_FILE_OPERATION; } std::string dirPath; diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/src/oh_adapter/src/sqlite_utils.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/src/oh_adapter/src/sqlite_utils.cpp index de37d418..5281df56 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/src/oh_adapter/src/sqlite_utils.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/src/oh_adapter/src/sqlite_utils.cpp @@ -36,6 +36,7 @@ int MapSqliteError(int errCode) return E_OK; case SQLITE_PERM: case SQLITE_CANTOPEN: + return -E_INVALID_ARGS; case SQLITE_READONLY: return -E_FILE_OPERATION; case SQLITE_NOTADB: diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp index d4518ff6..7eae202d 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp @@ -179,6 +179,36 @@ HWTEST_F(DocumentDBApiTest, OpenDBPathTest002, TestSize.Level0) EXPECT_EQ(status, GRD_FAILED_FILE_OPERATION); } +/** + * @tc.name: OpenDBPathTest003 + * @tc.desc: call GRD_DBOpen, input dbFile end with '\' + * @tc.type: FUNC + * @tc.require: + * @tc.author: mazhao + */ +HWTEST_F(DocumentDBApiTest, OpenDBPathTest003, TestSize.Level0) +{ + GRD_DB *db = nullptr; + std::string pathNoPerm = "/root/document.db/"; + int status = GRD_DBOpen(pathNoPerm.c_str(), nullptr, GRD_DB_OPEN_CREATE, &db); + EXPECT_EQ(status, GRD_FAILED_FILE_OPERATION); +} + +/** + * @tc.name: OpenDBPathTest004 + * @tc.desc: call GRD_DBOpen, input dbFile as existed menu + * @tc.type: FUNC + * @tc.require: + * @tc.author: mazhao + */ +HWTEST_F(DocumentDBApiTest, OpenDBPathTest004, TestSize.Level0) +{ + GRD_DB *db = nullptr; + std::string pathNoPerm = "../build"; + int status = GRD_DBOpen(pathNoPerm.c_str(), nullptr, GRD_DB_OPEN_CREATE, &db); + EXPECT_EQ(status, GRD_INVALID_ARGS); +} + /** * @tc.name: OpenDBConfigTest001 * @tc.desc: Test open document db with invalid config option -- Gitee From bf14c0892dd6303fdee344fd5808e0e5f27d359a Mon Sep 17 00:00:00 2001 From: Jeremyzz Date: Thu, 1 Jun 2023 11:08:00 +0800 Subject: [PATCH 2/2] delete some wrong ut Signed-off-by: Jeremyzz --- .../gaussdb_rd/test/unittest/api/documentdb_api_test.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp index 7eae202d..c127bfed 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd/test/unittest/api/documentdb_api_test.cpp @@ -156,7 +156,7 @@ HWTEST_F(DocumentDBApiTest, OpenDBTest004, TestSize.Level0) HWTEST_F(DocumentDBApiTest, OpenDBPathTest001, TestSize.Level0) { GRD_DB *db = nullptr; - std::vector invalidPath = { nullptr, "", "/a/b/c/" }; + std::vector invalidPath = { nullptr, ""}; for (auto path : invalidPath) { GLOGD("OpenDBPathTest001: open db with path: %s", path); int status = GRD_DBOpen(path, nullptr, GRD_DB_OPEN_CREATE, &db); -- Gitee