172 EXPECT_TRUE(connectToMemory());
173 EXPECT_TRUE(createTestTable());
175 auto result = backend_->select_query(
"SELECT * FROM test_table");
176 EXPECT_TRUE(result.is_ok());
177 EXPECT_TRUE(result.value().empty());
179 GTEST_SKIP() <<
"SQLite support not compiled";
262 EXPECT_TRUE(connectToMemory());
263 EXPECT_TRUE(createTestTable());
265 EXPECT_TRUE(backend_->begin_transaction().is_ok());
266 EXPECT_TRUE(backend_->in_transaction());
267 backend_->execute_query(
268 "INSERT INTO test_table (name, value) VALUES ('trans_item', 50.0)");
269 EXPECT_TRUE(backend_->commit_transaction().is_ok());
270 EXPECT_FALSE(backend_->in_transaction());
272 auto result = backend_->select_query(
273 "SELECT * FROM test_table WHERE name = 'trans_item'");
274 EXPECT_TRUE(result.is_ok());
275 EXPECT_EQ(result.value().size(), 1u);
277 GTEST_SKIP() <<
"SQLite support not compiled";
283 EXPECT_TRUE(connectToMemory());
284 EXPECT_TRUE(createTestTable());
286 EXPECT_TRUE(backend_->begin_transaction().is_ok());
287 backend_->execute_query(
288 "INSERT INTO test_table (name, value) VALUES ('rollback_item', 50.0)");
289 EXPECT_TRUE(backend_->rollback_transaction().is_ok());
291 auto result = backend_->select_query(
292 "SELECT * FROM test_table WHERE name = 'rollback_item'");
293 EXPECT_TRUE(result.is_ok());
294 EXPECT_TRUE(result.value().empty());
296 GTEST_SKIP() <<
"SQLite support not compiled";
306 EXPECT_TRUE(connectToMemory());
307 EXPECT_TRUE(createTestTable());
309 for (
int i = 0; i < 100; ++i) {
310 backend_->execute_query(
311 "INSERT INTO test_table (name, value) VALUES ('item" +
312 std::to_string(i) +
"', " + std::to_string(i * 1.5) +
")");
315 std::atomic<int> success_count{0};
316 std::vector<std::thread> threads;
318 for (
int t = 0; t < 10; ++t) {
319 threads.emplace_back([
this, &success_count]() {
320 for (
int i = 0; i < 10; ++i) {
322 backend_->select_query(
"SELECT COUNT(*) as cnt FROM test_table");
323 if (result.is_ok() && std::get<int64_t>(result.value()[0].at(
"cnt")) == 100) {
330 for (
auto &t : threads) {
334 EXPECT_EQ(success_count.load(), 100);
336 GTEST_SKIP() <<
"SQLite support not compiled";
346 EXPECT_TRUE(connectToMemory());
347 EXPECT_TRUE(createTestTable());
349 backend_->execute_query(
350 "INSERT INTO test_table (name, value) VALUES ('test''s data', 10.0)");
352 auto result = backend_->select_query(
"SELECT name FROM test_table");
355 EXPECT_EQ(std::get<std::string>(result.value()[0].at(
"name")),
"test's data");
357 GTEST_SKIP() <<
"SQLite support not compiled";
363 EXPECT_TRUE(connectToMemory());
364 EXPECT_TRUE(createTestTable());
366 backend_->execute_query(
367 "INSERT INTO test_table (name, value) VALUES ('νκΈν
μ€νΈ', 10.0)");
369 auto result = backend_->select_query(
"SELECT name FROM test_table");
372 EXPECT_EQ(std::get<std::string>(result.value()[0].at(
"name")),
"νκΈν
μ€νΈ");
374 GTEST_SKIP() <<
"SQLite support not compiled";