Get random stuff test to build again

TestHost can't check that SourceScripts is unmodified anymore because
C4ScriptHost contains a std::unique_ptr these days, so we can't copy
derived classes. Next best thing is just creating two instances of
TestHost and comparing those.
alut-include-path
Nicolas Hake 2017-02-21 20:36:59 +01:00
parent 5ad6012a3f
commit 144451783d
3 changed files with 11 additions and 17 deletions

View File

@ -36,7 +36,7 @@ class C4Object;
class C4ValueArray;
class C4Def;
class C4Effect;
class C4AulParSet;
struct C4AulParSet;
class C4AulScriptFunc;
#include "script/C4Value.h"

View File

@ -51,11 +51,7 @@ public:
EXPECT_EQ(Script, rhs.Script);
EXPECT_EQ(Resolving, rhs.Resolving);
EXPECT_EQ(IncludesResolved, rhs.IncludesResolved);
//EXPECT_EQ(LocalNamed.iSize, rhs.LocalNamed.iSize);
//if (LocalNamed.iSize == rhs.LocalNamed.iSize)
// EXPECT_TRUE(std::equal(LocalNamed.pNames, LocalNamed.pNames+LocalNamed.iSize, rhs.LocalNamed.pNames));
EXPECT_EQ(LocalValues, rhs.LocalValues);
EXPECT_EQ(SourceScripts, rhs.SourceScripts);
// C4AulScript
EXPECT_EQ(ScriptName, rhs.ScriptName);
@ -78,12 +74,12 @@ public:
TEST(DirectExecTest, HostUnmodifedByParseTest)
{
TestHost host;
TestHost &host2 = host; // I broke this test a bit… Someone look at the changeset and fix it please.
TestHost host2;
host.test_equality(host2);
char szScript[] = "8*5";
C4AulScriptFunc *pFunc = new C4AulScriptFunc(host.GetPropList(), nullptr, nullptr, szScript);
host.test_equality(host2);
//pFunc->ParseFn(&::ScriptEngine);
pFunc->ParseDirectExecStatement(&::ScriptEngine);
host.test_equality(host2);
delete pFunc;
}

View File

@ -192,15 +192,14 @@ TEST(UnicodeHandlingTest, RejectsInvalidMultiByteUtf8)
#ifdef _WIN32
TEST(UnicodeHandlingTest, WideStringConversion)
{
wchar_t *wide_strings[] = {
const wchar_t *wide_strings[] = {
L"\xD835\xDD07\xD835\xDD22\xD835\xDD2F",
L"\xD835\xDD0E\xD835\xDD29\xD835\xDD1E\xD835\xDD32\xD835\xDD30",
NULL
};
for (wchar_t **wide_string = wide_strings; *wide_string; ++wide_string)
for (const auto wide_string : wide_strings)
{
StdStrBuf wide_string_buf(*wide_string);
EXPECT_STREQ(*wide_string, wide_string_buf.GetWideChar()) << "Conversion wchar_t*=>StdStrBuf=>wchar_t* isn't lossless";
StdStrBuf wide_string_buf(wide_string);
EXPECT_STREQ(wide_string, wide_string_buf.GetWideChar()) << "Conversion wchar_t*=>StdStrBuf=>wchar_t* isn't lossless";
}
}
#endif
@ -210,19 +209,18 @@ TEST(UnicodeHandlingTest, WideStringConversion)
char StdCompiler::SeparatorToChar(enum StdCompiler::Sep) { return ' '; }
TEST(UnicodeHandlingTest, RegistryAccess)
{
wchar_t *wide_strings[] = {
const wchar_t *wide_strings[] = {
L"\xD835\xDD07\xD835\xDD22\xD835\xDD2F",
L"\xD835\xDD0E\xD835\xDD29\xD835\xDD1E\xD835\xDD32\xD835\xDD30",
NULL
};
const char *key = "SOFTWARE\\OpenClonk Project\\OpenClonk\\Testing";
for (wchar_t **wide_string = wide_strings; *wide_string; ++wide_string)
for (const auto wide_string : wide_strings)
{
ASSERT_TRUE(SetRegistryString(key, "WideCharTest", StdStrBuf(*wide_string).getData()));
ASSERT_TRUE(SetRegistryString(key, "WideCharTest", StdStrBuf(wide_string).getData()));
StdCopyStrBuf buffer;
ASSERT_TRUE(!(buffer = GetRegistryString(key, "WideCharTest")).isNull());
EXPECT_STREQ(*wide_string, StdStrBuf(buffer).GetWideChar()) << "Registry read-back returned wrong value";
EXPECT_STREQ(wide_string, StdStrBuf(buffer).GetWideChar()) << "Registry read-back returned wrong value";
}
}
#endif