55 lines
1.5 KiB
C++
Executable File
55 lines
1.5 KiB
C++
Executable File
#include "testEnv.hpp"
|
|
|
|
// Example from forum post question:
|
|
class STestScripts {}; // Proxy class
|
|
class TestScripts {
|
|
public:
|
|
int Var_ToBind1, Var_ToBind2;
|
|
|
|
void InitScript1(void) {
|
|
using namespace SqPlus;
|
|
Var_ToBind1 = 808;
|
|
RegisterGlobal(*this, &TestScripts::Test1, _SC("Test1"));
|
|
RegisterGlobal(*this, &TestScripts::Test2, _SC("Test2"));
|
|
BindVariable(&Var_ToBind1, _SC("Var_ToBind1"));
|
|
} // InitScript1
|
|
|
|
void InitScript2(void) {
|
|
using namespace SqPlus;
|
|
Var_ToBind2 = 909;
|
|
SQClassDef<STestScripts>(_SC("STestScripts"))
|
|
.staticFunc(*this,&TestScripts::Test1, _SC("Test1"))
|
|
.staticFunc(*this,&TestScripts::Test2, _SC("Test2"))
|
|
.staticVar(&Var_ToBind2, _SC("Var_ToBind2"))
|
|
;
|
|
} // InitScript2
|
|
|
|
void Test1(void) {
|
|
scprintf(_SC("TestScripts::Test1() called.\n"));
|
|
}
|
|
void Test2(void) {
|
|
scprintf(_SC("TestScripts::Test2() called.\n"));
|
|
}
|
|
} testScripts;
|
|
|
|
|
|
SQPLUS_TEST(Test_Scripts)
|
|
{
|
|
SQPLUS_TEST_TRACE();
|
|
|
|
testScripts.InitScript1();
|
|
testScripts.InitScript2();
|
|
|
|
RUN_SCRIPT(_SC("\
|
|
local testScripts = STestScripts(); \n\
|
|
testScripts.Test1(); \n\
|
|
testScripts.Test2(); \n\
|
|
print(testScripts.Var_ToBind2); \n\
|
|
assert(testScripts.Var_ToBind2 == 909); \n\
|
|
Test1(); \n\
|
|
Test2(); \n\
|
|
print(Var_ToBind1); \n\
|
|
assert(Var_ToBind1 == 808); \n\
|
|
"));
|
|
}
|