rufus-lua-win 5.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +69 -0
- data/Rakefile +1 -0
- data/lib/rufus/lua/win.rb +18 -0
- data/lib/rufus/lua/win/version.rb +7 -0
- data/rufus-lua-win.gemspec +23 -0
- data/vendor/lua/bin/liblua.dll +0 -0
- data/vendor/lua/lib/lua/LuaXml.lua +119 -0
- data/vendor/lua/lib/lua/alien.lua +250 -0
- data/vendor/lua/lib/lua/alien/core.dll +0 -0
- data/vendor/lua/lib/lua/alien/struct.dll +0 -0
- data/vendor/lua/lib/lua/base.lua +536 -0
- data/vendor/lua/lib/lua/bin.lua +20 -0
- data/vendor/lua/lib/lua/bit.dll +0 -0
- data/vendor/lua/lib/lua/cdlua.dll +0 -0
- data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
- data/vendor/lua/lib/lua/cdluagl.dll +0 -0
- data/vendor/lua/lib/lua/cdluaim.dll +0 -0
- data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
- data/vendor/lua/lib/lua/copas.lua +543 -0
- data/vendor/lua/lib/lua/coxpcall.lua +57 -0
- data/vendor/lua/lib/lua/date.lua +745 -0
- data/vendor/lua/lib/lua/debug_ext.lua +84 -0
- data/vendor/lua/lib/lua/debug_init.lua +2 -0
- data/vendor/lua/lib/lua/des56.dll +0 -0
- data/vendor/lua/lib/lua/dist/config.lua +109 -0
- data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
- data/vendor/lua/lib/lua/dist/depends.lua +601 -0
- data/vendor/lua/lib/lua/dist/git.lua +307 -0
- data/vendor/lua/lib/lua/dist/init.lua +278 -0
- data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
- data/vendor/lua/lib/lua/dist/package.lua +583 -0
- data/vendor/lua/lib/lua/dist/sys.lua +367 -0
- data/vendor/lua/lib/lua/dist/utils.lua +130 -0
- data/vendor/lua/lib/lua/ex.dll +0 -0
- data/vendor/lua/lib/lua/fstable.lua +116 -0
- data/vendor/lua/lib/lua/getopt.lua +273 -0
- data/vendor/lua/lib/lua/git.lua +5 -0
- data/vendor/lua/lib/lua/git/core.dll +0 -0
- data/vendor/lua/lib/lua/git/objects.lua +121 -0
- data/vendor/lua/lib/lua/git/pack.lua +316 -0
- data/vendor/lua/lib/lua/git/protocol.lua +188 -0
- data/vendor/lua/lib/lua/git/repo.lua +283 -0
- data/vendor/lua/lib/lua/git/util.lua +233 -0
- data/vendor/lua/lib/lua/gzio.dll +0 -0
- data/vendor/lua/lib/lua/gzip.lua +81 -0
- data/vendor/lua/lib/lua/iconv.dll +0 -0
- data/vendor/lua/lib/lua/imlua.dll +0 -0
- data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
- data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process.dll +0 -0
- data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
- data/vendor/lua/lib/lua/io_ext.lua +115 -0
- data/vendor/lua/lib/lua/iuplua.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
- data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
- data/vendor/lua/lib/lua/iupluacd.dll +0 -0
- data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
- data/vendor/lua/lib/lua/iupluagl.dll +0 -0
- data/vendor/lua/lib/lua/iupluaim.dll +0 -0
- data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
- data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
- data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
- data/vendor/lua/lib/lua/lanes.lua +591 -0
- data/vendor/lua/lib/lua/lanes/core.dll +0 -0
- data/vendor/lua/lib/lua/lcs.lua +55 -0
- data/vendor/lua/lib/lua/lemock.lua +659 -0
- data/vendor/lua/lib/lua/lfs.dll +0 -0
- data/vendor/lua/lib/lua/list.lua +375 -0
- data/vendor/lua/lib/lua/logging.lua +189 -0
- data/vendor/lua/lib/lua/logging/console.lua +22 -0
- data/vendor/lua/lib/lua/logging/email.lua +44 -0
- data/vendor/lua/lib/lua/logging/file.lua +55 -0
- data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
- data/vendor/lua/lib/lua/logging/socket.lua +35 -0
- data/vendor/lua/lib/lua/logging/sql.lua +64 -0
- data/vendor/lua/lib/lua/loop/base.lua +68 -0
- data/vendor/lua/lib/lua/loop/cached.lua +312 -0
- data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
- data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
- data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
- data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
- data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
- data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
- data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
- data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
- data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
- data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
- data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
- data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
- data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
- data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
- data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
- data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
- data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
- data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
- data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
- data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
- data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
- data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
- data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
- data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
- data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
- data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
- data/vendor/lua/lib/lua/loop/simple.lua +75 -0
- data/vendor/lua/lib/lua/loop/table.lua +71 -0
- data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
- data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
- data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
- data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
- data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
- data/vendor/lua/lib/lua/lpeg.dll +0 -0
- data/vendor/lua/lib/lua/ltn12.lua +292 -0
- data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
- data/vendor/lua/lib/lua/luacurl.dll +0 -0
- data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
- data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
- data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
- data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
- data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
- data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
- data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
- data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
- data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
- data/vendor/lua/lib/lua/luagl.dll +0 -0
- data/vendor/lua/lib/lua/luaglu.dll +0 -0
- data/vendor/lua/lib/lua/luaidl.lua +113 -0
- data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
- data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
- data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
- data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
- data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
- data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
- data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
- data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
- data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
- data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
- data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
- data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
- data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
- data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
- data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
- data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
- data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
- data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
- data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
- data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
- data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
- data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
- data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
- data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
- data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
- data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
- data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
- data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
- data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
- data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
- data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
- data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
- data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
- data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
- data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
- data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
- data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
- data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
- data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
- data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
- data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
- data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
- data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
- data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
- data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
- data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
- data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
- data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
- data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
- data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
- data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
- data/vendor/lua/lib/lua/luars232.dll +0 -0
- data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
- data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
- data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
- data/vendor/lua/lib/lua/luaunit.lua +601 -0
- data/vendor/lua/lib/lua/lxp.dll +0 -0
- data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
- data/vendor/lua/lib/lua/math_ext.lua +27 -0
- data/vendor/lua/lib/lua/mbox.lua +53 -0
- data/vendor/lua/lib/lua/md5.lua +19 -0
- data/vendor/lua/lib/lua/md5/core.dll +0 -0
- data/vendor/lua/lib/lua/metalua.lua +0 -0
- data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
- data/vendor/lua/lib/lua/metalua/base.lua +104 -0
- data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
- data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
- data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
- data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
- data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
- data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
- data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
- data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
- data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
- data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
- data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
- data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
- data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
- data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
- data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
- data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
- data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
- data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
- data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
- data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
- data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
- data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
- data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
- data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
- data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
- data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
- data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
- data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
- data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
- data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
- data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
- data/vendor/lua/lib/lua/mime.lua +87 -0
- data/vendor/lua/lib/lua/mime/core.dll +0 -0
- data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
- data/vendor/lua/lib/lua/modules.lua +16 -0
- data/vendor/lua/lib/lua/object.lua +56 -0
- data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
- data/vendor/lua/lib/lua/oil/arch.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
- data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
- data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
- data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
- data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
- data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
- data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
- data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
- data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
- data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
- data/vendor/lua/lib/lua/oil/assert.lua +87 -0
- data/vendor/lua/lib/lua/oil/builder.lua +45 -0
- data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
- data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
- data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
- data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
- data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
- data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
- data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
- data/vendor/lua/lib/lua/oil/compat.lua +846 -0
- data/vendor/lua/lib/lua/oil/component.lua +1 -0
- data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
- data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
- data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
- data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
- data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
- data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
- data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
- data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
- data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
- data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
- data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
- data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
- data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
- data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
- data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
- data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
- data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
- data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
- data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
- data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
- data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
- data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
- data/vendor/lua/lib/lua/oil/oo.lua +1 -0
- data/vendor/lua/lib/lua/oil/port.lua +1 -0
- data/vendor/lua/lib/lua/oil/properties.lua +57 -0
- data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
- data/vendor/lua/lib/lua/package_ext.lua +15 -0
- data/vendor/lua/lib/lua/parser.lua +268 -0
- data/vendor/lua/lib/lua/pl/Date.lua +555 -0
- data/vendor/lua/lib/lua/pl/List.lua +613 -0
- data/vendor/lua/lib/lua/pl/Map.lua +113 -0
- data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
- data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
- data/vendor/lua/lib/lua/pl/Set.lua +153 -0
- data/vendor/lua/lib/lua/pl/app.lua +165 -0
- data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
- data/vendor/lua/lib/lua/pl/class.lua +180 -0
- data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
- data/vendor/lua/lib/lua/pl/config.lua +176 -0
- data/vendor/lua/lib/lua/pl/data.lua +606 -0
- data/vendor/lua/lib/lua/pl/dir.lua +475 -0
- data/vendor/lua/lib/lua/pl/file.lua +70 -0
- data/vendor/lua/lib/lua/pl/func.lua +376 -0
- data/vendor/lua/lib/lua/pl/init.lua +68 -0
- data/vendor/lua/lib/lua/pl/input.lua +173 -0
- data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
- data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
- data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
- data/vendor/lua/lib/lua/pl/operator.lua +201 -0
- data/vendor/lua/lib/lua/pl/path.lua +398 -0
- data/vendor/lua/lib/lua/pl/permute.lua +63 -0
- data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
- data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
- data/vendor/lua/lib/lua/pl/seq.lua +551 -0
- data/vendor/lua/lib/lua/pl/sip.lua +344 -0
- data/vendor/lua/lib/lua/pl/strict.lua +70 -0
- data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
- data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
- data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
- data/vendor/lua/lib/lua/pl/template.lua +103 -0
- data/vendor/lua/lib/lua/pl/test.lua +135 -0
- data/vendor/lua/lib/lua/pl/text.lua +243 -0
- data/vendor/lua/lib/lua/pl/utils.lua +550 -0
- data/vendor/lua/lib/lua/pl/xml.lua +689 -0
- data/vendor/lua/lib/lua/profiler.dll +0 -0
- data/vendor/lua/lib/lua/re.lua +248 -0
- data/vendor/lua/lib/lua/rex_onig.dll +0 -0
- data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
- data/vendor/lua/lib/lua/rex_posix.dll +0 -0
- data/vendor/lua/lib/lua/rings.dll +0 -0
- data/vendor/lua/lib/lua/serialize.lua +193 -0
- data/vendor/lua/lib/lua/set.lua +149 -0
- data/vendor/lua/lib/lua/socket.lua +133 -0
- data/vendor/lua/lib/lua/socket/core.dll +0 -0
- data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
- data/vendor/lua/lib/lua/socket/http.lua +350 -0
- data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
- data/vendor/lua/lib/lua/socket/tp.lua +123 -0
- data/vendor/lua/lib/lua/socket/url.lua +297 -0
- data/vendor/lua/lib/lua/ssl.dll +0 -0
- data/vendor/lua/lib/lua/ssl.lua +93 -0
- data/vendor/lua/lib/lua/ssl/https.lua +138 -0
- data/vendor/lua/lib/lua/stable.lua +28 -0
- data/vendor/lua/lib/lua/std.lua +16 -0
- data/vendor/lua/lib/lua/strbuf.lua +32 -0
- data/vendor/lua/lib/lua/strict.lua +45 -0
- data/vendor/lua/lib/lua/string_ext.lua +274 -0
- data/vendor/lua/lib/lua/table_ext.lua +117 -0
- data/vendor/lua/lib/lua/tar.lua +262 -0
- data/vendor/lua/lib/lua/task.dll +0 -0
- data/vendor/lua/lib/lua/tree.lua +81 -0
- data/vendor/lua/lib/lua/unicode.dll +0 -0
- data/vendor/lua/lib/lua/verbose_require.lua +11 -0
- data/vendor/lua/lib/lua/vstruct.lua +86 -0
- data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
- data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
- data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
- data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
- data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
- data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
- data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
- data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
- data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
- data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
- data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
- data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
- data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
- data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
- data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
- data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
- data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
- data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
- data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
- data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
- data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
- data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
- data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
- data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
- data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
- data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
- data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
- data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
- data/vendor/lua/lib/lua/wx.dll +0 -0
- data/vendor/lua/lib/lua/xml.lua +75 -0
- data/vendor/lua/lib/lua/zip.dll +0 -0
- data/vendor/lua/lib/lua/zlib.dll +0 -0
- metadata +529 -0
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
|
|
2
|
+
--- Sandboxed test of build/install of all packages in a repository (unfinished and disabled).
|
|
3
|
+
module("luarocks.validate", package.seeall)
|
|
4
|
+
|
|
5
|
+
local fs = require("luarocks.fs")
|
|
6
|
+
local dir = require("luarocks.dir")
|
|
7
|
+
local path = require("luarocks.path")
|
|
8
|
+
local cfg = require("luarocks.cfg")
|
|
9
|
+
local build = require("luarocks.build")
|
|
10
|
+
local install = require("luarocks.install")
|
|
11
|
+
local util = require("luarocks.util")
|
|
12
|
+
|
|
13
|
+
help_summary = "Sandboxed test of build/install of all packages in a repository."
|
|
14
|
+
|
|
15
|
+
help = [[
|
|
16
|
+
<argument>, if given, is a local repository pathname.
|
|
17
|
+
]]
|
|
18
|
+
|
|
19
|
+
local function save_settings(repo)
|
|
20
|
+
local protocol, path = dir.split_url(repo)
|
|
21
|
+
table.insert(cfg.rocks_servers, 1, protocol.."://"..path)
|
|
22
|
+
return {
|
|
23
|
+
root_dir = cfg.root_dir,
|
|
24
|
+
rocks_dir = cfg.rocks_dir,
|
|
25
|
+
deploy_bin_dir = cfg.deploy_bin_dir,
|
|
26
|
+
deploy_lua_dir = cfg.deploy_lua_dir,
|
|
27
|
+
deploy_lib_dir = cfg.deploy_lib_dir,
|
|
28
|
+
}
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
local function restore_settings(settings)
|
|
32
|
+
cfg.root_dir = settings.root_dir
|
|
33
|
+
cfg.rocks_dir = settings.rocks_dir
|
|
34
|
+
cfg.deploy_bin_dir = settings.deploy_bin_dir
|
|
35
|
+
cfg.deploy_lua_dir = settings.deploy_lua_dir
|
|
36
|
+
cfg.deploy_lib_dir = settings.deploy_lib_dir
|
|
37
|
+
cfg.variables.ROCKS_TREE = settings.rocks_dir
|
|
38
|
+
cfg.variables.SCRIPTS_DIR = settings.deploy_bin_dir
|
|
39
|
+
table.remove(cfg.rocks_servers, 1)
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
local function prepare_sandbox(file)
|
|
43
|
+
local root_dir = fs.make_temp_dir(file):gsub("/+$", "")
|
|
44
|
+
cfg.root_dir = root_dir
|
|
45
|
+
cfg.rocks_dir = path.rocks_dir(root_dir)
|
|
46
|
+
cfg.deploy_bin_dir = path.deploy_bin_dir(root_dir)
|
|
47
|
+
cfg.variables.ROCKS_TREE = cfg.rocks_dir
|
|
48
|
+
cfg.variables.SCRIPTS_DIR = cfg.deploy_bin_dir
|
|
49
|
+
return root_dir
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
local function validate_rockspec(file)
|
|
53
|
+
local ok, err, errcode = build.build_rockspec(file, true)
|
|
54
|
+
if not ok then
|
|
55
|
+
util.printerr(err)
|
|
56
|
+
end
|
|
57
|
+
return ok, err, errcode
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
local function validate_src_rock(file)
|
|
61
|
+
local ok, err, errcode = build.build_rock(file, false)
|
|
62
|
+
if not ok then
|
|
63
|
+
util.printerr(err)
|
|
64
|
+
end
|
|
65
|
+
return ok, err, errcode
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
local function validate_rock(file)
|
|
69
|
+
local ok, err, errcode = install.install_binary_rock(file)
|
|
70
|
+
if not ok then
|
|
71
|
+
util.printerr(err)
|
|
72
|
+
end
|
|
73
|
+
return ok, err, errcode
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
local function validate(repo, flags)
|
|
77
|
+
local results = {
|
|
78
|
+
ok = {}
|
|
79
|
+
}
|
|
80
|
+
local settings = save_settings(repo)
|
|
81
|
+
local sandbox
|
|
82
|
+
if flags["quick"] then
|
|
83
|
+
sandbox = prepare_sandbox("luarocks_validate")
|
|
84
|
+
end
|
|
85
|
+
if not fs.exists(repo) then
|
|
86
|
+
return nil, repo.." is not a local repository."
|
|
87
|
+
end
|
|
88
|
+
for _, file in pairs(fs.list_dir(repo)) do for _=1,1 do
|
|
89
|
+
if file == "manifest" or file == "index.html" then
|
|
90
|
+
break -- continue for
|
|
91
|
+
end
|
|
92
|
+
local pathname = fs.absolute_name(dir.path(repo, file))
|
|
93
|
+
if not flags["quick"] then
|
|
94
|
+
sandbox = prepare_sandbox(file)
|
|
95
|
+
end
|
|
96
|
+
local ok, err, errcode
|
|
97
|
+
util.printout()
|
|
98
|
+
util.printout("Verifying "..pathname)
|
|
99
|
+
if file:match("%.rockspec$") then
|
|
100
|
+
ok, err, errcode = validate_rockspec(pathname)
|
|
101
|
+
elseif file:match("%.src%.rock$") then
|
|
102
|
+
ok, err, errcode = validate_src_rock(pathname)
|
|
103
|
+
elseif file:match("%.rock$") then
|
|
104
|
+
ok, err, errcode = validate_rock(pathname)
|
|
105
|
+
end
|
|
106
|
+
if ok then
|
|
107
|
+
table.insert(results.ok, {file=file} )
|
|
108
|
+
else
|
|
109
|
+
if not errcode then
|
|
110
|
+
errcode = "misc"
|
|
111
|
+
end
|
|
112
|
+
if not results[errcode] then
|
|
113
|
+
results[errcode] = {}
|
|
114
|
+
end
|
|
115
|
+
table.insert(results[errcode], {file=file, err=err} )
|
|
116
|
+
end
|
|
117
|
+
util.run_scheduled_functions()
|
|
118
|
+
if not flags["quick"] then
|
|
119
|
+
fs.delete(sandbox)
|
|
120
|
+
end
|
|
121
|
+
repeat until not fs.pop_dir()
|
|
122
|
+
end end
|
|
123
|
+
if flags["quick"] then
|
|
124
|
+
fs.delete(sandbox)
|
|
125
|
+
end
|
|
126
|
+
restore_settings(settings)
|
|
127
|
+
util.printout()
|
|
128
|
+
util.printout("Results:")
|
|
129
|
+
util.printout("--------")
|
|
130
|
+
util.printout("OK: "..tostring(#results.ok))
|
|
131
|
+
for _, entry in ipairs(results.ok) do
|
|
132
|
+
util.printout(entry.file)
|
|
133
|
+
end
|
|
134
|
+
for errcode, errors in pairs(results) do
|
|
135
|
+
if errcode ~= "ok" then
|
|
136
|
+
util.printout()
|
|
137
|
+
util.printout(errcode.." errors: "..tostring(#errors))
|
|
138
|
+
for _, entry in ipairs(errors) do
|
|
139
|
+
util.printout(entry.file, entry.err)
|
|
140
|
+
end
|
|
141
|
+
end
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
util.printout()
|
|
145
|
+
util.printout("Summary:")
|
|
146
|
+
util.printout("--------")
|
|
147
|
+
local total = 0
|
|
148
|
+
for errcode, errors in pairs(results) do
|
|
149
|
+
util.printout(errcode..": "..tostring(#errors))
|
|
150
|
+
total = total + #errors
|
|
151
|
+
end
|
|
152
|
+
util.printout("Total: "..total)
|
|
153
|
+
return true
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
function run(...)
|
|
157
|
+
local flags, repo = util.parse_flags(...)
|
|
158
|
+
repo = repo or cfg.rocks_dir
|
|
159
|
+
|
|
160
|
+
util.printout("Verifying contents of "..repo)
|
|
161
|
+
|
|
162
|
+
return validate(repo, flags)
|
|
163
|
+
end
|
|
164
|
+
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,601 @@
|
|
|
1
|
+
--[[
|
|
2
|
+
luaunit.lua
|
|
3
|
+
|
|
4
|
+
Description: A unit testing framework
|
|
5
|
+
Homepage: https://github.com/bluebird75/luaunit
|
|
6
|
+
Initial author: Ryu, Gwang (http://www.gpgstudy.com/gpgiki/LuaUnit)
|
|
7
|
+
Lot of improvements by Philippe Fremy <phil@freehackers.org>
|
|
8
|
+
License: BSD License, see LICENSE.txt
|
|
9
|
+
]]--
|
|
10
|
+
|
|
11
|
+
argv = arg
|
|
12
|
+
|
|
13
|
+
--[[ Some people like assertEquals( actual, expected ) and some people prefer
|
|
14
|
+
assertEquals( expected, actual ).
|
|
15
|
+
]]--
|
|
16
|
+
USE_EXPECTED_ACTUAL_IN_ASSERT_EQUALS = true
|
|
17
|
+
|
|
18
|
+
DEFAULT_VERBOSITY = 1
|
|
19
|
+
|
|
20
|
+
function assertError(f, ...)
|
|
21
|
+
-- assert that calling f with the arguments will raise an error
|
|
22
|
+
-- example: assertError( f, 1, 2 ) => f(1,2) should generate an error
|
|
23
|
+
local has_error, error_msg = not pcall( f, ... )
|
|
24
|
+
if has_error then return end
|
|
25
|
+
error( "Expected an error but no error generated", 2 )
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
function mytostring( v )
|
|
29
|
+
if type(v) == 'string' then
|
|
30
|
+
return '"'..v..'"'
|
|
31
|
+
end
|
|
32
|
+
if type(v) == 'table' then
|
|
33
|
+
if v.__class__ then
|
|
34
|
+
return string.gsub( tostring(v), 'table', v.__class__ )
|
|
35
|
+
end
|
|
36
|
+
return tostring(v)
|
|
37
|
+
end
|
|
38
|
+
return tostring(v)
|
|
39
|
+
end
|
|
40
|
+
|
|
41
|
+
function assertEquals(actual, expected)
|
|
42
|
+
-- assert that two values are equal and calls error else
|
|
43
|
+
if actual ~= expected then
|
|
44
|
+
|
|
45
|
+
if not USE_EXPECTED_ACTUAL_IN_ASSERT_EQUALS then
|
|
46
|
+
expected, actual = actual, expected
|
|
47
|
+
end
|
|
48
|
+
|
|
49
|
+
local errorMsg
|
|
50
|
+
if type(expected) == 'string' then
|
|
51
|
+
errorMsg = "\nexpected: "..mytostring(expected).."\n"..
|
|
52
|
+
"actual : "..mytostring(actual).."\n"
|
|
53
|
+
else
|
|
54
|
+
errorMsg = "expected: "..mytostring(expected)..", actual: "..mytostring(actual)
|
|
55
|
+
end
|
|
56
|
+
error( errorMsg, 2 )
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
assert_equals = assertEquals
|
|
61
|
+
assert_error = assertError
|
|
62
|
+
|
|
63
|
+
function __genOrderedIndex( t )
|
|
64
|
+
local orderedIndex = {}
|
|
65
|
+
for key,_ in pairs(t) do
|
|
66
|
+
table.insert( orderedIndex, key )
|
|
67
|
+
end
|
|
68
|
+
table.sort( orderedIndex )
|
|
69
|
+
return orderedIndex
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
function orderedNext(t, state)
|
|
73
|
+
-- Equivalent of the next() function of table iteration, but returns the
|
|
74
|
+
-- keys in the alphabetic order. We use a temporary ordered key table that
|
|
75
|
+
-- is stored in the table being iterated.
|
|
76
|
+
|
|
77
|
+
--print("orderedNext: state = "..tostring(state) )
|
|
78
|
+
local key
|
|
79
|
+
if state == nil then
|
|
80
|
+
-- the first time, generate the index
|
|
81
|
+
t.__orderedIndex = nil
|
|
82
|
+
t.__orderedIndex = __genOrderedIndex( t )
|
|
83
|
+
key = t.__orderedIndex[1]
|
|
84
|
+
return key, t[key]
|
|
85
|
+
end
|
|
86
|
+
-- fetch the next value
|
|
87
|
+
key = nil
|
|
88
|
+
for i = 1,#t.__orderedIndex do
|
|
89
|
+
if t.__orderedIndex[i] == state then
|
|
90
|
+
key = t.__orderedIndex[i+1]
|
|
91
|
+
end
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
if key then
|
|
95
|
+
return key, t[key]
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
-- no more value to return, cleanup
|
|
99
|
+
t.__orderedIndex = nil
|
|
100
|
+
return
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
function orderedPairs(t)
|
|
104
|
+
-- Equivalent of the pairs() function on tables. Allows to iterate
|
|
105
|
+
-- in order
|
|
106
|
+
return orderedNext, t, nil
|
|
107
|
+
end
|
|
108
|
+
|
|
109
|
+
function strsplit(delimiter, text)
|
|
110
|
+
-- Split text into a list consisting of the strings in text,
|
|
111
|
+
-- separated by strings matching delimiter (which may be a pattern).
|
|
112
|
+
-- example: strsplit(",%s*", "Anna, Bob, Charlie,Dolores")
|
|
113
|
+
local list = {}
|
|
114
|
+
local pos = 1
|
|
115
|
+
if string.find("", delimiter, 1) then -- this would result in endless loops
|
|
116
|
+
error("delimiter matches empty string!")
|
|
117
|
+
end
|
|
118
|
+
while 1 do
|
|
119
|
+
local first, last = string.find(text, delimiter, pos)
|
|
120
|
+
if first then -- found?
|
|
121
|
+
table.insert(list, string.sub(text, pos, first-1))
|
|
122
|
+
pos = last+1
|
|
123
|
+
else
|
|
124
|
+
table.insert(list, string.sub(text, pos))
|
|
125
|
+
break
|
|
126
|
+
end
|
|
127
|
+
end
|
|
128
|
+
return list
|
|
129
|
+
end
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
function prefixString( prefix, s )
|
|
133
|
+
local t, s2
|
|
134
|
+
t = strsplit('\n', s)
|
|
135
|
+
s2 = prefix..table.concat(t, '\n'..prefix)
|
|
136
|
+
return s2
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
----------------------------------------------------------------
|
|
140
|
+
-- class TapOutput
|
|
141
|
+
----------------------------------------------------------------
|
|
142
|
+
|
|
143
|
+
TapOutput = { -- class
|
|
144
|
+
__class__ = 'TapOutput',
|
|
145
|
+
runner = nil,
|
|
146
|
+
result = nil,
|
|
147
|
+
}
|
|
148
|
+
TapOutput_MT = { __index = TapOutput }
|
|
149
|
+
|
|
150
|
+
function TapOutput:new()
|
|
151
|
+
local t = {}
|
|
152
|
+
t.verbosity = 0
|
|
153
|
+
setmetatable( t, TapOutput_MT )
|
|
154
|
+
return t
|
|
155
|
+
end
|
|
156
|
+
function TapOutput:startSuite() end
|
|
157
|
+
function TapOutput:startClass(className) end
|
|
158
|
+
function TapOutput:startTest(testName) end
|
|
159
|
+
|
|
160
|
+
function TapOutput:addFailure( errorMsg, stackTrace )
|
|
161
|
+
print(string.format("not ok %d\t%s", self.result.testCount, self.result.currentTestName ))
|
|
162
|
+
if self.verbosity > 0 then
|
|
163
|
+
print( prefixString( ' ', errorMsg ) )
|
|
164
|
+
end
|
|
165
|
+
if self.verbosity > 1 then
|
|
166
|
+
print( prefixString( ' ', stackTrace ) )
|
|
167
|
+
end
|
|
168
|
+
end
|
|
169
|
+
|
|
170
|
+
function TapOutput:endTest(testHasFailure)
|
|
171
|
+
if not self.result.currentTestHasFailure then
|
|
172
|
+
print(string.format("ok %d\t%s", self.result.testCount, self.result.currentTestName ))
|
|
173
|
+
end
|
|
174
|
+
end
|
|
175
|
+
|
|
176
|
+
function TapOutput:endClass() end
|
|
177
|
+
|
|
178
|
+
function TapOutput:endSuite()
|
|
179
|
+
print("1.."..self.result.testCount)
|
|
180
|
+
return self.result.failureCount
|
|
181
|
+
end
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
-- class TapOutput end
|
|
185
|
+
|
|
186
|
+
|
|
187
|
+
----------------------------------------------------------------
|
|
188
|
+
-- class TextOutput
|
|
189
|
+
----------------------------------------------------------------
|
|
190
|
+
|
|
191
|
+
TextOutput = { __class__ = 'TextOutput' }
|
|
192
|
+
TextOutput_MT = { -- class
|
|
193
|
+
__index = TextOutput
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
function TextOutput:new()
|
|
197
|
+
local t = {}
|
|
198
|
+
t.runner = nil
|
|
199
|
+
t.result = nil
|
|
200
|
+
t.errorList ={}
|
|
201
|
+
t.verbosity = 1
|
|
202
|
+
setmetatable( t, TextOutput_MT )
|
|
203
|
+
return t
|
|
204
|
+
end
|
|
205
|
+
|
|
206
|
+
function TextOutput:startSuite()
|
|
207
|
+
end
|
|
208
|
+
|
|
209
|
+
function TextOutput:startClass(className)
|
|
210
|
+
if self.verbosity > 0 then
|
|
211
|
+
print( '>>>>>>>>> '.. self.result.currentClassName )
|
|
212
|
+
end
|
|
213
|
+
end
|
|
214
|
+
|
|
215
|
+
function TextOutput:startTest(testName)
|
|
216
|
+
if self.verbosity > 0 then
|
|
217
|
+
print( ">>> ".. self.result.currentTestName )
|
|
218
|
+
end
|
|
219
|
+
end
|
|
220
|
+
|
|
221
|
+
function TextOutput:addFailure( errorMsg, stackTrace )
|
|
222
|
+
table.insert( self.errorList, { self.result.currentTestName, errorMsg, stackTrace } )
|
|
223
|
+
if self.verbosity == 0 then
|
|
224
|
+
io.stdout:write("F")
|
|
225
|
+
end
|
|
226
|
+
if self.verbosity > 0 then
|
|
227
|
+
print( errorMsg )
|
|
228
|
+
print( 'Failed' )
|
|
229
|
+
end
|
|
230
|
+
end
|
|
231
|
+
|
|
232
|
+
function TextOutput:endTest(testHasFailure)
|
|
233
|
+
if not testHasFailure then
|
|
234
|
+
if self.verbosity > 0 then
|
|
235
|
+
--print ("Ok" )
|
|
236
|
+
else
|
|
237
|
+
io.stdout:write(".")
|
|
238
|
+
end
|
|
239
|
+
end
|
|
240
|
+
end
|
|
241
|
+
|
|
242
|
+
function TextOutput:endClass()
|
|
243
|
+
if self.verbosity > 0 then
|
|
244
|
+
print()
|
|
245
|
+
end
|
|
246
|
+
end
|
|
247
|
+
|
|
248
|
+
function TextOutput:displayOneFailedTest( failure )
|
|
249
|
+
testName, errorMsg, stackTrace = unpack( failure )
|
|
250
|
+
print(">>> "..testName.." failed")
|
|
251
|
+
print( errorMsg )
|
|
252
|
+
if self.verbosity > 1 then
|
|
253
|
+
print( stackTrace )
|
|
254
|
+
end
|
|
255
|
+
end
|
|
256
|
+
|
|
257
|
+
function TextOutput:displayFailedTests()
|
|
258
|
+
if #self.errorList == 0 then return end
|
|
259
|
+
print("Failed tests:")
|
|
260
|
+
print("-------------")
|
|
261
|
+
for i,v in ipairs(self.errorList) do
|
|
262
|
+
self:displayOneFailedTest( v )
|
|
263
|
+
end
|
|
264
|
+
print()
|
|
265
|
+
end
|
|
266
|
+
|
|
267
|
+
function TextOutput:endSuite()
|
|
268
|
+
if self.verbosity == 0 then
|
|
269
|
+
print()
|
|
270
|
+
else
|
|
271
|
+
print("=========================================================")
|
|
272
|
+
end
|
|
273
|
+
self:displayFailedTests()
|
|
274
|
+
local successPercent, successCount
|
|
275
|
+
successCount = self.result.testCount - self.result.failureCount
|
|
276
|
+
if self.result.testCount == 0 then
|
|
277
|
+
successPercent = 100
|
|
278
|
+
else
|
|
279
|
+
successPercent = math.ceil( 100 * successCount / self.result.testCount )
|
|
280
|
+
end
|
|
281
|
+
print( string.format("Success : %d%% - %d / %d",
|
|
282
|
+
successPercent, successCount, self.result.testCount) )
|
|
283
|
+
end
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
-- class TextOutput end
|
|
287
|
+
|
|
288
|
+
|
|
289
|
+
----------------------------------------------------------------
|
|
290
|
+
-- class NilOutput
|
|
291
|
+
----------------------------------------------------------------
|
|
292
|
+
|
|
293
|
+
function nopCallable()
|
|
294
|
+
--print(42)
|
|
295
|
+
return nopCallable
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
NilOutput = {
|
|
299
|
+
__class__ = 'NilOuptut',
|
|
300
|
+
}
|
|
301
|
+
NilOutput_MT = {
|
|
302
|
+
__index = nopCallable,
|
|
303
|
+
}
|
|
304
|
+
function NilOutput:new()
|
|
305
|
+
local t = {}
|
|
306
|
+
t.__class__ = 'NilOutput'
|
|
307
|
+
setmetatable( t, NilOutput_MT )
|
|
308
|
+
return t
|
|
309
|
+
end
|
|
310
|
+
|
|
311
|
+
----------------------------------------------------------------
|
|
312
|
+
-- class LuaUnit
|
|
313
|
+
----------------------------------------------------------------
|
|
314
|
+
|
|
315
|
+
LuaUnit = {
|
|
316
|
+
outputType = TextOutput,
|
|
317
|
+
verbosity = DEFAULT_VERBOSITY,
|
|
318
|
+
__class__ = 'LuaUnit'
|
|
319
|
+
}
|
|
320
|
+
LuaUnit_MT = { __index = LuaUnit }
|
|
321
|
+
|
|
322
|
+
function LuaUnit:new()
|
|
323
|
+
local t = {}
|
|
324
|
+
setmetatable( t, LuaUnit_MT )
|
|
325
|
+
return t
|
|
326
|
+
end
|
|
327
|
+
|
|
328
|
+
-----------------[[ Utility methods ]]---------------------
|
|
329
|
+
|
|
330
|
+
function LuaUnit.isFunction(aObject)
|
|
331
|
+
return 'function' == type(aObject)
|
|
332
|
+
end
|
|
333
|
+
|
|
334
|
+
--------------[[ Output methods ]]-------------------------
|
|
335
|
+
|
|
336
|
+
function LuaUnit:ensureSuiteStarted( )
|
|
337
|
+
if self.result and self.result.suiteStarted then
|
|
338
|
+
return
|
|
339
|
+
end
|
|
340
|
+
self:startSuite()
|
|
341
|
+
end
|
|
342
|
+
|
|
343
|
+
function LuaUnit:startSuite()
|
|
344
|
+
self.result = {}
|
|
345
|
+
self.result.failureCount = 0
|
|
346
|
+
self.result.testCount = 0
|
|
347
|
+
self.result.currentTestName = ""
|
|
348
|
+
self.result.currentClassName = ""
|
|
349
|
+
self.result.currentTestHasFailure = false
|
|
350
|
+
self.result.suiteStarted = true
|
|
351
|
+
self.outputType = self.outputType or TextOutput
|
|
352
|
+
self.output = self.outputType:new()
|
|
353
|
+
self.output.runner = self
|
|
354
|
+
self.output.result = self.result
|
|
355
|
+
self.output.verbosity = self.verbosity
|
|
356
|
+
self.output:startSuite()
|
|
357
|
+
end
|
|
358
|
+
|
|
359
|
+
function LuaUnit:startClass( className )
|
|
360
|
+
self.result.currentClassName = className
|
|
361
|
+
self.output:startClass( className )
|
|
362
|
+
end
|
|
363
|
+
|
|
364
|
+
function LuaUnit:startTest( testName )
|
|
365
|
+
self.result.currentTestName = testName
|
|
366
|
+
self.result.testCount = self.result.testCount + 1
|
|
367
|
+
self.result.currentTestHasFailure = false
|
|
368
|
+
self.output:startTest( testName )
|
|
369
|
+
end
|
|
370
|
+
|
|
371
|
+
function LuaUnit:addFailure( errorMsg, stackTrace )
|
|
372
|
+
if not self.result.currentTestHasFailure then
|
|
373
|
+
self.result.failureCount = self.result.failureCount + 1
|
|
374
|
+
self.result.currentTestHasFailure = true
|
|
375
|
+
end
|
|
376
|
+
self.output:addFailure( errorMsg, stackTrace )
|
|
377
|
+
end
|
|
378
|
+
|
|
379
|
+
function LuaUnit:endTest()
|
|
380
|
+
self.output:endTest( self.result.currentTestHasFailure )
|
|
381
|
+
self.result.currentTestName = ""
|
|
382
|
+
self.result.currentTestHasFailure = false
|
|
383
|
+
end
|
|
384
|
+
|
|
385
|
+
function LuaUnit:endClass()
|
|
386
|
+
self.output:endClass()
|
|
387
|
+
end
|
|
388
|
+
|
|
389
|
+
function LuaUnit:endSuite()
|
|
390
|
+
self.result.suiteStarted = false
|
|
391
|
+
self.output:endSuite()
|
|
392
|
+
end
|
|
393
|
+
|
|
394
|
+
function LuaUnit:setOutputType(outputType)
|
|
395
|
+
-- default to text
|
|
396
|
+
-- tap produces results according to TAP format
|
|
397
|
+
if outputType:upper() == "NIL" then
|
|
398
|
+
self.outputType = NilOutput
|
|
399
|
+
return
|
|
400
|
+
end
|
|
401
|
+
if outputType:upper() == "TAP" then
|
|
402
|
+
self.outputType = TapOutput
|
|
403
|
+
return
|
|
404
|
+
end
|
|
405
|
+
if outputType:upper() == "TEXT" then
|
|
406
|
+
self.outputType = TextOutput
|
|
407
|
+
return
|
|
408
|
+
end
|
|
409
|
+
error( 'No such format: '..outputType)
|
|
410
|
+
end
|
|
411
|
+
|
|
412
|
+
--------------[[ Runner ]]-----------------
|
|
413
|
+
|
|
414
|
+
SPLITTER = '\n>----------<\n'
|
|
415
|
+
|
|
416
|
+
function LuaUnit:protectedCall( classInstance , methodInstance)
|
|
417
|
+
-- if classInstance is nil, this is just a function run
|
|
418
|
+
local function err_handler(e)
|
|
419
|
+
return debug.traceback(e..SPLITTER, 4)
|
|
420
|
+
end
|
|
421
|
+
|
|
422
|
+
local ok=true, errorMsg, stackTrace
|
|
423
|
+
if classInstance then
|
|
424
|
+
-- stupid Lua < 5.2 does not allow xpcall with arguments so let's live with that
|
|
425
|
+
ok, errorMsg = xpcall( function () methodInstance(classInstance) end, err_handler )
|
|
426
|
+
else
|
|
427
|
+
ok, errorMsg = xpcall( function () methodInstance() end, err_handler )
|
|
428
|
+
end
|
|
429
|
+
if not ok then
|
|
430
|
+
t = strsplit( SPLITTER, errorMsg )
|
|
431
|
+
stackTrace = string.sub(t[2],2)
|
|
432
|
+
self:addFailure( t[1], stackTrace )
|
|
433
|
+
end
|
|
434
|
+
|
|
435
|
+
return ok
|
|
436
|
+
end
|
|
437
|
+
|
|
438
|
+
|
|
439
|
+
function LuaUnit:_runTestMethod(className, methodName, classInstance, methodInstance)
|
|
440
|
+
-- When executing a class method, all parameters are set
|
|
441
|
+
-- When executing a test function, className and classInstance are nil
|
|
442
|
+
|
|
443
|
+
if type(methodInstance) ~= 'function' then
|
|
444
|
+
error( tostring(methodName)..'must be a function, not '..type(methodInstance))
|
|
445
|
+
end
|
|
446
|
+
|
|
447
|
+
if className == nil then
|
|
448
|
+
className = '<TestFunction>'
|
|
449
|
+
end
|
|
450
|
+
|
|
451
|
+
if self.lastClassName ~= className then
|
|
452
|
+
if self.lastClassName ~= nil then
|
|
453
|
+
self:endClass()
|
|
454
|
+
end
|
|
455
|
+
self:startClass( className )
|
|
456
|
+
self.lastClassName = className
|
|
457
|
+
end
|
|
458
|
+
|
|
459
|
+
self:startTest(className..':'..methodName)
|
|
460
|
+
|
|
461
|
+
-- run setUp first(if any)
|
|
462
|
+
if classInstance and self.isFunction( classInstance.setUp ) then
|
|
463
|
+
self:protectedCall( classInstance, classInstance.setUp)
|
|
464
|
+
end
|
|
465
|
+
|
|
466
|
+
-- run testMethod()
|
|
467
|
+
if not self.result.currentTestHasFailure then
|
|
468
|
+
self:protectedCall( classInstance, methodInstance)
|
|
469
|
+
end
|
|
470
|
+
|
|
471
|
+
-- lastly, run tearDown(if any)
|
|
472
|
+
if classInstance and self.isFunction(classInstance.tearDown) then
|
|
473
|
+
self:protectedCall( classInstance, classInstance.tearDown)
|
|
474
|
+
end
|
|
475
|
+
|
|
476
|
+
self:endTest()
|
|
477
|
+
end
|
|
478
|
+
|
|
479
|
+
function LuaUnit:runSomeTest( someName, someInstance )
|
|
480
|
+
-- name is mandatory
|
|
481
|
+
-- if instance is not given, it's looked up in the global namespace
|
|
482
|
+
-- name can be a test class, a test function, or a test class + test method
|
|
483
|
+
-- instance can be a test class or a test function
|
|
484
|
+
-- example: runSomeTest( 'TestToto' )
|
|
485
|
+
-- example: runSomeTest( 'TestToto', TestToto )
|
|
486
|
+
-- example: runSomeTest( 'TestToto:testTiti' )
|
|
487
|
+
-- example: runSomeTest( 'TestToto:testTiti', TestToto )
|
|
488
|
+
-- example: runSomeTest( 'testFunction' )
|
|
489
|
+
-- example: runSomeTest( 'testFunction' , testFunction )
|
|
490
|
+
|
|
491
|
+
self:ensureSuiteStarted()
|
|
492
|
+
|
|
493
|
+
local hasMethod, methodName, methodInstance, className, classInstance
|
|
494
|
+
if someName == nil or someName == '' then
|
|
495
|
+
error( 'Name is required!')
|
|
496
|
+
end
|
|
497
|
+
|
|
498
|
+
hasMethod = string.find(someName, ':' )
|
|
499
|
+
|
|
500
|
+
-- name is class + method
|
|
501
|
+
if hasMethod then
|
|
502
|
+
methodName = string.sub(someName, hasMethod+1)
|
|
503
|
+
className = string.sub(someName,1,hasMethod-1)
|
|
504
|
+
classInstance = someInstance
|
|
505
|
+
|
|
506
|
+
classInstance = classInstance or _G[className]
|
|
507
|
+
if classInstance == nil then
|
|
508
|
+
error( "No such class: "..className )
|
|
509
|
+
end
|
|
510
|
+
|
|
511
|
+
if type(classInstance) ~= 'table' then
|
|
512
|
+
error( 'Instance must be a table')
|
|
513
|
+
end
|
|
514
|
+
|
|
515
|
+
methodInstance = classInstance[methodName]
|
|
516
|
+
if methodInstance == nil then
|
|
517
|
+
error( "Could not find method in class "..tostring(className).." for method "..tostring(methodName) )
|
|
518
|
+
end
|
|
519
|
+
|
|
520
|
+
self:_runTestMethod( className, methodName, classInstance, methodInstance )
|
|
521
|
+
return
|
|
522
|
+
end
|
|
523
|
+
|
|
524
|
+
if someInstance == nil then
|
|
525
|
+
someInstance = _G[someName]
|
|
526
|
+
if not someInstance then
|
|
527
|
+
error( "No such variable: "..someName )
|
|
528
|
+
end
|
|
529
|
+
end
|
|
530
|
+
|
|
531
|
+
if (type(someInstance) ~= 'table' and type(someInstance) ~= 'function') then
|
|
532
|
+
error( 'Instance must be function or table')
|
|
533
|
+
end
|
|
534
|
+
|
|
535
|
+
-- name is either a function or a class
|
|
536
|
+
if type(someInstance) == 'table' then
|
|
537
|
+
-- run all test methods of the class
|
|
538
|
+
className = someName
|
|
539
|
+
classInstance = someInstance
|
|
540
|
+
|
|
541
|
+
for methodName, methodInstance in orderedPairs(classInstance) do
|
|
542
|
+
if LuaUnit.isFunction(methodInstance) and string.sub(methodName, 1, 4) == "test" then
|
|
543
|
+
self:_runTestMethod( className, methodName, classInstance, methodInstance )
|
|
544
|
+
end
|
|
545
|
+
end
|
|
546
|
+
return
|
|
547
|
+
end
|
|
548
|
+
|
|
549
|
+
if type(someInstance) == 'function' then
|
|
550
|
+
self:_runTestMethod( nil, someName, nil, someInstance )
|
|
551
|
+
return
|
|
552
|
+
end
|
|
553
|
+
|
|
554
|
+
error( 'Should never be reached...')
|
|
555
|
+
|
|
556
|
+
end
|
|
557
|
+
|
|
558
|
+
function LuaUnit:run(...)
|
|
559
|
+
-- Run some specific test classes.
|
|
560
|
+
-- If no arguments are passed, run the class names specified on the
|
|
561
|
+
-- command line. If no class name is specified on the command line
|
|
562
|
+
-- run all classes whose name starts with 'Test'
|
|
563
|
+
--
|
|
564
|
+
-- If arguments are passed, they must be strings of the class names
|
|
565
|
+
-- that you want to run
|
|
566
|
+
local runner = self:new()
|
|
567
|
+
return runner:runSuite(...)
|
|
568
|
+
end
|
|
569
|
+
|
|
570
|
+
function LuaUnit:runSuite(...)
|
|
571
|
+
self:startSuite()
|
|
572
|
+
|
|
573
|
+
args={...};
|
|
574
|
+
if #args == 0 then
|
|
575
|
+
args = argv
|
|
576
|
+
end
|
|
577
|
+
|
|
578
|
+
if #args == 0 then
|
|
579
|
+
-- create the list if classes to run now ! If not, you can
|
|
580
|
+
-- not iterate over _G while modifying it.
|
|
581
|
+
args = {}
|
|
582
|
+
for key, val in pairs(_G) do
|
|
583
|
+
if string.sub(key,1,4) == 'Test' then
|
|
584
|
+
table.insert( args, key )
|
|
585
|
+
end
|
|
586
|
+
end
|
|
587
|
+
table.sort( args )
|
|
588
|
+
end
|
|
589
|
+
|
|
590
|
+
for i,testName in ipairs( args ) do
|
|
591
|
+
self:runSomeTest( testName )
|
|
592
|
+
end
|
|
593
|
+
|
|
594
|
+
if self.lastClassName ~= nil then
|
|
595
|
+
self:endClass()
|
|
596
|
+
end
|
|
597
|
+
self:endSuite()
|
|
598
|
+
return self.result.failureCount
|
|
599
|
+
end
|
|
600
|
+
-- class LuaUnit
|
|
601
|
+
|