/*************************************************************************** * Copyright (C) 2021 by Chris Mitchell - chrismit7@gmail.com * * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * * GNU General Public License for more details. * * * * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ #include #include #include #include #include extern "C" { #if defined(INCLUDE_VERSIONED_LUA_HEADERS) #include #include #include #else #include #include #include #endif } class TVarTest : public QObject { Q_OBJECT private: lua_State* L = nullptr; std::unique_ptr interface; private slots: // NOLINT(readability-redundant-access-specifiers) void init() { L = luaL_newstate(); interface = std::make_unique(L); } void cleanup() { interface.reset(); lua_close(L); } void execLua(const QString& string) { luaL_loadstring(L, string.toUtf8().constData()); lua_pcall(L, 0, 0, 0); } void testRetrieveStrings() { execLua("test = '1'"); interface->getVars(false); VarUnit* vu = interface->getVarUnit(); TVar* base = vu->getBase(); QList children = base->getChildren(); TVar* testVar = children.first(); QCOMPARE(testVar->getName(), "test"); QCOMPARE(testVar->getValue(), "1"); QCOMPARE(testVar->getValueType(), LUA_TSTRING); } void testRetrieveNumber() { execLua("test = 1"); interface->getVars(false); VarUnit* vu = interface->getVarUnit(); TVar* base = vu->getBase(); QList children = base->getChildren(); TVar* testVar = children.first(); QCOMPARE(testVar->getName(), "test"); QCOMPARE(testVar->getValue(), "1"); QCOMPARE(testVar->getValueType(), LUA_TNUMBER); } }; #include "TLuaInterfaceTest.moc" QTEST_MAIN(TVarTest)