From b646f567aee9d34abb63770285241ab2693af32a Mon Sep 17 00:00:00 2001 From: MartinChoo <214582617@qq.com> Date: Tue, 12 Aug 2025 20:55:09 +0800 Subject: [PATCH] Fix testcase issues Signed-off-by: MartinChoo <214582617@qq.com> --- unittest/BUILD.gn | 8 ++++++ unittest/sqlite_cksum_test.cpp | 13 +++++++++ unittest/sqlite_compress_test.cpp | 44 ++++++++++++++++++++++++++----- 3 files changed, 59 insertions(+), 6 deletions(-) diff --git a/unittest/BUILD.gn b/unittest/BUILD.gn index 93864a1..f5579b9 100644 --- a/unittest/BUILD.gn +++ b/unittest/BUILD.gn @@ -12,6 +12,7 @@ # limitations under the License. import("//build/test.gni") import("//build/ohos.gni") +import("//third_party/sqlite/sqlite.gni") module_output_path = "third_party_sqlite/third_party_sqlite" @@ -41,6 +42,13 @@ ohos_unittest("libsqlittest") { "./sqlite_test.cpp", ] + if (sqlite_support_check_pages) { + defines = [ + "SQLITE_SUPPORT_PAGE_CHECK_TEST", + "SQLITE_SUPPORT_PAGE_COMPRESS_TEST" + ] + } + configs = [ ":module_private_config" ] external_deps = [ diff --git a/unittest/sqlite_cksum_test.cpp b/unittest/sqlite_cksum_test.cpp index 1a344a2..3ce26df 100644 --- a/unittest/sqlite_cksum_test.cpp +++ b/unittest/sqlite_cksum_test.cpp @@ -50,6 +50,7 @@ public: static void UtBackupDatabase(sqlite3 *srcDb, sqlite3 *destDb); static void UtPresetDb(const std::string &dbFile, const std::string &vfsStr); static int UtSqliteExecCallback(void *data, int argc, char **argv, char **azColName); + static bool IsSupportPageCheck(void); static int hitCksmFault_; }; @@ -164,6 +165,15 @@ void SQLiteCksumTest::UtPresetDb(const std::string &dbFile, const std::string &v sqlite3_close(db); } +bool SQLiteCksumTest::IsSupportPageCheck(void) +{ +#ifdef SQLITE_SUPPORT_PAGE_CHECK_TEST + return true; +#else + return false; +#endif +} + /** * @tc.name: CksumTest001 * @tc.desc: Test to enable cksum before backup @@ -230,6 +240,9 @@ static void UtDestroyFile(const std::string &dbPath, int offset, const std::stri */ HWTEST_F(SQLiteCksumTest, CksumTest002, TestSize.Level0) { + if (!IsSupportPageCheck()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a new db as main, enable compress * @tc.expected: step1. Execute successfully diff --git a/unittest/sqlite_compress_test.cpp b/unittest/sqlite_compress_test.cpp index 3ae7b34..38876c9 100644 --- a/unittest/sqlite_compress_test.cpp +++ b/unittest/sqlite_compress_test.cpp @@ -49,6 +49,7 @@ public: static void UtCheckDb(const std::string &dbPath, int tableCount = TEST_COMPRESS_META_TABLE); static void UtBackupDatabase(sqlite3 *srcDb, sqlite3 *destDb); static void UtBackupCompressDatabase(sqlite3 *srcDb, sqlite3 *destDb); + static bool IsSupportPageCompress(void); static sqlite3 *db; static const std::string &UT_DDL_CREATE_DEMO; @@ -95,6 +96,15 @@ void SQLiteCompressTest::UtBackupDatabase(sqlite3 *srcDb, sqlite3 *destDb) sqlite3_backup_finish(back); } +bool SQLiteCompressTest::IsSupportPageCompress(void) +{ +#ifdef SQLITE_SUPPORT_PAGE_COMPRESS_TEST + return true; +#else + return false; +#endif +} + void SQLiteCompressTest::SetUpTestCase(void) { Common::RemoveDir(TEST_DIR); @@ -149,6 +159,9 @@ void SQLiteCompressTest::TearDown(void) */ HWTEST_F(SQLiteCompressTest, CompressTest001, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a brand new db while page compression enabled with sqlite3_open_v2 * @tc.expected: step1. Execute successfully @@ -209,6 +222,9 @@ HWTEST_F(SQLiteCompressTest, CompressTest002, TestSize.Level0) */ HWTEST_F(SQLiteCompressTest, CompressTest003, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Compress db using Backup function:sqlite3_backup_step * @tc.expected: step1. Execute successfully @@ -239,6 +255,9 @@ HWTEST_F(SQLiteCompressTest, CompressTest003, TestSize.Level0) */ HWTEST_F(SQLiteCompressTest, CompressTest004, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a brand new db while page compression enabled with sqlite3_open_v2 * @tc.expected: step1. Execute successfully @@ -286,6 +305,9 @@ HWTEST_F(SQLiteCompressTest, CompressTest004, TestSize.Level0) */ HWTEST_F(SQLiteCompressTest, CompressTest005, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a brand new db while page compression enabled with sqlite3_open_v2 * @tc.expected: step1. Execute successfully @@ -327,6 +349,9 @@ HWTEST_F(SQLiteCompressTest, CompressTest005, TestSize.Level0) */ HWTEST_F(SQLiteCompressTest, CompressTest006, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a brand new db while page compression enabled with sqlite3_open_v2 * @tc.expected: step1. Execute successfully @@ -361,6 +386,9 @@ HWTEST_F(SQLiteCompressTest, CompressTest006, TestSize.Level0) */ HWTEST_F(SQLiteCompressTest, CompressTest007, TestSize.Level0) { + if (!IsSupportPageCompress()) { + GTEST_SKIP() << "Current testcase is not compatible"; + } /** * @tc.steps: step1. Create a brand new db while page compression enabled through sqlite3_open_v2 * @tc.expected: step1. Execute successfully @@ -369,10 +397,12 @@ HWTEST_F(SQLiteCompressTest, CompressTest007, TestSize.Level0) sqlite3 *compDb = nullptr; EXPECT_EQ(sqlite3_open_v2(dbPath1.c_str(), &compDb, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, "compressvfs"), SQLITE_OK); - EXPECT_EQ(sqlite3_exec(compDb, UT_DDL_CREATE_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); - EXPECT_EQ(sqlite3_exec(compDb, UT_DML_INSERT_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); EXPECT_EQ(sqlite3_exec(compDb, "PRAGMA meta_double_write=enabled;", nullptr, nullptr, nullptr), SQLITE_OK); EXPECT_EQ(sqlite3_exec(compDb, "PRAGMA journal_mode=WAL;", nullptr, nullptr, nullptr), SQLITE_OK); + EXPECT_EQ(sqlite3_exec(compDb, UT_DDL_CREATE_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); + EXPECT_EQ(sqlite3_exec(compDb, UT_DML_INSERT_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); + int persistMode = 1; + EXPECT_EQ(sqlite3_file_control(compDb, "main", SQLITE_FCNTL_PERSIST_WAL, &persistMode), SQLITE_OK); sqlite3_close_v2(compDb); /** * @tc.steps: step5. Check result, files should exist @@ -403,17 +433,19 @@ HWTEST_F(SQLiteCompressTest, CompressTest008, TestSize.Level0) sqlite3 *db = nullptr; EXPECT_EQ(sqlite3_open_v2(dbPath1.c_str(), &db, SQLITE_OPEN_READWRITE | SQLITE_OPEN_CREATE, nullptr), SQLITE_OK); - EXPECT_EQ(sqlite3_exec(db, UT_DDL_CREATE_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); - EXPECT_EQ(sqlite3_exec(db, UT_DML_INSERT_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); EXPECT_EQ(sqlite3_exec(db, "PRAGMA meta_double_write=enabled;", nullptr, nullptr, nullptr), SQLITE_OK); EXPECT_EQ(sqlite3_exec(db, "PRAGMA journal_mode=WAL;", nullptr, nullptr, nullptr), SQLITE_OK); + EXPECT_EQ(sqlite3_exec(db, UT_DDL_CREATE_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); + EXPECT_EQ(sqlite3_exec(db, UT_DML_INSERT_DEMO.c_str(), nullptr, nullptr, nullptr), SQLITE_OK); + int persistMode = 1; + EXPECT_EQ(sqlite3_file_control(db, "main", SQLITE_FCNTL_PERSIST_WAL, &persistMode), SQLITE_OK); sqlite3_close_v2(db); /** * @tc.steps: step5. Check result, files should exist except lock file * @tc.expected: step4. Execute successfully */ - std::string wal = dbPath1 + "-walcompress"; - std::string shm = dbPath1 + "-shmcompress"; + std::string wal = dbPath1 + "-wal"; + std::string shm = dbPath1 + "-shm"; std::string dwr = dbPath1 + "-dwr"; std::string lock = dbPath1 + "-lockcompress"; EXPECT_TRUE(Common::IsFileExist(wal.c_str())); -- Gitee