From 9ecaec865008b764c27aa5476ed7b51d80dbd22b Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Tue, 24 Jan 2012 04:43:09 +1000 Subject: Some test Lua scripts for luaproc and LuaJIT. --- LuaSL/luaprocTest.sh | 14 ++++++++ LuaSL/testLua/luaprocTest0.lua | 39 ++++++++++++++++++++ LuaSL/testLua/luaprocTest1.lua | 41 ++++++++++++++++++++++ LuaSL/testLua/luaprocTest2.lua | 80 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 174 insertions(+) create mode 100755 LuaSL/luaprocTest.sh create mode 100644 LuaSL/testLua/luaprocTest0.lua create mode 100644 LuaSL/testLua/luaprocTest1.lua create mode 100644 LuaSL/testLua/luaprocTest2.lua (limited to 'LuaSL') diff --git a/LuaSL/luaprocTest.sh b/LuaSL/luaprocTest.sh new file mode 100755 index 0000000..98f37f5 --- /dev/null +++ b/LuaSL/luaprocTest.sh @@ -0,0 +1,14 @@ +#! /bin/bash + +cd testLua + +LUA_SOPATH="../../libraries/luaproc/" lua luaprocTest0.lua + +time LUA_SOPATH="../../libraries/luaproc/" lua luaprocTest1.lua + +time LUA_SOPATH="../../libraries/luaproc/" luajit luaprocTest1.lua + +time LUA_SOPATH="../../libraries/luaproc/" lua luaprocTest2.lua + +time LUA_SOPATH="../../libraries/luaproc/" luajit luaprocTest2.lua + diff --git a/LuaSL/testLua/luaprocTest0.lua b/LuaSL/testLua/luaprocTest0.lua new file mode 100644 index 0000000..5868d6f --- /dev/null +++ b/LuaSL/testLua/luaprocTest0.lua @@ -0,0 +1,39 @@ +---------------------------------------------------- +-- +-- Copyright 2008 Alexandre Skyrme, Noemi Rodriguez, Roberto Ierusalimschy +-- +-- Permission is hereby granted, free of charge, to any person obtaining a copy +-- of this software and associated documentation files (the "Software"), to deal +-- in the Software without restriction, including without limitation the rights +-- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +-- copies of the Software, and to permit persons to whom the Software is +-- furnished to do so, subject to the following conditions: +-- +-- The above copyright notice and this permission notice shall be included in +-- all copies or substantial portions of the Software. +-- +-- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +-- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +-- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +-- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +-- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +-- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +-- THE SOFTWARE. +-- +----------------------------------------------------- +-- +-- test.lua +-- +----------------------------------------------------- + +require "luaproc" + +luaproc.createworker() + +luaproc.newproc( [=[ + luaproc.newchannel( "testchannel" ) + luaproc.newproc( "luaproc.send( 'testchannel', 'luaproc is working fine!' )" ) + luaproc.newproc( "print( luaproc.receive( 'testchannel' ))" ) +]=] ) + +luaproc.exit() diff --git a/LuaSL/testLua/luaprocTest1.lua b/LuaSL/testLua/luaprocTest1.lua new file mode 100644 index 0000000..3fe4811 --- /dev/null +++ b/LuaSL/testLua/luaprocTest1.lua @@ -0,0 +1,41 @@ +require "luaproc" + +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end + +result, error_msg = luaproc.newproc( [=[ + + local count = 0 + +-- Hmm, luajit 2 beta 9 crashes at about 8140, lua can go up to 50000 at least. + for i = 1, 8000 do + local channel = "channel" .. i +-- local proc = 'print(luaproc.receive("channel' .. i .. '") .. " " .. ' .. i ..')' + local proc = 'luaproc.receive("' .. channel .. '")' + +-- print(channel .. "\n" .. proc) + result, error_msg = luaproc.newchannel(channel) + if not result then print(error_msg) end + result, error_msg = luaproc.newproc(proc) + if not result then print(error_msg) else count = count + 1 end + end + + print("Started " .. count .. " Lua threads") + + if 0 ~= count then + for i = 1, count do + result, error_msg = luaproc.send("channel" .. i, 'luaproc is working fine! ' .. i) + if not result then print(error_msg .. " " .. i) end + end + end +]=] ) +if not result then print(error_msg .. " for main proc") end + +luaproc.exit() + diff --git a/LuaSL/testLua/luaprocTest2.lua b/LuaSL/testLua/luaprocTest2.lua new file mode 100644 index 0000000..7814e42 --- /dev/null +++ b/LuaSL/testLua/luaprocTest2.lua @@ -0,0 +1,80 @@ +require "luaproc" + +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end +result, error_msg = luaproc.createworker() +if not result then print(error_msg) end + +count = 0 + +for i = 1, 10 do + local proc = [=[ + require "string" + local channel = "channel%d" + local message + + result, error_msg = luaproc.newchannel(channel) + if not result then print(error_msg) end + repeat + message = luaproc.receive(channel) + local x, y = string.find(message, "@") + if not x then + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + x, y = string.find(message, "@") + end + until "quit" == message + ]=] + + proc = string.format(proc, i) +-- print(proc) + result, error_msg = luaproc.newproc(proc) + if not result then print(error_msg) else count = count + 1 end +end + +print("Started " .. count .. " Lua threads.") + +mainProc = [=[ + local count = %d + local messages = 0 + local length = 0 + local message = "This is a test message. 56789 12" + + if 0 ~= count then + for k = 0, 16 do + for j = 0, 199 do + for i = 1, count do + result, error_msg = luaproc.send("channel" .. i, message) + if not result then print(error_msg .. " " .. i) else + messages = messages + 1 + length = length + #message + end + end + end + message = message .. message + end + + for i = 1, count do + result, error_msg = luaproc.send("channel" .. i, "quit") + if not result then print(error_msg .. " " .. i) end + end + end + + print("Sent " .. messages .. " messages totalling " .. length .. " bytes. The largest message was " .. #message .. " bytes.") +]=] + +mainProc = string.format(mainProc, count) +result, error_msg = luaproc.newproc(mainProc) +if not result then print(error_msg) end + +luaproc.exit() + -- cgit v1.1