You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3143 lines
90 KiB
3143 lines
90 KiB
#if !XLUA_GENERAL
|
|
using UnityEngine;
|
|
#endif
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using XLua;
|
|
using System;
|
|
using System.IO;
|
|
|
|
public class LuaEnvSingletonForTest {
|
|
|
|
static private LuaEnv instance = null;
|
|
static public LuaEnv Instance
|
|
{
|
|
get
|
|
{
|
|
if(instance == null)
|
|
{
|
|
instance = new LuaEnv();
|
|
#if XLUA_GENERAL
|
|
instance.DoString("package.path = package.path..';../Test/UnitTest/xLuaTest/CSharpCallLua/Resources/?.lua.txt;../Test/UnitTest/StreamingAssets/?.lua'");
|
|
#endif
|
|
}
|
|
|
|
return instance;
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
|
|
public static class GenClass
|
|
{
|
|
[CSharpCallLua]
|
|
public static List<Type> mymodule_lua_call_cs_list = new List<Type>()
|
|
{
|
|
typeof(System.Action),
|
|
};
|
|
}
|
|
|
|
public struct Pedding
|
|
{
|
|
public byte c;
|
|
}
|
|
|
|
[GCOptimize]
|
|
[LuaCallCSharp]
|
|
public struct TestStruct
|
|
{
|
|
public TestStruct(int p1, int p2)
|
|
{
|
|
a = p1;
|
|
b = p2;
|
|
c = p2;
|
|
e.c = (byte)p1;
|
|
}
|
|
public int a;
|
|
public int b;
|
|
public decimal c;
|
|
public Pedding e;
|
|
}
|
|
|
|
[LuaCallCSharp]
|
|
public class TCForTestCSCallLua{
|
|
public static LuaEnv luaEnv = LuaEnvSingletonForTest.Instance;
|
|
string msg = "";
|
|
|
|
public void LOG(string text)
|
|
{
|
|
msg += text;
|
|
}
|
|
|
|
string script = @"
|
|
bValue1 = false
|
|
bValue2 = true
|
|
strValueEmpty = ''
|
|
strValueLong = string.rep('a', 2^10)
|
|
strValueShort = 'boo123'
|
|
strValueExp = '.* ? [ ] ^ $~`!@#$%^&()_-+=[];\',““〈〉〖【℃ $ ¤№ ☆ ★■ⅷ②㈣'
|
|
strValue5 = '\r\na'
|
|
strValue6 = [[
|
|
<html>
|
|
<head>
|
|
<title>test</title>
|
|
</head>
|
|
<body>
|
|
this is just a test lua multi lines string
|
|
</body>
|
|
</html>]]
|
|
strValueChin = '中文字符串'
|
|
strValueComp = '繁體國陸'
|
|
strValueHoX = '吙煋呅僦媞這樣孒'
|
|
sbyteValueMax = 127
|
|
sbyteValueMin = -128
|
|
byteValueMax = 255
|
|
byteValueMin = 0
|
|
shortValueMax = 32767
|
|
shortValueMin= -32768
|
|
ushortValueMax = 65535
|
|
ushortValueMid = 32768
|
|
intValueMax = 2147483647
|
|
intValueMin = -2147483648
|
|
uintValueMax = 4294967295
|
|
uintValueMid = 2147483648
|
|
longValue = 42949672960
|
|
longValue2 = -42949672960
|
|
ulongValueMax = 42949672961111
|
|
ulongValueMin = 0
|
|
doubleValue = 3.14159265
|
|
doubleValue2 = -3.14159265
|
|
floatValue = 3.14159265
|
|
floatValue2 = -3.14
|
|
charValue = 97
|
|
charValue2 = 65
|
|
decValue = 12.3111111111
|
|
decValue2 = -12.3111111111
|
|
intValue3 = 0
|
|
intZero = 0
|
|
|
|
tableValue1 = {
|
|
key1 = 100000, key2 = 10, key3 = true,
|
|
'red', 'yellow', 'green',
|
|
sub = function(self, a, b)
|
|
print('tableValue1.sub called')
|
|
return a - b
|
|
end,
|
|
tableValueInclude = {
|
|
1,2,3,4,5,6,7,8,9,0
|
|
},
|
|
tableVarInclude = {ikey1 = 10, ikey2 = 12}
|
|
}
|
|
|
|
tableValue2 = {
|
|
kv1 = true, kv2 = 'monday', kv3 = 1
|
|
}
|
|
|
|
tableValue3 = {
|
|
'apple', 'banana', 'orange', 'kiwi', 'grape', 'lemon', 'strawberry', 'pear'
|
|
}
|
|
|
|
tableValue4 = {
|
|
k1= 1, k2= 10, k3 = 100, k4 = 1000, k5 = 10000
|
|
}
|
|
|
|
tableValue5 = {
|
|
[100] = 100, [101] = 1000, [102] = 10000
|
|
}
|
|
|
|
tableValue6 = {1,2,3}
|
|
|
|
tableValue7 = {
|
|
key1 = 'abc', key2 = 10}
|
|
|
|
function func_self_increase()
|
|
print('func_self_inscrease called')
|
|
intValue3 = intValue3 + 1;
|
|
end
|
|
|
|
function func_add_table(a)
|
|
local sum = 0
|
|
for i, v in ipairs(a) do
|
|
sum = sum + v
|
|
end
|
|
return sum
|
|
end
|
|
|
|
function func_add_2(a)
|
|
local sum = 0
|
|
for i, v in pairs(a) do
|
|
sum = sum + v
|
|
end
|
|
return sum
|
|
end
|
|
|
|
function func_return_multivalues()
|
|
local update = false
|
|
local strShort = 'false'
|
|
print('intValue3=', intValue3)
|
|
if intValue3 > 0
|
|
then
|
|
print('in if, intValue3=', intValue3)
|
|
update = true
|
|
strShort = 'true'
|
|
end
|
|
return update, strShort, {k1 = 11, k2 = 12}
|
|
end
|
|
|
|
function func_return_multivalues2()
|
|
local update = false
|
|
local strShort = 'false'
|
|
print('intValue3=', intValue3)
|
|
if intValue3 > 0
|
|
then
|
|
print('in if, intValue3=', intValue3)
|
|
update = true
|
|
strShort = 'true'
|
|
end
|
|
return update, strShort, {k1 = 11, k2 = 12}
|
|
end
|
|
|
|
function func_return_func()
|
|
print('func_return_func called')
|
|
return func_self_increase
|
|
end
|
|
|
|
function func_closure()
|
|
local i = 0
|
|
return function()
|
|
i = i + 1
|
|
return i
|
|
end
|
|
end
|
|
|
|
function func_multi_params(a, b, c)
|
|
if a == true
|
|
then
|
|
b = b + 1
|
|
c = string.lower(c)
|
|
end
|
|
return a, b, c
|
|
end
|
|
|
|
function func_multi_params2(a, b)
|
|
local sum = 0
|
|
if a == true
|
|
then
|
|
sum = b + 1
|
|
end
|
|
return func_self_increase, a, sum
|
|
end
|
|
|
|
function func_multi_params3(b, a)
|
|
local sum = 0
|
|
if a == true
|
|
then
|
|
sum = b + 1
|
|
end
|
|
return sum, a
|
|
end
|
|
|
|
function func_multi_params4(b, a)
|
|
local sum = 0
|
|
if a == true
|
|
then
|
|
sum = b + 1
|
|
end
|
|
return sum, a
|
|
end
|
|
|
|
function func_varparams(...)
|
|
local arg={...}
|
|
local sum = 0
|
|
print(select('#', ...))
|
|
for key, value in ipairs(arg)
|
|
do
|
|
sum = sum + value
|
|
--print(value)
|
|
--sum = sum + 1
|
|
end
|
|
return sum
|
|
end
|
|
|
|
function func_readfile(file_name)
|
|
local hFile = io.open(file_name, r)
|
|
if hFile
|
|
then
|
|
local strContent = hFile:read('*all')
|
|
print(strContent)
|
|
return strContent
|
|
else
|
|
print('file is not exist')
|
|
end
|
|
return nil
|
|
end
|
|
|
|
function func_return_object(type)
|
|
if type == 0 then
|
|
local ret = io.open(CS.LuaTestCommon.xxxtdrfilepath, r)
|
|
print('open A.lua.txt ret is ', ret)
|
|
return ret
|
|
end
|
|
if type == 1 then
|
|
return CS.LongStatic.LONG_MAX
|
|
end
|
|
if type == 2 then
|
|
return CS.LongStatic.ULONG_MAX
|
|
end
|
|
return 0
|
|
end
|
|
";
|
|
|
|
public struct TestResult
|
|
{
|
|
public bool result;
|
|
public string msg;
|
|
public override string ToString()
|
|
{
|
|
return "Result: " + result.ToString () + ", Msg:" + msg;
|
|
}
|
|
}
|
|
|
|
public TCForTestCSCallLua()
|
|
{
|
|
|
|
}
|
|
|
|
public void setResult(bool result, string msg, out TestResult resultStruct)
|
|
{
|
|
resultStruct.result = result;
|
|
resultStruct.msg = msg;
|
|
}
|
|
|
|
public void updateResult(bool result, string msg, ref TestResult resultStruct)
|
|
{
|
|
if (resultStruct.result == true) {
|
|
resultStruct.msg = msg;
|
|
} else {
|
|
resultStruct.msg = resultStruct.msg + "\r\n" + msg;
|
|
}
|
|
resultStruct.result = result;
|
|
}
|
|
|
|
public byte[] AddLoader1(ref string filename)
|
|
{
|
|
if (filename == "InMemory")
|
|
{
|
|
string script = "return {ccc = 9999}";
|
|
return System.Text.Encoding.UTF8.GetBytes(script);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public byte[] AddLoader2(ref string filename)
|
|
{
|
|
if (filename == "InFile") {
|
|
string script = "filestring = 'addloader2'";
|
|
return System.Text.Encoding.UTF8.GetBytes (script);
|
|
} else if (filename == "other") {
|
|
string script = "error('filename is error')";
|
|
return System.Text.Encoding.UTF8.GetBytes (script);
|
|
} else if (filename == "error_lua") {
|
|
string script = "maths:abs(-10)";
|
|
return System.Text.Encoding.UTF8.GetBytes (script);
|
|
}
|
|
return null;
|
|
}
|
|
|
|
public string listToString(List<int> a)
|
|
{
|
|
string result = "";
|
|
foreach (int i in a) {
|
|
result += i.ToString() + ",";
|
|
}
|
|
return result.TrimEnd(',');
|
|
}
|
|
|
|
public string listToStr(List<string> a)
|
|
{
|
|
string result = "";
|
|
foreach (string i in a) {
|
|
result += i + ",";
|
|
}
|
|
return result.TrimEnd(',');
|
|
}
|
|
|
|
public TestResult testDoString2LoadLua_Step_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486934,第1步
|
|
*/
|
|
string caseName = "testDoString2LoadLua_Step_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
string luaScript = @"
|
|
--call standard lib
|
|
require 'math'
|
|
a = math.abs(-10)
|
|
print('abs: ', a)
|
|
";
|
|
|
|
luaEnv.DoString (luaScript);
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult(false, e.Message , out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testDoString2LoadLua_Step_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486934,第2步
|
|
*
|
|
*/
|
|
string caseName = "testDoString2LoadLua_Step_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
string luaScript = @"
|
|
checkFlag = false;
|
|
a = 100
|
|
b = 1000
|
|
if a < b then
|
|
error('error raise')
|
|
end
|
|
";
|
|
luaEnv.DoString (luaScript);
|
|
setResult(false, "syntax error should be found, but there is no exception.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testDoString2LoadLua_Step_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486934,第3步
|
|
*
|
|
*/
|
|
string caseName = "testDoString2LoadLua_Step_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
string luaScript = @"
|
|
--call standard lib
|
|
a = maths.abs(-10)
|
|
print('abs: ', a)
|
|
";
|
|
luaEnv.DoString (luaScript);
|
|
setResult(false, "exception should be raised, but there is no exception.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testRequire2LoadLua_Step_1_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486935,第1~3,8,9步
|
|
*/
|
|
string caseName = "testRequire2LoadLua_Step_1_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString("require 'A'");
|
|
luaEnv.DoString("require 'testlua.B';require 'D'");
|
|
luaEnv.DoString("require 'empty'");
|
|
// luaEnv.DoString ("require 'testlua.main'");
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult(false, e.Message , out result);
|
|
}
|
|
string dValue = luaEnv.Global.Get<string> ("strValue");
|
|
LOG ("_G.strValue = " + dValue);
|
|
if (dValue != "D.lua.txt") {
|
|
setResult (false, result.msg + ", require should require d from Resources, but strValue=" + dValue, out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testRequire2LoadLua_Step_4()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486935,第4步
|
|
*/
|
|
string caseName = "testRequire2LoadLua_Step_4: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString ("require 'testlua.main'");
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult(false, e.Message , out result);
|
|
}
|
|
string dValue = luaEnv.Global.Get<string> ("strValue");
|
|
LOG ("_G.strValue = " + dValue);
|
|
if (dValue != "D.lua.txt") {
|
|
setResult (false, result.msg + ", require should require d from Resources, but strValue=" + dValue, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testRequire2LoadLua_Step_5()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486935,第5步
|
|
*/
|
|
string caseName = "testRequire2LoadLua_Step_5: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString ("require 'E'");
|
|
setResult(false, "E.lua in Resources path, but be loaded, no exception be raised.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testRequire2LoadLua_Step_6()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486935,第6步
|
|
*/
|
|
string caseName = "testRequire2LoadLua_Step_6: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString ("require 'F'");
|
|
setResult(false, "F.lua deesn't exist, but no exception be raised.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testRequire2LoadLua_Step_7()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486935,第7步
|
|
*/
|
|
string caseName = "testRequire2LoadLua_Step_7: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString ("require 'error'");
|
|
setResult(false, "there is syntax errors in error.lua, but no exception be raised.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testAddLoader2LoadLua_Step_1_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486936,第1~2,5步
|
|
*/
|
|
string caseName = "testAddLoader2LoadLua_Step_1_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.AddLoader(AddLoader1);
|
|
luaEnv.DoString("inmemory = require('InMemory').ccc");
|
|
luaEnv.AddLoader(AddLoader2);
|
|
luaEnv.DoString("require('InFile')");
|
|
luaEnv.AddLoader(AddLoader2);
|
|
luaEnv.DoString("require('InFile')");
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult(false, e.Message , out result);
|
|
}
|
|
LuaTestCommon.Log ("InMemory.ccc=" + luaEnv.Global.Get<int> ("inmemory"));
|
|
LuaTestCommon.Log("InFile.filestring=" + luaEnv.Global.Get<string>("filestring"));
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testAddLoader2LoadLua_Step_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486936,第3步
|
|
*/
|
|
string caseName = "testAddLoader2LoadLua_Step_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.AddLoader(AddLoader2);
|
|
luaEnv.DoString(" require('other')");
|
|
setResult(false, "AddLoader2 should raise exception, but it doesn't.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass" , out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testAddLoader2LoadLua_Step_6()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486936,第6步
|
|
*/
|
|
string caseName = "testAddLoader2LoadLua_Step_6: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.AddLoader(AddLoader2);
|
|
luaEnv.DoString(" require('error_lua')");
|
|
setResult(false, "AddLoader2 should raise exception, but it doesn't.", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult (true, "pass", out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testAddLoader2LoadLua_Step_7()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486936,第7步
|
|
*/
|
|
string caseName = "testAddLoader2LoadLua_Step_7: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.AddLoader(AddLoader2);
|
|
luaEnv.DoString(@"package.loaded['InFil'] = nil");
|
|
luaEnv.DoString("require('InFile')");
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
setResult(false, e.Message , out result);
|
|
}
|
|
string filestring = luaEnv.Global.Get<string> ("filestring");
|
|
if (filestring != "addloader2")
|
|
{
|
|
setResult(false, "shoulde load loader defined, but loadfile in Resources.", out result);
|
|
}
|
|
LuaTestCommon.Log ("InFile.filestring=" + filestring);
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeBool_Step_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第1步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeBool_step_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
bool falseVar = luaEnv.Global.Get<bool> ("bValue1");
|
|
bool trueVar = luaEnv.Global.Get<bool> ("bValue2");
|
|
LOG ("bValue1=" + falseVar + "; bValue2=" + trueVar);
|
|
if (falseVar == false && trueVar == true) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "fail", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeString_Step_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第2步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeString_step_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
string emptyStr = luaEnv.Global.Get<string> ("strValueEmpty");
|
|
string longStr = luaEnv.Global.Get<string> ("strValueLong");
|
|
string shortStr = luaEnv.Global.Get<string> ("strValueShort");
|
|
string expStr = luaEnv.Global.Get<string> ("strValueExp");
|
|
string zhuanyiStr = luaEnv.Global.Get<string> ("strValue5");
|
|
string linesStr = luaEnv.Global.Get<string> ("strValue6");
|
|
string chinStr = luaEnv.Global.Get<string> ("strValueChin");
|
|
string compStr = luaEnv.Global.Get<string> ("strValueComp");
|
|
string huoxingStr = luaEnv.Global.Get<string> ("strValueHoX");
|
|
|
|
LOG ("strValueEmpty=" + emptyStr + "; strValueLong length=" + longStr.Length);
|
|
LOG ("strValueShort=" + shortStr + "; trValueExp=" + expStr);
|
|
LOG ("strValue5=" + zhuanyiStr + "; strValue6=" + linesStr);
|
|
LOG ("strValueChin=" + chinStr + "; strValueComp=" + compStr);
|
|
LOG ("strValueHoX=" + huoxingStr);
|
|
|
|
if (emptyStr == "") {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).empty string isn't empty, is " + emptyStr, out result);
|
|
}
|
|
if (longStr.Length != 1024) {
|
|
updateResult(false, "(2). long string's length should be 1024, but is " + longStr.Length, ref result);
|
|
}
|
|
if (shortStr != "boo123") {
|
|
updateResult(false, "(3). short string should be bool123 but is " + shortStr, ref result);
|
|
}
|
|
if (expStr != ".* ? [ ] ^ $~`!@#$%^&()_-+=[];\',““〈〉〖【℃ $ ¤№ ☆ ★■ⅷ②㈣") {
|
|
updateResult(false, "(4). complex string is wrong, which is " + expStr, ref result);
|
|
}
|
|
if (zhuanyiStr != "\r\na") {
|
|
updateResult(false, "(5).zhuanyi string is wrong, which is " + zhuanyiStr, ref result);
|
|
}
|
|
if (linesStr.Split('\n').Length !=8) {
|
|
updateResult(false, "(6).multi lines string should have 8 liens, but it is " + linesStr.Split('\n').Length, ref result);
|
|
}
|
|
if (chinStr != "中文字符串") {
|
|
updateResult(false, "(7).chinese string is wrong, which is " + chinStr, ref result);
|
|
}
|
|
if (compStr != "繁體國陸") {
|
|
updateResult(false, "(8).fanti string is wrong, which is " + compStr, ref result);
|
|
}
|
|
if (huoxingStr != "吙煋呅僦媞這樣孒") {
|
|
updateResult(false, "(9).huoxing string is wrong, which is " + huoxingStr, ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToSByte()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToSByte: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> sbyte
|
|
sbyte sbyteValueMax = luaEnv.Global.Get<sbyte> ("sbyteValueMax");
|
|
sbyte sbyteValueMin = luaEnv.Global.Get<sbyte> ("sbyteValueMin");
|
|
sbyte sbyteOverMax = luaEnv.Global.Get<sbyte> ("intValueMax");
|
|
sbyte sbyteOverMin = luaEnv.Global.Get<sbyte> ("intValueMin");
|
|
LOG ("sbyteValueMax=" + sbyteValueMax + "; sbyteValueMin=" + sbyteValueMin);
|
|
LOG ("sbyteOverMax=" + sbyteOverMax + "; sbyteOverMin=" + sbyteOverMin);
|
|
|
|
if (sbyteValueMax == System.SByte.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).sbyteValueMax, is " + sbyteValueMax, out result);
|
|
}
|
|
if (sbyteValueMin != System.SByte.MinValue) {
|
|
updateResult(false, "(2).sbyteValueMin, is " + sbyteValueMin, ref result);
|
|
}
|
|
if (sbyteOverMax != -1) {
|
|
updateResult(false, "(3).sbyteOverMax, is " + sbyteOverMax, ref result);
|
|
}
|
|
if (sbyteOverMin != 0) {
|
|
updateResult(false, "(4).sbyteOverMin, is " + sbyteOverMin, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToByte()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToByte: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> byte
|
|
byte byteValueMax = luaEnv.Global.Get<byte> ("byteValueMax");
|
|
byte byteValueMin = luaEnv.Global.Get<byte> ("byteValueMin");
|
|
byte byteOverMax = luaEnv.Global.Get<byte> ("intValueMax");
|
|
byte byteOverMin = luaEnv.Global.Get<byte> ("intValueMin");
|
|
LOG ("byteValueMax=" + byteValueMax + "; byteValueMin=" + byteValueMin);
|
|
LOG ("byteOverMax=" + byteOverMax + "; byteOverMin=" + byteOverMin);
|
|
|
|
if (byteValueMax == System.Byte.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).byteValueMax, is " + byteValueMax, out result);
|
|
}
|
|
if (byteValueMin != System.Byte.MinValue) {
|
|
updateResult(false, "(2).byteValueMin, is " + byteValueMin, ref result);
|
|
}
|
|
if (byteOverMax != 255) {
|
|
updateResult(false, "(3).byteOverMax, is " + byteOverMax, ref result);
|
|
}
|
|
if (byteOverMin != 0) {
|
|
updateResult(false, "(4).sbyteOverMin, is " + byteOverMin, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToShort()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToShort: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> short
|
|
short shortValueMax = luaEnv.Global.Get<short> ("shortValueMax");
|
|
short shortValueMin = luaEnv.Global.Get<short> ("shortValueMin");
|
|
|
|
LOG ("shortValueMax=" + shortValueMax + "; shortValueMin=" + shortValueMin);
|
|
|
|
if (shortValueMax == System.Int16.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).shortValueMax, is " + shortValueMax, out result);
|
|
}
|
|
if (shortValueMin != System.Int16.MinValue) {
|
|
updateResult(false, "(2).shortValueMin, is " + shortValueMin, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToUShort()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToUShort: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> ushort
|
|
ushort ushortValueMax = luaEnv.Global.Get<ushort> ("ushortValueMax");
|
|
ushort ushortValueMid = luaEnv.Global.Get<ushort> ("ushortValueMid");
|
|
|
|
LOG ("ushortValueMax=" + ushortValueMax + "; shortValueMin=" + ushortValueMid);
|
|
|
|
if (ushortValueMax == System.UInt16.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).ushortValueMax, is " + ushortValueMax, out result);
|
|
}
|
|
if (ushortValueMid != 32768) {
|
|
updateResult(false, "(2).ushortValueMid, is " + ushortValueMid, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToInt()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToInt: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> int
|
|
int intValueMax = luaEnv.Global.Get<int> ("intValueMax");
|
|
int intValueMin = luaEnv.Global.Get<int> ("intValueMin");
|
|
int intZero = luaEnv.Global.Get<int> ("intZero");
|
|
|
|
LOG ("intValueMax=" + intValueMax + "; intValueMin=" + intValueMin);
|
|
|
|
if (intValueMax == System.Int32.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).intValueMax, is " + intValueMax, out result);
|
|
}
|
|
if (intValueMin != System.Int32.MinValue) {
|
|
updateResult(false, "(2).intValueMin, is " + intValueMin, ref result);
|
|
}
|
|
if (intZero != 0) {
|
|
updateResult(false, "(3).intZero, is " + intZero, ref result);
|
|
}
|
|
|
|
try {
|
|
int intValueOverMax = luaEnv.Global.Get<int> ("longValue");
|
|
int intValueOverMin = luaEnv.Global.Get<int> ("uintValueMax");
|
|
LOG ("intValueOverMax=" + intValueOverMax + "; intValueOverMin=" + intValueOverMin);
|
|
} catch(Exception e) {
|
|
updateResult(false, "it shouldn't raise exception, but e.msg:" + e.Message, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToUInt()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToUInt: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> uint
|
|
uint uintValueMax = luaEnv.Global.Get<uint> ("uintValueMax");
|
|
uint uintValueMid = luaEnv.Global.Get<uint> ("uintValueMid");
|
|
|
|
LOG ("uintValueMax=" + uintValueMax + "; uintValueMid=" + uintValueMid);
|
|
|
|
if (uintValueMax == System.UInt32.MaxValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).uintValueMax, is " + uintValueMax, out result);
|
|
}
|
|
if (uintValueMid != 2147483648) {
|
|
updateResult(false, "(2).uintValueMid, is " + uintValueMid, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToLong()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToLong: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> long
|
|
long longValue = luaEnv.Global.Get<long> ("longValue");
|
|
long longValue2 = luaEnv.Global.Get<long> ("longValue2");
|
|
|
|
LOG ("longValue=" + longValue + "; longValue2=" + longValue2);
|
|
LuaTestCommon.Log("longValue=" + longValue + "; longValue2=" + longValue2);
|
|
|
|
if (longValue == 42949672960) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).longValue, is " + longValue, out result);
|
|
}
|
|
if (longValue2 != -42949672960) {
|
|
updateResult(false, "(2).longValue2, is " + longValue2, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToULong()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步,不支持number转64位,会报错
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToULong: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> ulong
|
|
ulong ulongValueMax = luaEnv.Global.Get<ulong> ("ulongValueMax");
|
|
ulong ulongValueMin = luaEnv.Global.Get<ulong> ("ulongValueMin");
|
|
|
|
LOG ("ulongValueMax=" + ulongValueMax + "; ulongValueMin=" + ulongValueMin);
|
|
|
|
if (ulongValueMax == 42949672961111) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).ulongValueMax, is " + ulongValueMax, out result);
|
|
}
|
|
if (ulongValueMin != 0) {
|
|
updateResult(false, "(2).ulongValueMin, is " + ulongValueMin, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToDouble()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToDouble: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> double
|
|
double doubleValue = luaEnv.Global.Get<double> ("doubleValue");
|
|
double doubleValue2 = luaEnv.Global.Get<double> ("doubleValue2");
|
|
|
|
LOG ("doubleValue=" + doubleValue + "; doubleValue2=" + doubleValue2);
|
|
|
|
if (doubleValue == 3.14159265) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).doubleValue, is " + doubleValue, out result);
|
|
}
|
|
if (doubleValue2 != -3.14159265) {
|
|
updateResult(false, "(2).doubleValue2, is " + doubleValue2, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToChar()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToChar: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> char
|
|
char charValue = luaEnv.Global.Get<char> ("charValue");
|
|
char charValue2 = luaEnv.Global.Get<char> ("charValue2");
|
|
|
|
LOG ("charValue=" + charValue + "; charValue2=" + charValue2);
|
|
|
|
if (charValue == 'a') {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).charValue, is " + charValue, out result);
|
|
}
|
|
if (charValue2 != 'A') {
|
|
updateResult(false, "(2).charValue2, is " + charValue2, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToFloat()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToFloat: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> float
|
|
float floatValue = luaEnv.Global.Get<float> ("floatValue");
|
|
float floatValue2 = luaEnv.Global.Get<float> ("floatValue2");
|
|
|
|
LOG ("floatValue=" + floatValue.ToString("F8") + "; charValue2=" + floatValue2);
|
|
|
|
if (System.Math.Abs(floatValue - 3.141593) < 0.000001) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).floatValue, is " + floatValue, out result);
|
|
}
|
|
if (System.Math.Abs(floatValue + 3.14) < 0.000001) {
|
|
updateResult(false, "(2).floatValue2, is " + floatValue2, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataTypeNumberToDecimal()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第3步
|
|
*/
|
|
string caseName = "testGetBasicDataTypeNumberToDecimal: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
// number -> decimal
|
|
decimal decValue = luaEnv.Global.Get<decimal> ("decValue");
|
|
decimal decValue2 = luaEnv.Global.Get<decimal> ("decValue2");
|
|
decimal expectValue = 12.3111111111m;
|
|
decimal expectValue2 = -12.3111111111m;
|
|
|
|
LOG ("decValue=" + decValue + "; decValue2=" + decValue2);
|
|
|
|
if (decValue == expectValue) {
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).decValue, is " + decValue, out result);
|
|
}
|
|
if (decValue2 != expectValue2) {
|
|
updateResult(false, "(2).decValue2, is " + decValue2, ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataType_Step_4()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第4步
|
|
*/
|
|
string caseName = "testGetBasicDataType_Step_4: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString(script);
|
|
int noExistInt = luaEnv.Global.Get<int> ("noExistValue");
|
|
string noExistString = luaEnv.Global.Get<string> ("noExistString");
|
|
LOG ("noExistInt=" + noExistInt + "; noExistString=" + noExistString);
|
|
//setResult (false, "no exist value should raise exception", out result);
|
|
//setResult(false, "there is no var defined, should raise exception, but it doesn't.", out result);
|
|
setResult (false, "v2.1.3 change,noExistValue, only value type and nil value will raise exception", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
LOG(e.Message);
|
|
setResult (true, "pass", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetBasicDataType_Step_5()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486937,第5步
|
|
*/
|
|
string caseName = "testGetBasicDataType_Step_5: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
try
|
|
{
|
|
luaEnv.DoString(script);
|
|
luaEnv.DoString("str2int='123'");
|
|
int string2Int = luaEnv.Global.Get<int> ("str2int");
|
|
/*string number2str = luaEnv.Global.Get<string>("byteValueMax");
|
|
LOG ("string2Int=" + string2Int + ", number2str=" + number2str);
|
|
|
|
int bool2int = luaEnv.Global.Get<int> ("bValue2");
|
|
string bool2str = luaEnv.Global.Get<string> ("bValue1");
|
|
LOG ("bool2int=" + bool2int + ", bool2str=" + bool2str);*/
|
|
//setResult (false, "type is not same, should raise exception", out result);
|
|
// setResult(false, "there is no var defined, should raise exception, but it doesn't.", out result);
|
|
setResult (true, "pass", out result);
|
|
}
|
|
catch(Exception e)
|
|
{
|
|
LOG(e.Message);
|
|
setResult (false, "v2.1.3 change, type is not same, only value type and nil value will raise exception", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第1和1.2步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassEqual tb1Class = luaEnv.Global.Get<tableValue1ClassEqual> ("tableValue1");
|
|
List<int> tableValueIncludeList = new List<int>(){1,2,3,4,5,6,7,8,9,0};
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2= " + tb1Class.key2);
|
|
LOG ("tableValue1.key3 = " + tb1Class.key3 + "; tableValue1.tableValueInclude= " +
|
|
listToString(tb1Class.tableValueInclude));
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
if (tb1Class.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Class.key2 , ref result);
|
|
}
|
|
if (tb1Class.key3 != true) {
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb1Class.key3 , ref result);
|
|
}
|
|
if (tb1Class.tableValueInclude.Count != tableValueIncludeList.Count ||
|
|
tb1Class.tableValueInclude[0] != tableValueIncludeList[0]) {
|
|
updateResult(false, "(4).tableValue1.tableValueInclude should be {1,2,3,4,5,6,7,8,9,0}," +
|
|
"but in fact is " + listToString(tb1Class.tableValueInclude), ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第2步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassLess tb1Class = luaEnv.Global.Get<tableValue1ClassLess> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2= " + tb1Class.key2);
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
if (tb1Class.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Class.key2 , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第3步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassMore tb1Class = luaEnv.Global.Get<tableValue1ClassMore> ("tableValue1");
|
|
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2 = " + tb1Class.key2);
|
|
LOG ("tableValue1.key3 = " + tb1Class.key3 + "; tableValue1ClassMore.key4 = " + tb1Class.key4);
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
if (tb1Class.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Class.key2 , ref result);
|
|
}
|
|
if (tb1Class.key3 != true) {
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb1Class.key3 , ref result);
|
|
}
|
|
if (tb1Class.key4 != 0) {
|
|
updateResult(false, "(4).key4 should be 0 default, but in fact is " + tb1Class.key4 , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_4()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第4步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_4: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassMore tb1Class = luaEnv.Global.Get<tableValue1ClassMore> ("tableValue1");
|
|
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2 = " + tb1Class.key2);
|
|
LOG ("tableValue1.key3 = " + tb1Class.key3 + "; tableValue1ClassMore.key4 = " + tb1Class.key4);
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
|
|
tb1Class.key1 = 100;
|
|
tableValue1ClassMore tb1Class2 = luaEnv.Global.Get<tableValue1ClassMore> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + tb1Class2.key1);
|
|
if (tb1Class2.key1 != 100000){
|
|
updateResult(false, "(2).tableValue1.key1 should be 100000, but int fact is" + tb1Class2.key1 , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_5()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第5步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_5: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassPrivate tb1Class = luaEnv.Global.Get<tableValue1ClassPrivate> ("tableValue1");
|
|
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2 = " + tb1Class.Get());
|
|
LOG ("tableValue1.key3 = " + tb1Class.key3);
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
if (tb1Class.Get () != 0){
|
|
updateResult(false, "(2).private key2 should be 0, but int fact is " + tb1Class.Get () , ref result);
|
|
}
|
|
if (tb1Class.key3 != true) {
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb1Class.key3 , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_1_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第1.1步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_1_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
try{
|
|
|
|
tableValue1ClassParamConstucter tb1Class = luaEnv.Global.Get<tableValue1ClassParamConstucter> ("tableValue1");
|
|
// LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2 = " + tb1Class.key2);
|
|
// LOG ("tableValue1.key3 = " + tb1Class.key3);
|
|
setResult (true, "pass", out result);
|
|
} catch(Exception e){
|
|
setResult (false, "v2.1.3change, only value type and nil value will raise exception ,class has no non-param constructor will not", out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_1_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第1.3步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_1_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassTwoConstructer tb1Class = luaEnv.Global.Get<tableValue1ClassTwoConstructer> ("tableValue1");
|
|
|
|
LOG ("tableValue1.key1 = " + tb1Class.key1 + "; tableValue1.key2 = " + tb1Class.key2);
|
|
LOG ("tableValue1.key3 = " + tb1Class.key3 );
|
|
|
|
if (tb1Class.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Class.key1 + "", out result);
|
|
}
|
|
if (tb1Class.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Class.key2 , ref result);
|
|
}
|
|
if (tb1Class.key3 != true) {
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb1Class.key3 , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToClass_Step_1_4()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第1.4步
|
|
*/
|
|
string caseName = "testGetTableToClass_Step_1_4: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
try{
|
|
tableValue1ClassException tb1Class = luaEnv.Global.Get<tableValue1ClassException> ("tableValue1");
|
|
setResult (false, "class constructor should raise exception, but it doesnpt", out result);
|
|
} catch(Exception e){
|
|
setResult (true, "pass", out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToInterface_Step_6()
|
|
{
|
|
//对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第6步
|
|
|
|
string caseName = "testGetTableToInterface_Step_6: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1InfEqual tb1Inf = luaEnv.Global.Get<tableValue1InfEqual> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + tb1Inf.key1 + "; tableValue1.key2 = " + tb1Inf.key2);
|
|
LOG ("tableValue1.key3 = " + tb1Inf.key3 );
|
|
LOG ("tableValue1.tableVarInclude.ikey1 = " + tb1Inf.tableVarInclude.ikey1 +
|
|
"; tableValue1.tableVarInclude.ikey2 = " + tb1Inf.tableVarInclude.ikey2);
|
|
|
|
if (tb1Inf.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Inf.key1 + "", out result);
|
|
}
|
|
if (tb1Inf.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Inf.key2 , ref result);
|
|
}
|
|
if (tb1Inf.key3 != true) {
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb1Inf.key3 , ref result);
|
|
}
|
|
if (tb1Inf.tableVarInclude.ikey1 != 10) {
|
|
updateResult(false, "(4).tableValue1.tableVarInclude.ikey1 should be 10, but in fact is " + tb1Inf.tableVarInclude.ikey1 , ref result);
|
|
}
|
|
if (tb1Inf.tableVarInclude.ikey2 != 12) {
|
|
updateResult(false, "(5).tableValue1.tableVarInclude.ikey2 should be 12, but in fact is " + tb1Inf.tableVarInclude.ikey2, ref result);
|
|
}
|
|
int subResult = tb1Inf.sub (1000, 100);
|
|
if (subResult != 900 ) {
|
|
updateResult(false, "(6).sub result is error, 1000 - 100 = " + subResult , ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToInterface_Step_7()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第7步
|
|
*/
|
|
string caseName = "testGetTableToInterface_Step_7: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1InfLess tb1Inf = luaEnv.Global.Get<tableValue1InfLess> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + tb1Inf.key1 + "; tableValue1.key2 = " + tb1Inf.key2);
|
|
|
|
if (tb1Inf.key1 == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb1Inf.key1 + "", out result);
|
|
}
|
|
if (tb1Inf.key2 != 10) {
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb1Inf.key2 , ref result);
|
|
}
|
|
|
|
int subResult = tb1Inf.sub (1000, 100);
|
|
if (subResult != 900 ) {
|
|
updateResult(false, "(3).sub result is error, 1000 - 100 = " + subResult , ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToInterface_Step_8()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第8步
|
|
*/
|
|
string caseName = "testGetTableToInterface_Step_8: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1InfMore tb1Inf = luaEnv.Global.Get<tableValue1InfMore> ("tableValue1");
|
|
LOG ("tableValue1InfMore.key4 = " + tb1Inf.key4);
|
|
|
|
if (tb1Inf.key4 == null){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "(1).key4 should be '' default, but int fact is : " + tb1Inf.key4 + "", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToInterface_Step_9()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第9步
|
|
*/
|
|
string caseName = "testGetTableToInterface_Step_9: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue2Inf tb1Inf = luaEnv.Global.Get<tableValue2Inf> ("tableValue2");
|
|
LOG ("tableValue2.kv1 = " + tb1Inf.kv1 + "; tableValue2.kv2 = " + tb1Inf.kv2);
|
|
LOG ("tableValue2.kv3 = " + tb1Inf.kv3 );
|
|
|
|
tb1Inf.kv1 = false;
|
|
tb1Inf.kv2 = "test";
|
|
tb1Inf.kv3 = 3;
|
|
tableValue2Inf tb1Inf2 = luaEnv.Global.Get<tableValue2Inf> ("tableValue2");
|
|
LOG ("tableValue2.kv1 = " + tb1Inf2.kv1 + "; tableValue2.kv2 = " + tb1Inf2.kv2);
|
|
LOG ("tableValue2.kv3 = " + tb1Inf2.kv3 );
|
|
|
|
if (tb1Inf2.kv1 == false && tb1Inf2.kv2 == "test" && tb1Inf2.kv3 == 3){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "by ref, kv1, kv2, kv3 = " + tb1Inf2.kv1 +
|
|
", " + tb1Inf2.kv2 + ", " + tb1Inf2.kv3, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToInterface_Step_6_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第6.1步
|
|
*/
|
|
string caseName = "testGetTableToInterface_Step_6_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
try{
|
|
tableValue1InfTypeDiff tb1Inf = luaEnv.Global.Get<tableValue1InfTypeDiff> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + tb1Inf.key1 + "; tableValue1.key2 = " + tb1Inf.key2);
|
|
|
|
tableValue1InfLess tb2Inf = luaEnv.Global.Get<tableValue1InfLess> ("tableValue7");
|
|
LOG ("tableValue1.key1 = " + tb2Inf.key1 + "; tableValue2.key2 = " + tb2Inf.key2);
|
|
setResult (true, "pass", out result);
|
|
|
|
} catch(Exception e){
|
|
|
|
setResult (false, "class constructor should raise exception, but it doesnpt", out result);
|
|
LOG (e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToDic_Step_10()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第10步
|
|
*/
|
|
string caseName = "testGetTableToDic_Step_10: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
Dictionary<string, int> dict = luaEnv.Global.Get<Dictionary<string, int>> ("tableValue4");
|
|
LOG ("tableValue4.k1 = " + dict["k1"] + "; tableValue4.k2 = " + dict["k2"]);
|
|
LOG ("tableValue4.k3 = " + dict["k3"] + "; tableValue4.k4 = " + dict["k4"]);
|
|
LOG ("tableValue4.k5 = " + dict["k5"]);
|
|
|
|
if (dict["k1"] == 1 && dict["k2"] == 10 && dict["k3"] == 100 && dict["k4"] == 1000
|
|
&& dict["k5"] == 10000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "tableValue4 should be k1= 1, k2= 10, k3 = 100, k4 = 1000, k5 = 10000", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToDic_Step_11_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第11.1步
|
|
*/
|
|
string caseName = "testGetTableToDic_Step_11_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
Dictionary<int, string> dict = luaEnv.Global.Get<Dictionary<int, string>> ("tableValue4");
|
|
LOG ("dict.Count = " + dict.Count);
|
|
|
|
if (dict.Count == 0){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "dict should be {}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToDic_Step_11_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第11.2步
|
|
*/
|
|
string caseName = "testGetTableToDic_Step_11_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
Dictionary<string, int> dict = luaEnv.Global.Get<Dictionary<string, int>> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + dict["key1"] + ", tableValue1.key2 = " + dict["key2"]);
|
|
LOG ("dict.Count = " + dict.Count);
|
|
|
|
if (dict.Count == 2 && dict["key1"] == 100000 && dict["key2"] == 10){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "dict should have key1 = 100000, key2 = 10", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToDic_Step_11_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第11.3步
|
|
*/
|
|
string caseName = "testGetTableToDic_Step_11_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
Dictionary<int, int> dict = luaEnv.Global.Get<Dictionary<int, int>> ("tableValue3");
|
|
LOG ("dict.Count = " + dict.Count);
|
|
|
|
if (dict.Count == 0){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "dict should {}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToList_Step_12()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第12步
|
|
*/
|
|
string caseName = "testGetTableToList_Step_12: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
List<string> listVar = luaEnv.Global.Get<List<string>> ("tableValue3");
|
|
LOG ("listVar = " + listToStr(listVar));
|
|
|
|
if (listVar.Count == 8){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "listVar should be {'apple', 'banana', 'orange', 'kiwi', " +
|
|
"'grape', 'lemon', 'strawberry', 'pear'}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToList_Step_13_1_int()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第13.1步
|
|
*/
|
|
string caseName = "testGetTableToList_Step_13_1_int: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
List<int> listVar = luaEnv.Global.Get<List<int>> ("tableValue3");
|
|
LOG ("listVar = " + listToString(listVar));
|
|
|
|
if (listVar.Count == 0){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "listVar should be {}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToList_Step_13_1_string()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第13.1步
|
|
*/
|
|
string caseName = "testGetTableToList_Step_13_1_string: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
List<string> listVar = luaEnv.Global.Get<List<string>> ("tableValue6");
|
|
LOG ("listVar.count = " + listVar.Count);
|
|
|
|
if (listVar.Count == 0){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "listVar should be {}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToList_Step_13_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第13.2步
|
|
*/
|
|
string caseName = "testGetTableToList_Step_13_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
List<string> listVar = luaEnv.Global.Get<List<string>> ("tableValue1");
|
|
LOG ("listVar.count = " + listVar.Count + ", listVar = " + listToStr(listVar));
|
|
|
|
if (listVar.Count == 3){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "listVar should be {'red', 'yellow', 'green''}", out result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetTableToLuaTable_Step_14()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486938,第14, 15步
|
|
*/
|
|
string caseName = "testGetTableToLuaTable_Step_14: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaTable table = luaEnv.Global.Get<LuaTable> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + table.Get<int>("key1"));
|
|
LOG ("tableValue1.key2 = " + table.Get<int>("key2"));
|
|
LOG ("tableValue1.key3 = " + table.Get<bool>("key3"));
|
|
LOG ("tableValue1.1 = " + table[1]);
|
|
LOG ("tableValue1.2 = " + table[2]);
|
|
LOG ("tableValue1.3 = " + table[3]);
|
|
LOG ("tableValue1.sub = " + Convert.ToInt32(table.Get<LuaFunction>("sub").Call (table, 100, 10)[0]));
|
|
|
|
LOG ("tableValue1.tableValueInclude.count = " + table.Get<List<int>>("tableValueInclude").Count);
|
|
LOG ("tableValue1.tableVarInclude.count = " + table.Get<Dictionary<string, int>>("tableVarInclude").Count);
|
|
if (table.Get<int>("key1") == 100000){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "tablevalue1 is error", out result);
|
|
}
|
|
|
|
table ["key1"] = 100;
|
|
LuaTable table2 = luaEnv.Global.Get<LuaTable> ("tableValue1");
|
|
LOG ("tableValue1.key1 = " + table2.Get<int>("key1"));
|
|
if (Convert.ToInt32(table2["key1"]) != 100) {
|
|
updateResult(false, "modify no change.", ref result);
|
|
}
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第1步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncSelfINcreaseDelegate delegate1 = luaEnv.Global.Get<FuncSelfINcreaseDelegate> ("func_self_increase");
|
|
delegate1 ();
|
|
int intValue3 = luaEnv.Global.Get<int> ("intValue3");
|
|
LOG ("intValues = " + intValue3);
|
|
if (intValue3 == 1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "intValue3 + 1 = 1, but is " + intValue3, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_2_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第2.1步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_2_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnMultivaluesDelegate2 delegate1 = luaEnv.Global.Get<FuncReturnMultivaluesDelegate2> ("func_return_multivalues");
|
|
string str;
|
|
tableValue4Class table;
|
|
bool update;
|
|
delegate1(out update, out str, out table);
|
|
|
|
LOG ("str = " + str + ", update = " + update + ", {k1 = " +
|
|
table.k1 + ", k2 = " + table.k2 + "}");
|
|
|
|
if (update == false && str == "false" && table.k1 == 11 && table.k2 == 12){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be false, 'false', {k1=11, k2=12}", out result);
|
|
}
|
|
|
|
FuncSelfINcreaseDelegate delegate2 = luaEnv.Global.Get<FuncSelfINcreaseDelegate> ("func_self_increase");
|
|
delegate2 ();
|
|
// int intValue3 = luaEnv.Global.Get<int> ("intValue3");
|
|
// intValue3 = 3;
|
|
|
|
delegate1(out update, out str, out table);
|
|
LOG ("get again, str = " + str + ", update = " + update + ", {k1 = " +
|
|
table.k1 + ", k2 = " + table.k2 + "}");
|
|
if (update != true || str != "true" || table.k1 != 11 || table.k2 != 12){
|
|
updateResult (false, "function return error, should be true, 'true', {k1=11, k2=12}", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_2_2()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第2.2步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_2_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnMultivaluesDelegate1 delegate1 = luaEnv.Global.Get<FuncReturnMultivaluesDelegate1> ("func_return_multivalues");
|
|
string str;
|
|
tableValue4Class table;
|
|
bool update = delegate1(out str, out table);
|
|
|
|
if (update == false && str == "false" && table.k1 == 11 && table.k2 == 12){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be false, 'false', {k1=11, k2=12}", out result);
|
|
}
|
|
|
|
FuncSelfINcreaseDelegate delegate2 = luaEnv.Global.Get<FuncSelfINcreaseDelegate> ("func_self_increase");
|
|
delegate2 ();
|
|
update = delegate1(out str, out table);
|
|
|
|
LOG ("get again, str = " + str + ", update = " + update + ", {k1 = " +
|
|
table.k1 + ", k2 = " + table.k2 + "}");
|
|
if (update != true || str != "true" || table.k1 != 11 || table.k2 != 12){
|
|
updateResult (false, "function return error, should be true, 'true', {k1=11, k2=12}", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_2_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第2.3步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_2_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnMultivaluesDelegate3 delegate1 = luaEnv.Global.Get<FuncReturnMultivaluesDelegate3> ("func_return_multivalues");
|
|
int a;
|
|
string str;
|
|
tableValue4Class table;
|
|
bool update;
|
|
delegate1(out update, out str, out table, out a);
|
|
|
|
LOG ("str = " + str + ", update = " + update + ", {k1 = " +
|
|
table.k1 + ", k2 = " + table.k2 + "}");
|
|
|
|
if (update == false && str == "false" && table.k1 == 11 && table.k2 == 12 && a == 0){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be false, 'false', {k1=11, k2=12}", out result);
|
|
}
|
|
|
|
FuncReturnMultivaluesDelegate31 delegate2 = luaEnv.Global.Get<FuncReturnMultivaluesDelegate31> ("func_return_multivalues2");
|
|
tableValue4Class noreturn;
|
|
delegate2(out update, out str, out table, out noreturn);
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_2_4()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第2.4步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_2_4: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnMultivaluesDelegate4 delegate1 = luaEnv.Global.Get<FuncReturnMultivaluesDelegate4> ("func_return_multivalues");
|
|
string str;
|
|
bool update = delegate1(out str);
|
|
LOG ("str = " + str + ", update = " + update);
|
|
|
|
if (update == false && str == "false"){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be false, 'false'", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_3()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第3步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
GetFuncIncreaseDelegate delegate1 = luaEnv.Global.Get<GetFuncIncreaseDelegate> ("func_return_func");
|
|
Action e = delegate1();
|
|
e ();
|
|
int intValue3 = luaEnv.Global.Get<int>("intValue3");
|
|
if ( intValue3 == 1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "intValue3 should be 1, but is" + intValue3, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_5()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第5步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_5: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncMultiParamsDelegate delegate1 = luaEnv.Global.Get<FuncMultiParamsDelegate> ("func_multi_params");
|
|
bool a = true;
|
|
int b = 2;
|
|
string c = "ABC";
|
|
int d;
|
|
delegate1(ref a, ref b, ref c, out d);
|
|
LOG ("a = " + a + ", b = " + b + ", c = " + c);
|
|
if (a == true && b == 3 && c == "abc"){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be true, 3, 'abc'", out result);
|
|
}
|
|
|
|
a = false;
|
|
b = 2;
|
|
c = "ABC";
|
|
delegate1(ref a, ref b, ref c, out d);
|
|
if (a != false || b != 2 || c != "ABC") {
|
|
updateResult (false, "function return error, should be false, 2, 'ABC'", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
FuncMultiParams3Delegate2 delegate1;
|
|
|
|
public TestResult testGetFuncToDelegate_Step_5_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第5.1和5.2步, 1个function映射到2个delegate,第2个预期抛异常----->v2.0.5调整为一个function可以映射到多个delegate上
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_5_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
delegate1 = luaEnv.Global.Get<FuncMultiParams3Delegate2> ("func_multi_params3");
|
|
bool a = true;
|
|
int b = 5;
|
|
int sum;
|
|
delegate1(b, out sum, ref a);
|
|
|
|
LOG ("sum = " + sum + ", a = " + a);
|
|
if (a == true && sum == 6 ){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be sum = 6, a = true", out result);
|
|
}
|
|
|
|
try {
|
|
FuncMultiParams3Delegate delegate2 = luaEnv.Global.Get<FuncMultiParams3Delegate> ("func_multi_params3");
|
|
}
|
|
catch (Exception e){
|
|
updateResult(false, "FuncMultiParams3Delegate to same function raise exception.", ref result);
|
|
LOG(e.Message);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_5_1_0()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第5.1和5.2步, 1个function映射到1个delegate
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_5_1_0: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncMultiParams3Delegate2 delegate1 = luaEnv.Global.Get<FuncMultiParams3Delegate2> ("func_multi_params3");
|
|
bool a = true;
|
|
int b = 5;
|
|
int sum;
|
|
delegate1(b, out sum, ref a);
|
|
|
|
LOG ("sum = " + sum + ", a = " + a);
|
|
if (a == true && sum == 6 ){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be sum = 6, a = true", out result);
|
|
}
|
|
|
|
FuncMultiParams3Delegate delegate2 = luaEnv.Global.Get<FuncMultiParams3Delegate> ("func_multi_params4");
|
|
a = false;
|
|
delegate2(out sum, b, ref a);
|
|
|
|
LOG ("FuncMultiParams3Delegate, sum = " + sum + ", a = " + a);
|
|
|
|
if (a != false || sum != 0) {
|
|
updateResult (false, "FuncMultiParams3Delegate, should be sum = 0, a = false", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
/*
|
|
public TestResult testGetFuncToDelegate_Step_5_2()
|
|
{
|
|
|
|
//对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第5步,返回function
|
|
|
|
string caseName = "testGetFuncToDelegate_Step_5_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncMultiParams2Delegate delegate1 = luaEnv.Global.Get<FuncMultiParams2Delegate> ("func_multi_params2");
|
|
bool a = true;
|
|
int b = 5;
|
|
int sum;
|
|
Action d;
|
|
d = delegate1(ref a, b, out sum);
|
|
|
|
LOG ("sum = " + sum + ", a = " + a);
|
|
d();
|
|
int intValue3 = luaEnv.Global.Get<int> ("intValue3");
|
|
|
|
if (a == true && sum == 6 && intValue3 == 1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be sum = 6, a = true, intValue3 = 1", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
*/
|
|
|
|
public TestResult testGetFuncToDelegate_Step_6()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第6步
|
|
*/
|
|
string caseName = "testGetFuncToDelegate_Step_6: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FucnVarParamsDelegate delegate1 = luaEnv.Global.Get<FucnVarParamsDelegate> ("func_varparams");
|
|
int sum = delegate1(6, 4);
|
|
|
|
LOG ("sum = " + sum );
|
|
|
|
if ( sum == 10){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be sum = 10", out result);
|
|
}
|
|
|
|
sum = delegate1(10, 5);
|
|
|
|
LOG ("sum = " + sum );
|
|
if (sum != 15) {
|
|
updateResult (false, "more input params, should be sum = 15", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToLuaFunc_Step_8()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第8步
|
|
*/
|
|
string caseName = "testGetFuncToLuaFunc_Step_8: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaFunction func1 = luaEnv.Global.Get<LuaFunction> ("func_self_increase");
|
|
func1.Call ();
|
|
int intValue3 = luaEnv.Global.Get<int> ("intValue3");
|
|
LOG ("intValues = " + intValue3);
|
|
if (intValue3 == 1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "intValue3 + 1 = 1, but is " + intValue3, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToLuaFunc_Step_9_1()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第9.1步
|
|
*/
|
|
string caseName = "testGetFuncToLuaFunc_Step_9_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaFunction func1 = luaEnv.Global.Get<LuaFunction> ("func_return_multivalues");
|
|
|
|
object[] returns = func1.Call();
|
|
string str = (string)returns[1];
|
|
LuaTable table = (LuaTable)returns[2];
|
|
bool update = (bool)returns[0];
|
|
|
|
LOG ("str = " + str + ", update = " + update + ", {k1 = " +
|
|
table["k1"] + ", k2 = " + table["k2"] + "}");
|
|
|
|
if (update == false && str == "false" && Convert.ToInt32(table["k1"]) == 11 && Convert.ToInt32(table["k2"]) == 12){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be false, 'false', {k1=11, k2=12}", out result);
|
|
}
|
|
|
|
FuncSelfINcreaseDelegate delegate2 = luaEnv.Global.Get<FuncSelfINcreaseDelegate> ("func_self_increase");
|
|
delegate2 ();
|
|
// int intValue3 = luaEnv.Global.Get<int> ("intValue3");
|
|
// intValue3 = 3;
|
|
|
|
returns = func1.Call();
|
|
str = (string)returns[1];
|
|
table = (LuaTable)returns[2];
|
|
update = (bool)returns[0];
|
|
LOG ("get again, str = " + str + ", update = " + update + ", {k1 = " +
|
|
table["k1"] + ", k2 = " + table["k2"] + "}");
|
|
if (update != true || str != "true" || Convert.ToInt32(table["k1"]) != 11 || Convert.ToInt32(table["k2"]) != 12){
|
|
updateResult (false, "function return error, should be true, 'true', {k1=11, k2=12}", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToLuaFunc_Step_10()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第10步
|
|
*/
|
|
string caseName = "testGetFuncToLuaFunc_Step_10: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaFunction func1 = luaEnv.Global.Get<LuaFunction> ("func_return_func");
|
|
LuaFunction e = (LuaFunction)func1.Call ()[0];
|
|
e.Call ();
|
|
|
|
int intValue3 = luaEnv.Global.Get<int>("intValue3");
|
|
if ( intValue3 == 1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "intValue3 should be 1, but is" + intValue3, out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToLuaFunc_Step_12()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第12步
|
|
*/
|
|
string caseName = "testGetFuncToLuaFunc_Step_12: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaFunction func1 = luaEnv.Global.Get<LuaFunction> ("func_multi_params");
|
|
bool a = true;
|
|
int b = 2;
|
|
string c = "ABC";
|
|
int d;
|
|
object[] returns = func1.Call(a, b, c);
|
|
a = (bool)returns [0];
|
|
b = Convert.ToInt32(returns [1]);
|
|
c = (string)returns [2];
|
|
LOG ("a = " + a + ", b = " + b + ", c = " + c);
|
|
if (a == true && b == 3 && c == "abc"){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "function return error, should be true, 3, 'abc'", out result);
|
|
}
|
|
|
|
a = false;
|
|
b = 2;
|
|
c = "ABC";
|
|
returns = func1.Call(a, b, c);
|
|
a = (bool)returns [0];
|
|
b = Convert.ToInt32(returns [1]);
|
|
c = (string)returns [2];
|
|
if (a != false || b != 2 || c != "ABC") {
|
|
updateResult (false, "function return error, should be false, 2, 'ABC'", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
|
|
public TestResult testGetFuncToLuaFunc_Step_13()
|
|
{
|
|
/*
|
|
*对应测试用例http://itest.oa.com/v1/2272/case/home/detail/8486939,第13步
|
|
*/
|
|
string caseName = "testGetFuncToLuaFunc_Step_13: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
LuaFunction func1 = luaEnv.Global.Get<LuaFunction> ("func_varparams");
|
|
object[] returns = func1.Call(6, 4);
|
|
int sum = Convert.ToInt32(returns [0]);
|
|
LOG ("sum = " + sum );
|
|
|
|
if ( sum == 10){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be sum = 10", out result);
|
|
}
|
|
|
|
returns = func1.Call(10, 1, 4);
|
|
sum = Convert.ToInt32(returns [0]);
|
|
LOG ("sum = " + sum );
|
|
|
|
LOG ("sum = " + sum );
|
|
if (sum != 15) {
|
|
updateResult (false, "more input params, should be sum = 15", ref result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
// 补充用例C#以返回值为object的delegate调用Lua函数,
|
|
// (1)而在lua函数侧返回的是long,ulong,都能正确返回。
|
|
// (2)在lua函数返回别的地方创建的userdata,比如io.open返回的文件句柄,在c#那接收到的是null
|
|
public TestResult testGetFuncToDelegate_Step_7_1()
|
|
{
|
|
|
|
string caseName = "testGetFuncToDelegate_Step_7_1: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnObjectDelegate delegate1 = luaEnv.Global.Get<FuncReturnObjectDelegate> ("func_return_object");
|
|
System.Object ret = delegate1(0);
|
|
|
|
LuaTestCommon.Log ("ret= " + ret );
|
|
|
|
if ( ret == null){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be ret = null", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_7_2()
|
|
{
|
|
|
|
string caseName = "testGetFuncToDelegate_Step_7_2: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnObjectDelegate delegate1 = luaEnv.Global.Get<FuncReturnObjectDelegate> ("func_return_object");
|
|
System.Object ret = delegate1(1);
|
|
|
|
LuaTestCommon.Log ("ret= " + ret );
|
|
|
|
if ( Convert.ToInt64(ret)== System.Int64.MaxValue){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be ret = System.Int64.MaxValue", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testGetFuncToDelegate_Step_7_3()
|
|
{
|
|
|
|
string caseName = "testGetFuncToDelegate_Step_7_3: ";
|
|
LOG ("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncReturnObjectDelegate delegate1 = luaEnv.Global.Get<FuncReturnObjectDelegate> ("func_return_object");
|
|
System.Object ret = delegate1(2);
|
|
|
|
LuaTestCommon.Log ("ret= " + ret );
|
|
|
|
//if ( Convert.ToUInt64(ret) == System.UInt64.MaxValue){
|
|
if ( Convert.ToInt64(ret) == -1){
|
|
setResult (true, "pass", out result);
|
|
} else {
|
|
setResult (false, "should be ret = System.UInt64.MaxValue", out result);
|
|
}
|
|
|
|
LOG (caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_int_1()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_int_1: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
int ret = luaEnv.Global.Get<int>("intValueMax");
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == System.Int32.MaxValue)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "(1).intValueMax, is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Set("intValueMax", 12345);
|
|
ret = luaEnv.Global.Get<int>("intValueMax");
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 12345)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2).after set intValueMax=12345, get is " + ret, ref result);
|
|
}
|
|
ret = 0;
|
|
luaEnv.Global.Get("intValueMax", out ret);
|
|
LuaTestCommon.Log("out ret= " + ret);
|
|
if (ret == 12345)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(3).after set intValueMax=12345, get is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_int_2()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_int_2: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
int ret;
|
|
luaEnv.Global.Set(123, 12345);
|
|
ret = luaEnv.Global.Get<int>(123);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 12345)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "(1).after set 123=12345, get is " + ret, out result);
|
|
}
|
|
ret = 0;
|
|
luaEnv.Global.Get(123, out ret);
|
|
LuaTestCommon.Log("out ret= " + ret);
|
|
if (ret == 12345)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2).after set intValueMax=12345, get is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_string_1()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_string_1: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
string ret;
|
|
luaEnv.Global.Set("strValueChin", "中文字符串mix12345587");
|
|
luaEnv.Global.Get("strValueChin", out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == "中文字符串mix12345587")
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_sbyte()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_sbyte: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
sbyte ret;
|
|
luaEnv.Global.Set((sbyte)12, (sbyte)23);
|
|
luaEnv.Global.Get((sbyte)12, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == (sbyte)23)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("sbyteValueMin", out ret);
|
|
if (ret == -128)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get sbyteValueMin is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_byte()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_byte: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
byte ret;
|
|
luaEnv.Global.Set((byte)255, (byte)23);
|
|
luaEnv.Global.Get((byte)255, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == (byte)23)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("byteValueMax", out ret);
|
|
if (ret == (byte)255)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get byteValueMax is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_short()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_short: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
short ret;
|
|
luaEnv.Global.Set((short)256, (short)512);
|
|
luaEnv.Global.Get((short)256, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 512)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("shortValueMax", out ret);
|
|
if (ret == 32767)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get shortValueMax is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_ushort()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_ushort: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
ushort ret;
|
|
luaEnv.Global.Set((ushort)1024, (ushort)32768);
|
|
luaEnv.Global.Get((ushort)1024, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 32768)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("ushortValueMax", out ret);
|
|
if (ret == 65535)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get ushortValueMax is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_long()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_long: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
long ret;
|
|
luaEnv.Global.Set("test", (long)3276800000);
|
|
luaEnv.Global.Get("test", out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 3276800000)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("longValue2", out ret);
|
|
if (ret == -42949672960)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get longValue2 is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_ulong()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_ulong: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
ulong ret;
|
|
luaEnv.Global.Set("test", (ulong)42949672960);
|
|
luaEnv.Global.Get("test", out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 42949672960)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("ulongValueMax", out ret);
|
|
if (ret == 42949672961111)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get ulongValueMax is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_double()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_double: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
double ret;
|
|
luaEnv.Global.Set((double)0.0000001, (double)1.000124587);
|
|
luaEnv.Global.Get((double)0.0000001, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 1.000124587)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("doubleValue2", out ret);
|
|
if (ret == -3.14159265)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get doubleValue2 is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_float()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_float: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
float ret;
|
|
luaEnv.Global.Set((float)3.14, (float)3.15);
|
|
luaEnv.Global.Get((float)3.14, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (System.Math.Abs(ret - 3.15) < 0.000001)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
ret = 0;
|
|
luaEnv.Global.Get("floatValue2", out ret);
|
|
if (System.Math.Abs(ret + 3.14) < 0.000001)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get floatValue2 is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_char()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_char: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
char ret;
|
|
luaEnv.Global.Set('a', 'b');
|
|
luaEnv.Global.Get('a', out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == 'b')
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("charValue", out ret);
|
|
if (ret == 'a')
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get charValue is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_BasicType_decimal()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_decimal: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
decimal key = -32132143143100109.00010001010M;
|
|
decimal value = 0.0000001M;
|
|
decimal ret;
|
|
luaEnv.Global.Set(123.01, value);
|
|
luaEnv.Global.Get(123.01, out ret);
|
|
|
|
LuaTestCommon.Log("ret= " + ret);
|
|
|
|
if (ret == value)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + ret, out result);
|
|
}
|
|
luaEnv.Global.Get("decValue2", out ret);
|
|
if (ret == -12.3111111111M)
|
|
{
|
|
updateResult(true, "pass", ref result);
|
|
}
|
|
else
|
|
{
|
|
updateResult(false, "(2) get decValue2 is " + ret, ref result);
|
|
}
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_struct()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_BasicType_struct: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
TestStruct mystruct = new TestStruct(5, 6); // custom complex value type
|
|
TestStruct mystruct2;
|
|
luaEnv.Global.Set(123, mystruct);
|
|
luaEnv.Global.Get(123, out mystruct2);
|
|
|
|
LuaTestCommon.Log("ret= " + mystruct2);
|
|
|
|
if (mystruct.a == mystruct2.a)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "ret is " + mystruct2.a, out result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_class()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_class: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1ClassPrivate tb1Class = luaEnv.Global.Get<tableValue1ClassPrivate>("tableValue1");
|
|
tableValue1ClassPrivate tb2Class;
|
|
luaEnv.Global.Set(tb1Class.key1, tb1Class);
|
|
luaEnv.Global.Get(tb1Class.key1, out tb2Class);
|
|
LOG("tableValue1.key1 = " + tb2Class.key1 + "; tableValue1.key2 = " + tb2Class.Get());
|
|
LOG("tableValue1.key3 = " + tb2Class.key3);
|
|
|
|
if (tb2Class.key1 == 100000)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb2Class.key1 + "", out result);
|
|
}
|
|
if (tb2Class.Get() != 0)
|
|
{
|
|
updateResult(false, "(2).private key2 should be 0, but int fact is " + tb2Class.Get(), ref result);
|
|
}
|
|
if (tb2Class.key3 != true)
|
|
{
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb2Class.key3, ref result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_interface()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_interface: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
tableValue1InfEqual tb1Inf = luaEnv.Global.Get<tableValue1InfEqual>("tableValue1");
|
|
tb1Inf.key3 = false;
|
|
tableValue1InfEqual tb2Inf;
|
|
LOG("tableValue1.key1 = " + tb1Inf.key1 + "; tableValue1.key2 = " + tb1Inf.key2);
|
|
LOG("tableValue1.key3 = " + tb1Inf.key3);
|
|
LOG("tableValue1.tableVarInclude.ikey1 = " + tb1Inf.tableVarInclude.ikey1 +
|
|
"; tableValue1.tableVarInclude.ikey2 = " + tb1Inf.tableVarInclude.ikey2);
|
|
|
|
luaEnv.Global.Set("tableValue1", tb1Inf);
|
|
luaEnv.Global.Get("tableValue1", out tb2Inf);
|
|
|
|
if (tb2Inf.key1 == 100000)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "(1).tableValue1.key1 should be 100000, but int fact is : " + tb2Inf.key1 + "", out result);
|
|
}
|
|
if (tb2Inf.key2 != 10)
|
|
{
|
|
updateResult(false, "(2).tableValue1.key2 should be 10, but in fact is " + tb2Inf.key2, ref result);
|
|
}
|
|
if (tb2Inf.key3 != false)
|
|
{
|
|
updateResult(false, "(3).tableValue1.key3 should be true, but in fact is " + tb2Inf.key3, ref result);
|
|
}
|
|
if (tb2Inf.tableVarInclude.ikey1 != 10)
|
|
{
|
|
updateResult(false, "(4).tableValue1.tableVarInclude.ikey1 should be 10, but in fact is " + tb2Inf.tableVarInclude.ikey1, ref result);
|
|
}
|
|
if (tb2Inf.tableVarInclude.ikey2 != 12)
|
|
{
|
|
updateResult(false, "(5).tableValue1.tableVarInclude.ikey2 should be 12, but in fact is " + tb2Inf.tableVarInclude.ikey2, ref result);
|
|
}
|
|
int subResult = tb2Inf.sub(1000, 100);
|
|
if (subResult != 900)
|
|
{
|
|
updateResult(false, "(6).sub result is error, 1000 - 100 = " + subResult, ref result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
public TestResult testLuaTableGetSetKeyValue_dict()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_dict: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
Dictionary<string, int> dict = luaEnv.Global.Get<Dictionary<string, int>>("tableValue1");
|
|
Dictionary<string, int> dict2;
|
|
|
|
LOG("tableValue1.key1 = " + dict["key1"] + ", tableValue1.key2 = " + dict["key2"]);
|
|
LOG("dict.Count = " + dict.Count);
|
|
|
|
luaEnv.Global.Set("tableValue1", dict);
|
|
luaEnv.Global.Get("tableValue1", out dict2);
|
|
|
|
LOG("tableValue1.key1 = " + dict2["key1"] + ", tableValue1.key2 = " + dict2["key2"]);
|
|
LOG("dict.Count = " + dict2.Count);
|
|
|
|
if (dict2.Count == 2 && dict2["key1"] == 100000 && dict2["key2"] == 10)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "dict should have key1 = 100000, key2 = 10", out result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_list()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_list: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
List<string> listVar = luaEnv.Global.Get<List<string>>("tableValue3");
|
|
List<string> listVar2;
|
|
LOG("listVar = " + listToStr(listVar));
|
|
listVar[0] = "test";
|
|
luaEnv.Global.Set("tableValue3", listVar);
|
|
luaEnv.Global.Get("tableValue3", out listVar2);
|
|
|
|
if (listVar2.Count == 8)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "listVar2 should be {'test', 'banana', 'orange', 'kiwi', " +
|
|
"'grape', 'lemon', 'strawberry', 'pear'}", out result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
public TestResult testLuaTableGetSetKeyValue_delegate()
|
|
{
|
|
|
|
string caseName = "testLuaTableGetSetKeyValue_delegate: ";
|
|
LOG("*************" + caseName);
|
|
TestResult result;
|
|
|
|
luaEnv.DoString(script);
|
|
|
|
FuncSelfINcreaseDelegate delegate1 = luaEnv.Global.Get<FuncSelfINcreaseDelegate>("func_self_increase");
|
|
FuncSelfINcreaseDelegate delegate2;
|
|
|
|
luaEnv.Global.Set("test_delegate", delegate1);
|
|
luaEnv.Global.Get("test_delegate", out delegate2);
|
|
delegate2();
|
|
int intValue3 = luaEnv.Global.Get<int>("intValue3");
|
|
|
|
LOG("intValues = " + intValue3);
|
|
if (intValue3 == 1)
|
|
{
|
|
setResult(true, "pass", out result);
|
|
}
|
|
else
|
|
{
|
|
setResult(false, "intValue3 + 1 = 1, but is " + intValue3, out result);
|
|
}
|
|
|
|
LOG(caseName + result.ToString());
|
|
return result;
|
|
}
|
|
|
|
}
|
|
|