Fixes in unit tests

dev-mp
Piotr Dziwinski 2014-10-07 22:05:16 +02:00
parent 502f7a8a5f
commit 12feb49098
7 changed files with 49 additions and 16 deletions

View File

@ -23,6 +23,7 @@
#include "common/logger.h" #include "common/logger.h"
#include <memory>
#include <utility> #include <utility>
#include <cstring> #include <cstring>
#include <boost/property_tree/ini_parser.hpp> #include <boost/property_tree/ini_parser.hpp>
@ -54,15 +55,25 @@ bool CProfile::Init()
{ {
try try
{ {
CInputStream stream; std::unique_ptr<std::istream> stream;
stream.open("colobot.ini"); if (m_useCurrentDirectory)
if(stream.is_open()) { {
bp::ini_parser::read_ini(stream, m_propertyTree); stream = std::unique_ptr<std::istream>(new std::ifstream("./colobot.ini"));
} else { }
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"); GetLogger()->Error("Error on parsing profile: failed to open file\n");
return false; return false;
} }
stream.close();
} }
catch (std::exception & e) catch (std::exception & e)
{ {
@ -78,15 +89,25 @@ bool CProfile::Save()
{ {
try try
{ {
COutputStream stream; std::unique_ptr<std::ostream> stream;
stream.open("colobot.ini"); if (m_useCurrentDirectory)
if(stream.is_open()) { {
bp::ini_parser::write_ini(stream, m_propertyTree); stream = std::unique_ptr<std::ostream>(new std::ofstream("./colobot.ini"));
} else { }
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"); GetLogger()->Error("Error on storing profile: failed to open file\n");
return false; return false;
} }
stream.close();
} }
catch (std::exception & e) catch (std::exception & e)
{ {

View File

@ -22,6 +22,11 @@ CInputStream::CInputStream() : std::istream(new CInputStreamBuffer())
{ {
} }
CInputStream::CInputStream(const std::string& filename) : std::istream(new CInputStreamBuffer())
{
open(filename);
}
CInputStream::~CInputStream() CInputStream::~CInputStream()
{ {

View File

@ -24,9 +24,10 @@ class CInputStream : public std::istream
{ {
public: public:
CInputStream(); CInputStream();
CInputStream(const std::string& filename);
virtual ~CInputStream(); virtual ~CInputStream();
void open(const std::string &filename); void open(const std::string& filename);
void close(); void close();
bool is_open(); bool is_open();
size_t size(); size_t size();

View File

@ -22,6 +22,11 @@ COutputStream::COutputStream() : std::ostream(new COutputStreamBuffer())
{ {
} }
COutputStream::COutputStream(const std::string& filename) : std::ostream(new COutputStreamBuffer())
{
open(filename);
}
COutputStream::~COutputStream() COutputStream::~COutputStream()
{ {

View File

@ -24,9 +24,10 @@ class COutputStream : public std::ostream
{ {
public: public:
COutputStream(); COutputStream();
COutputStream(const std::string& filename);
virtual ~COutputStream(); virtual ~COutputStream();
void open(const std::string &filename); void open(const std::string& filename);
void close(); void close();
bool is_open(); bool is_open();
}; };

View File

@ -1,2 +1,3 @@
# OpenGL tests # OpenGL tests
add_subdirectory(opengl) # TODO: fix dependency on resource manager and re-enable
#add_subdirectory(opengl)

View File

@ -12,7 +12,6 @@ class CProfileTest : public testing::Test
{ {
protected: protected:
CProfile m_profile; CProfile m_profile;
}; };
TEST_F(CProfileTest, ReadTest) TEST_F(CProfileTest, ReadTest)