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 <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)
{

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()
{

View File

@ -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();

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()
{

View File

@ -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();
};

View File

@ -1,2 +1,3 @@
# 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:
CProfile m_profile;
};
TEST_F(CProfileTest, ReadTest)