summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPiotr Dziwinski <piotrdz@gmail.com>2014-10-07 22:05:16 +0200
committerPiotr Dziwinski <piotrdz@gmail.com>2014-10-07 22:22:59 +0200
commit12feb49098b3fdcaa489ceb557a4461b5cdebcf9 (patch)
tree51a42503b196276b2e186d4d7b53f15542d15687
parent502f7a8a5fc90b5b490e65e0c1f8cc60c2d40957 (diff)
downloadcolobot-12feb49098b3fdcaa489ceb557a4461b5cdebcf9.tar.gz
colobot-12feb49098b3fdcaa489ceb557a4461b5cdebcf9.tar.bz2
colobot-12feb49098b3fdcaa489ceb557a4461b5cdebcf9.zip
Fixes in unit tests
-rw-r--r--src/common/profile.cpp45
-rw-r--r--src/common/resources/inputstream.cpp5
-rw-r--r--src/common/resources/inputstream.h3
-rw-r--r--src/common/resources/outputstream.cpp5
-rw-r--r--src/common/resources/outputstream.h3
-rw-r--r--test/envs/CMakeLists.txt3
-rw-r--r--test/unit/common/profile_test.cpp1
7 files changed, 49 insertions, 16 deletions
diff --git a/src/common/profile.cpp b/src/common/profile.cpp
index 5ecb804..2cb20f3 100644
--- a/src/common/profile.cpp
+++ b/src/common/profile.cpp
@@ -23,6 +23,7 @@
#include "common/logger.h"
+#include <memory>
#include <utility>
#include <cstring>
#include <boost/property_tree/ini_parser.hpp>
@@ -54,15 +55,25 @@ bool CProfile::Init()
{
try
{
- CInputStream stream;
- stream.open("colobot.ini");
- if(stream.is_open()) {
- bp::ini_parser::read_ini(stream, m_propertyTree);
- } else {
+ std::unique_ptr<std::istream> stream;
+ if (m_useCurrentDirectory)
+ {
+ stream = std::unique_ptr<std::istream>(new std::ifstream("./colobot.ini"));
+ }
+ else
+ {
+ stream = std::unique_ptr<std::istream>(new CInputStream("colobot.ini"));
+ }
+
+ if (stream->good())
+ {
+ bp::ini_parser::read_ini(*stream, m_propertyTree);
+ }
+ else
+ {
GetLogger()->Error("Error on parsing profile: failed to open file\n");
return false;
}
- stream.close();
}
catch (std::exception & e)
{
@@ -78,15 +89,25 @@ bool CProfile::Save()
{
try
{
- COutputStream stream;
- stream.open("colobot.ini");
- if(stream.is_open()) {
- bp::ini_parser::write_ini(stream, m_propertyTree);
- } else {
+ std::unique_ptr<std::ostream> stream;
+ if (m_useCurrentDirectory)
+ {
+ stream = std::unique_ptr<std::ostream>(new std::ofstream("./colobot.ini"));
+ }
+ else
+ {
+ stream = std::unique_ptr<std::ostream>(new COutputStream("colobot.ini"));
+ }
+
+ if (stream->good())
+ {
+ bp::ini_parser::write_ini(*stream, m_propertyTree);
+ }
+ else
+ {
GetLogger()->Error("Error on storing profile: failed to open file\n");
return false;
}
- stream.close();
}
catch (std::exception & e)
{
diff --git a/src/common/resources/inputstream.cpp b/src/common/resources/inputstream.cpp
index b5ba63f..3907c76 100644
--- a/src/common/resources/inputstream.cpp
+++ b/src/common/resources/inputstream.cpp
@@ -22,6 +22,11 @@ CInputStream::CInputStream() : std::istream(new CInputStreamBuffer())
{
}
+CInputStream::CInputStream(const std::string& filename) : std::istream(new CInputStreamBuffer())
+{
+ open(filename);
+}
+
CInputStream::~CInputStream()
{
diff --git a/src/common/resources/inputstream.h b/src/common/resources/inputstream.h
index 9573f2c..70d9ff5 100644
--- a/src/common/resources/inputstream.h
+++ b/src/common/resources/inputstream.h
@@ -24,9 +24,10 @@ class CInputStream : public std::istream
{
public:
CInputStream();
+ CInputStream(const std::string& filename);
virtual ~CInputStream();
- void open(const std::string &filename);
+ void open(const std::string& filename);
void close();
bool is_open();
size_t size();
diff --git a/src/common/resources/outputstream.cpp b/src/common/resources/outputstream.cpp
index ba43ba6..bce194e 100644
--- a/src/common/resources/outputstream.cpp
+++ b/src/common/resources/outputstream.cpp
@@ -22,6 +22,11 @@ COutputStream::COutputStream() : std::ostream(new COutputStreamBuffer())
{
}
+COutputStream::COutputStream(const std::string& filename) : std::ostream(new COutputStreamBuffer())
+{
+ open(filename);
+}
+
COutputStream::~COutputStream()
{
diff --git a/src/common/resources/outputstream.h b/src/common/resources/outputstream.h
index bedbbbd..2927a99 100644
--- a/src/common/resources/outputstream.h
+++ b/src/common/resources/outputstream.h
@@ -24,9 +24,10 @@ class COutputStream : public std::ostream
{
public:
COutputStream();
+ COutputStream(const std::string& filename);
virtual ~COutputStream();
- void open(const std::string &filename);
+ void open(const std::string& filename);
void close();
bool is_open();
};
diff --git a/test/envs/CMakeLists.txt b/test/envs/CMakeLists.txt
index 374c39f..3d535f3 100644
--- a/test/envs/CMakeLists.txt
+++ b/test/envs/CMakeLists.txt
@@ -1,2 +1,3 @@
# OpenGL tests
-add_subdirectory(opengl)
+# TODO: fix dependency on resource manager and re-enable
+#add_subdirectory(opengl)
diff --git a/test/unit/common/profile_test.cpp b/test/unit/common/profile_test.cpp
index 2d21a90..c7b9594 100644
--- a/test/unit/common/profile_test.cpp
+++ b/test/unit/common/profile_test.cpp
@@ -12,7 +12,6 @@ class CProfileTest : public testing::Test
{
protected:
CProfile m_profile;
-
};
TEST_F(CProfileTest, ReadTest)