From f4d63d318ddc84b14ce18be2d61bc9d432558b72 Mon Sep 17 00:00:00 2001 From: zwtmichael Date: Wed, 10 May 2023 19:23:19 +0800 Subject: [PATCH] fix errCode Signed-off-by: zwtmichael --- .../src/interface/include/doc_errno.h | 1 + .../src/interface/src/doc_errno.cpp | 3 +++ .../interface/src/document_store_manager.cpp | 1 - .../src/oh_adapter/src/sqlite_utils.cpp | 4 ++++ .../test/unittest/api/documentdb_api_test.cpp | 21 +++++++++++++++++++ 5 files changed, 29 insertions(+), 1 deletion(-) diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/include/doc_errno.h b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/include/doc_errno.h index 3189dccb..274bc841 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/include/doc_errno.h +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/include/doc_errno.h @@ -39,6 +39,7 @@ constexpr int E_JSON_PATH_NOT_EXISTS = E_BASE + 41; 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; int TransferDocErr(int err); } // namespace DocumentDB diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/doc_errno.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/doc_errno.cpp index 533c5404..46be82ab 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/doc_errno.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/doc_errno.cpp @@ -77,6 +77,9 @@ int TransferDocErr(int err) case -E_INNER_ERROR: outErr = GRD_INNER_ERR; break; + case -E_INVALID_FILE_FORMAT: + outErr = GRD_INVALID_FILE_FORMAT; + break; default: outErr = GRD_INNER_ERR; break; diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/document_store_manager.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/document_store_manager.cpp index 42afc2fc..138c86ab 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/document_store_manager.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/interface/src/document_store_manager.cpp @@ -69,7 +69,6 @@ int DocumentStoreManager::GetDocumentStore(const std::string &path, const std::s GLOGE("Check document db open flags failed."); return -E_INVALID_ARGS; } - if (!CheckDBCreate(flags, path)) { GLOGE("Open db failed, file no exists."); return -E_INVALID_ARGS; diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/oh_adapter/src/sqlite_utils.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/oh_adapter/src/sqlite_utils.cpp index 76f2f887..328c87ec 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/oh_adapter/src/sqlite_utils.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/src/oh_adapter/src/sqlite_utils.cpp @@ -38,6 +38,10 @@ int MapSqliteError(int errCode) case SQLITE_CANTOPEN: case SQLITE_READONLY: return -E_FILE_OPERATION; + case SQLITE_NOTADB: + return -E_INVALID_FILE_FORMAT; + case SQLITE_BUSY: + return -E_RESOURCE_BUSY; default: return -E_ERROR; } diff --git a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_api_test.cpp b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_api_test.cpp index 4671347b..ab4c1dfa 100644 --- a/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_api_test.cpp +++ b/services/distributeddataservice/service/data_share/gaussdb_rd_simple/test/unittest/api/documentdb_api_test.cpp @@ -125,6 +125,27 @@ HWTEST_F(DocumentDBApiTest, OpenDBTest003, TestSize.Level0) EXPECT_EQ(status, GRD_OK); } +/** + * @tc.name: OpenDBTest004 + * @tc.desc: Test open document db while db is not db file + * @tc.type: FUNC + * @tc.require: + * @tc.author: zhuwentao + */ +HWTEST_F(DocumentDBApiTest, OpenDBTest004, TestSize.Level0) +{ + std::string path = "./test.txt"; + FILE *fp; + fp = fopen("./test.txt", "w"); + fwrite("hello", 5, 5, fp); + fclose(fp); + GRD_DB *db = nullptr; + int status = GRD_DBOpen(path.c_str(), nullptr, GRD_DB_OPEN_ONLY, &db); + EXPECT_EQ(status, GRD_INVALID_FILE_FORMAT); + + DocumentDBTestUtils::RemoveTestDbFiles(path); +} + /** * @tc.name: OpenDBPathTest001 * @tc.desc: Test open document db with NULL path -- Gitee