Fix all valgrind leak issues in tests
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
Signed-off-by: Deukhoofd <deukhoofd@gmail.com>
This commit is contained in:
@@ -23,8 +23,18 @@ namespace Porygon::Evaluation {
|
||||
return v->EvaluateBool();
|
||||
}
|
||||
|
||||
const char16_t *EvaluateEvalValueString(EvalValue *v) {
|
||||
return (new u16string(v->EvaluateString()))->c_str();
|
||||
size_t GetEvalValueStringLength(EvalValue *v) {
|
||||
auto result = v->EvaluateString();
|
||||
return result.size();
|
||||
}
|
||||
|
||||
int EvaluateEvalValueString(EvalValue *v, char16_t dst[]){
|
||||
auto result = v->EvaluateString();
|
||||
for (int i = 0; i < result.size(); i++){
|
||||
dst[i] = result[i];
|
||||
}
|
||||
dst[result.size() + 1] = '\0';
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -52,13 +62,18 @@ namespace Porygon::Evaluation {
|
||||
|
||||
|
||||
TEST_CASE( "Evaluate String", "[integration]" ) {
|
||||
auto script = Porygon::Script::Create(u"\"foo bar\"");
|
||||
auto sc = new u16string(u"\"foo bar\"");
|
||||
auto script = Porygon::Script::Create(*sc);
|
||||
REQUIRE(!script->Diagnostics -> HasErrors());
|
||||
script->Evaluate();
|
||||
auto lastValue = script->GetLastValue();
|
||||
auto s = u16string(EvaluateEvalValueString(lastValue));
|
||||
size_t size = GetEvalValueStringLength(lastValue);
|
||||
char16_t dst[size + 1];
|
||||
EvaluateEvalValueString(lastValue, dst);
|
||||
auto s = u16string(dst);
|
||||
REQUIRE(s == u"foo bar");
|
||||
delete script;
|
||||
delete sc;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ namespace Porygon::Evaluation{
|
||||
: _iterator(table->GetTableIterator()), _end(table->GetTableIteratorEnd()){}
|
||||
|
||||
shared_ptr<EvalValue> GetCurrent() final{
|
||||
return make_shared<StringEvalValue>(_iterator->first.GetString());
|
||||
return make_shared<StringEvalValue>(*_iterator->first.GetString());
|
||||
}
|
||||
|
||||
bool MoveNext() final{
|
||||
|
||||
Reference in New Issue
Block a user