From 6d481b753b536457043125447db92d07bd4e3af6 Mon Sep 17 00:00:00 2001 From: Radoslaw Wicik Date: Tue, 22 Dec 2020 13:02:46 +0100 Subject: [PATCH] [EGD-4763] Fix Unit Tests - db unittest Fix reqired by CI to work --- module-db/Database/DatabaseInitializer.cpp | 2 +- module-db/tests/unittest.cpp | 94 ++++++++++--------- .../test/test-catch-text/test-gui-Font.cpp | 4 +- 3 files changed, 54 insertions(+), 46 deletions(-) diff --git a/module-db/Database/DatabaseInitializer.cpp b/module-db/Database/DatabaseInitializer.cpp index 90e7d3bcc0c3279cb3df13329c2eea043c1d12e3..7c92fe938f0eb60f6af5b846ebdd49e0b3c6c64c 100644 --- a/module-db/Database/DatabaseInitializer.cpp +++ b/module-db/Database/DatabaseInitializer.cpp @@ -1,4 +1,4 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include "DatabaseInitializer.hpp" diff --git a/module-db/tests/unittest.cpp b/module-db/tests/unittest.cpp index 8b38ba2a6ec3de006d86f914ab713896e0011a7f..7798d0ba21dc3e7d945fb043e4d579826c335b24 100644 --- a/module-db/tests/unittest.cpp +++ b/module-db/tests/unittest.cpp @@ -125,32 +125,35 @@ TEST_CASE("Database initialization scripts") vfs.Init(); Database::initialize(); - const char *script_create = "CREATE TABLE IF NOT EXISTS tracks(" - "_id INTEGER PRIMARY KEY," - "filename TEXT UNIQUE," - "name TEXT," - "duration INTEGER," - "artist_id INTEGER," - "album_id INTEGER," - "cover INTEGER," - "FOREIGN KEY(artist_id) REFERENCES artists(_id)," - "FOREIGN KEY(album_id) REFERENCES albums(_id)" - ");"; - - const char *script_insert = "insert or ignore into artists(name) VALUES('%q');"; - - const char *script_comment = "--insert or ignore into artists(name) VALUES('%q');\n" - "insert or ignore into artists(name) VALUES('%q');\n" - "--insert or ignore into artists(name) VALUES('%q');\n" - "insert or ignore into artists(name) VALUES('%q');\n"; - - const char *script_invalid = "insert artists(name) VALUES('%q');"; + const std::string script_create = "CREATE TABLE IF NOT EXISTS tracks(" + "_id INTEGER PRIMARY KEY," + "filename TEXT UNIQUE," + "name TEXT," + "duration INTEGER," + "artist_id INTEGER," + "album_id INTEGER," + "cover INTEGER," + "FOREIGN KEY(artist_id) REFERENCES artists(_id)," + "FOREIGN KEY(album_id) REFERENCES albums(_id)" + ");\n"; + + const std::string script_insert = "insert or ignore into artists(name) VALUES('%q');\n"; + + const std::string script_comment = "--insert or ignore into artists(name) VALUES('%q');\n" + "insert or ignore into artists(name) VALUES('%q');\n" + "--insert or ignore into artists(name) VALUES('%q');\n" + "insert or ignore into artists(name) VALUES('%q');\n"; + + const std::string script_invalid = "insert artists(name) VALUES('%q');\n"; SECTION("list files") { - ScopedDir dir(USER_PATH("scripts")); + ScopedDir dir(USER_PATH("test")); + LOG_INFO("PATH_SYS: %s", PATH_SYS); + LOG_INFO("PATH_USER: %s", PATH_USER); auto file = std::fopen(dir("test_1.sql").c_str(), "w"); + LOG_INFO("test file: %s", dir("test_1.sql").c_str()); std::fclose(file); file = std::fopen(dir("test_021.sql").c_str(), "w"); @@ -167,29 +170,28 @@ TEST_CASE("Database initialization scripts") Database db(dir("test.db").c_str()); DatabaseInitializer initializer(&db); - auto files = initializer.listFiles(PATH_SYS "/" PATH_USER "/", "test", "sql"); + auto files = initializer.listFiles(dir(), "test", "sql"); REQUIRE(files.size() == 4); - REQUIRE(files[0] == USER_PATH("test_1.sql")); - REQUIRE(files[1] == USER_PATH("test_003.sql")); - REQUIRE(files[2] == USER_PATH("test_011.sql")); - REQUIRE(files[3] == USER_PATH("test_021.sql")); + REQUIRE(files[0] == dir("test_1.sql")); + REQUIRE(files[1] == dir("test_003.sql")); + REQUIRE(files[2] == dir("test_011.sql")); + REQUIRE(files[3] == dir("test_021.sql")); } SECTION("read script files") { ScopedDir dir(USER_PATH("scripts")); + std::string test_file("read_script_test_1.sql"); - auto file = std::fopen(dir("test_1.sql").c_str(), "w"); - - std::fprintf(file, "%s\n", script_create); - std::fprintf(file, "%s\n", script_insert); - + auto file = std::fopen(dir(test_file).c_str(), "w"); + std::fwrite(script_create.data(), sizeof(char), script_create.size(), file); + std::fwrite(script_insert.data(), sizeof(char), script_insert.size(), file); std::fclose(file); Database db(dir("test.db").c_str()); DatabaseInitializer initializer(&db); - auto commands = initializer.readCommands(dir("test_1.sql")); + auto commands = initializer.readCommands(dir(test_file)); REQUIRE(commands.size() == 2); } @@ -197,38 +199,41 @@ TEST_CASE("Database initialization scripts") SECTION("read empty script files") { ScopedDir dir(USER_PATH("scripts")); + std::string test_file("read_empyty_1.sql"); - auto file = std::fopen(dir("test_1.sql").c_str(), "w"); + auto file = std::fopen(dir(test_file).c_str(), "w"); std::fclose(file); Database db(dir("test.db").c_str()); DatabaseInitializer initializer(&db); - auto commands = initializer.readCommands(dir("test_1.sql")); + auto commands = initializer.readCommands(dir(test_file)); REQUIRE(commands.size() == 0); } SECTION("read script file with comment") { - ScopedDir dir(USER_PATH("scripts")); + ScopedDir dir(USER_PATH("read_script_file_with_comment")); + std::string test_file("test_01.sql"); - auto file = std::fopen(dir("test_1.sql").c_str(), "w"); - std::fprintf(file, "%s\n", script_comment); + auto file = std::fopen(dir(test_file).c_str(), "w"); + std::fwrite(script_comment.data(), sizeof(char), script_comment.size(), file); std::fclose(file); Database db(dir("test.db").c_str()); DatabaseInitializer initializer(&db); - auto commands = initializer.readCommands(dir("test_1.sql")); + auto commands = initializer.readCommands(dir(test_file)); REQUIRE(commands.size() == 2); } SECTION("execute valid script") { - ScopedDir dir(USER_PATH("scripts")); + ScopedDir dir(USER_PATH("execute_valid_script")); + std::string test_file("test_01.sql"); - auto file = std::fopen(dir("test_1.sql").c_str(), "w"); - std::fprintf(file, "%s\n", script_create); + auto file = std::fopen(dir(test_file).c_str(), "w"); + std::fwrite(script_create.data(), sizeof(char), script_create.size(), file); std::fclose(file); Database db(dir("test.db").c_str()); @@ -240,10 +245,11 @@ TEST_CASE("Database initialization scripts") SECTION("execute invalid script") { - ScopedDir dir(USER_PATH("scripts")); + ScopedDir dir(USER_PATH("execute_invalid_script")); + std::string test_file("test_1.sql"); - auto file = std::fopen(dir("test_1.sql").c_str(), "w"); - std::fprintf(file, "%s\n", script_invalid); + auto file = std::fopen(dir(test_file).c_str(), "w"); + std::fwrite(script_invalid.data(), sizeof(char), script_invalid.size(), file); std::fclose(file); Database db(dir("test.db").c_str()); diff --git a/module-gui/test/test-catch-text/test-gui-Font.cpp b/module-gui/test/test-catch-text/test-gui-Font.cpp index cca46992af6e135fe748075bfdbfa3bf3829931a..ab8f8e5eebe709f5ff991f49c414276c34cfa6c9 100644 --- a/module-gui/test/test-catch-text/test-gui-Font.cpp +++ b/module-gui/test/test-catch-text/test-gui-Font.cpp @@ -1,13 +1,15 @@ -// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. +// Copyright (c) 2017-2020, Mudita Sp. z.o.o. All rights reserved. // For licensing, see https://github.com/mudita/MuditaOS/LICENSE.md #include #include #include #include +#include TEST_CASE("Testo Font") { + vfs.Init(); using namespace gui; auto &fm = FontManager::getInstance(); fm.init("assets");