aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLoek Le Blansch <loek@pipeframe.xyz>2024-11-22 21:57:08 +0100
committerLoek Le Blansch <loek@pipeframe.xyz>2024-11-22 21:57:08 +0100
commit004ee3aafb6beb4e984877186bced560010f4ddb (patch)
tree9f6f79dd0a2c50e35bcc7bd5d76b0e41a20af7a7 /src
parent1499363d85abedbdb571e33801b821f4dfabc638 (diff)
fix RenderSystem unit test path resolution + reset Config before each testloek/hotfix
Diffstat (limited to 'src')
-rw-r--r--src/crepe/api/Config.h13
-rw-r--r--src/crepe/api/Texture.cpp13
-rw-r--r--src/crepe/api/Texture.h12
-rw-r--r--src/test/AssetTest.cpp14
-rw-r--r--src/test/RenderSystemTest.cpp8
-rw-r--r--src/test/main.cpp24
6 files changed, 42 insertions, 42 deletions
diff --git a/src/crepe/api/Config.h b/src/crepe/api/Config.h
index 13eabd1..0c9d116 100644
--- a/src/crepe/api/Config.h
+++ b/src/crepe/api/Config.h
@@ -11,19 +11,18 @@ namespace crepe {
* modified *before* execution is handed over from the game programmer to the engine (i.e. the
* main loop is started).
*/
-class Config {
+class Config final {
public:
//! Retrieve handle to global Config instance
static Config & get_instance();
private:
Config() = default;
-
- // singleton
- Config(const Config &) = delete;
- Config(Config &&) = delete;
- Config & operator=(const Config &) = delete;
- Config & operator=(Config &&) = delete;
+ ~Config() = default;
+ Config(const Config &) = default;
+ Config(Config &&) = default;
+ Config & operator=(const Config &) = default;
+ Config & operator=(Config &&) = default;
public:
//! Logging-related settings
diff --git a/src/crepe/api/Texture.cpp b/src/crepe/api/Texture.cpp
index 9be9421..264d7b1 100644
--- a/src/crepe/api/Texture.cpp
+++ b/src/crepe/api/Texture.cpp
@@ -9,14 +9,9 @@
using namespace crepe;
using namespace std;
-Texture::Texture(unique_ptr<Asset> res) {
+Texture::Texture(const Asset & src) {
dbg_trace();
- this->load(std::move(res));
-}
-
-Texture::Texture(const char * src) {
- dbg_trace();
- this->load(make_unique<Asset>(src));
+ this->load(src);
}
Texture::~Texture() {
@@ -24,9 +19,9 @@ Texture::~Texture() {
this->texture.reset();
}
-void Texture::load(unique_ptr<Asset> res) {
+void Texture::load(const Asset & res) {
SDLContext & ctx = SDLContext::get_instance();
- this->texture = std::move(ctx.texture_from_path(res->get_path()));
+ this->texture = ctx.texture_from_path(res.get_path());
}
int Texture::get_width() const {
diff --git a/src/crepe/api/Texture.h b/src/crepe/api/Texture.h
index 6965223..b4f7d07 100644
--- a/src/crepe/api/Texture.h
+++ b/src/crepe/api/Texture.h
@@ -25,16 +25,10 @@ class Texture {
public:
/**
- * \brief Constructs a Texture from a file path.
- * \param src Path to the image file to be loaded as a texture.
- */
- Texture(const char * src);
-
- /**
* \brief Constructs a Texture from an Asset resource.
- * \param res Unique pointer to an Asset resource containing texture data.
+ * \param src Asset with texture data to load.
*/
- Texture(std::unique_ptr<Asset> res);
+ Texture(const Asset & src);
/**
* \brief Destroys the Texture instance, freeing associated resources.
@@ -59,7 +53,7 @@ private:
* \brief Loads the texture from an Asset resource.
* \param res Unique pointer to an Asset resource to load the texture from.
*/
- void load(std::unique_ptr<Asset> res);
+ void load(const Asset & res);
private:
//! The texture of the class from the library
diff --git a/src/test/AssetTest.cpp b/src/test/AssetTest.cpp
index 8aa7629..c3c166c 100644
--- a/src/test/AssetTest.cpp
+++ b/src/test/AssetTest.cpp
@@ -7,20 +7,16 @@ using namespace std;
using namespace crepe;
using namespace testing;
-class AssetTest : public Test {
-public:
- Config & cfg = Config::get_instance();
- void SetUp() override { this->cfg.asset.root_pattern = ".crepe-root"; }
-};
-
-TEST_F(AssetTest, Existant) { ASSERT_NO_THROW(Asset{"asset/texture/img.png"}); }
+TEST(AssetTest, Existant) { ASSERT_NO_THROW(Asset{"asset/texture/img.png"}); }
-TEST_F(AssetTest, Nonexistant) { ASSERT_ANY_THROW(Asset{"asset/nonexistant"}); }
+TEST(AssetTest, Nonexistant) { ASSERT_ANY_THROW(Asset{"asset/nonexistant"}); }
-TEST_F(AssetTest, Rootless) {
+TEST(AssetTest, Rootless) {
+ Config & cfg = Config::get_instance();
cfg.asset.root_pattern.clear();
string arbitrary = "\\/this is / /../passed through as-is";
Asset asset{arbitrary};
ASSERT_EQ(arbitrary, asset.get_path());
}
+
diff --git a/src/test/RenderSystemTest.cpp b/src/test/RenderSystemTest.cpp
index ac479d3..f37fb56 100644
--- a/src/test/RenderSystemTest.cpp
+++ b/src/test/RenderSystemTest.cpp
@@ -30,7 +30,7 @@ public:
void SetUp() override {
auto & sprite1
- = entity1.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
+ = entity1.add_component<Sprite>(make_shared<Texture>("asset/texture/img.png"),
Color(0, 0, 0, 0), FlipSettings{false, false});
ASSERT_NE(sprite1.sprite_image.get(), nullptr);
sprite1.order_in_layer = 5;
@@ -38,7 +38,7 @@ public:
EXPECT_EQ(sprite1.order_in_layer, 5);
EXPECT_EQ(sprite1.sorting_in_layer, 5);
auto & sprite2
- = entity2.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
+ = entity2.add_component<Sprite>(make_shared<Texture>("asset/texture/img.png"),
Color(0, 0, 0, 0), FlipSettings{false, false});
ASSERT_NE(sprite2.sprite_image.get(), nullptr);
sprite2.sorting_in_layer = 2;
@@ -48,7 +48,7 @@ public:
EXPECT_EQ(sprite2.order_in_layer, 1);
auto & sprite3
- = entity3.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
+ = entity3.add_component<Sprite>(make_shared<Texture>("asset/texture/img.png"),
Color(0, 0, 0, 0), FlipSettings{false, false});
ASSERT_NE(sprite3.sprite_image.get(), nullptr);
sprite3.sorting_in_layer = 1;
@@ -58,7 +58,7 @@ public:
EXPECT_EQ(sprite3.order_in_layer, 2);
auto & sprite4
- = entity4.add_component<Sprite>(make_shared<Texture>("../asset/texture/img.png"),
+ = entity4.add_component<Sprite>(make_shared<Texture>("asset/texture/img.png"),
Color(0, 0, 0, 0), FlipSettings{false, false});
ASSERT_NE(sprite4.sprite_image.get(), nullptr);
sprite4.sorting_in_layer = 1;
diff --git a/src/test/main.cpp b/src/test/main.cpp
index 241015d..e03a989 100644
--- a/src/test/main.cpp
+++ b/src/test/main.cpp
@@ -1,15 +1,31 @@
-#include <crepe/api/Config.h>
-
#include <gtest/gtest.h>
+#define protected public
+#define private public
+
+#include <crepe/api/Config.h>
+
using namespace crepe;
using namespace testing;
+class GlobalConfigReset : public EmptyTestEventListener {
+public:
+ Config & cfg = Config::get_instance();
+ Config cfg_default = Config();
+
+ // This function is called before each test
+ void OnTestStart(const TestInfo &) override {
+ cfg = cfg_default;
+ cfg.log.level = Log::Level::WARNING;
+ }
+};
+
int main(int argc, char ** argv) {
InitGoogleTest(&argc, argv);
- auto & cfg = Config::get_instance();
- cfg.log.level = Log::Level::ERROR;
+ UnitTest & ut = *UnitTest::GetInstance();
+ ut.listeners().Append(new GlobalConfigReset);
return RUN_ALL_TESTS();
}
+