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.
Files changed (459) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE.txt +22 -0
  5. data/README.md +69 -0
  6. data/Rakefile +1 -0
  7. data/lib/rufus/lua/win.rb +18 -0
  8. data/lib/rufus/lua/win/version.rb +7 -0
  9. data/rufus-lua-win.gemspec +23 -0
  10. data/vendor/lua/bin/liblua.dll +0 -0
  11. data/vendor/lua/lib/lua/LuaXml.lua +119 -0
  12. data/vendor/lua/lib/lua/alien.lua +250 -0
  13. data/vendor/lua/lib/lua/alien/core.dll +0 -0
  14. data/vendor/lua/lib/lua/alien/struct.dll +0 -0
  15. data/vendor/lua/lib/lua/base.lua +536 -0
  16. data/vendor/lua/lib/lua/bin.lua +20 -0
  17. data/vendor/lua/lib/lua/bit.dll +0 -0
  18. data/vendor/lua/lib/lua/cdlua.dll +0 -0
  19. data/vendor/lua/lib/lua/cdluacontextplus.dll +0 -0
  20. data/vendor/lua/lib/lua/cdluagl.dll +0 -0
  21. data/vendor/lua/lib/lua/cdluaim.dll +0 -0
  22. data/vendor/lua/lib/lua/cdluapdf.dll +0 -0
  23. data/vendor/lua/lib/lua/copas.lua +543 -0
  24. data/vendor/lua/lib/lua/coxpcall.lua +57 -0
  25. data/vendor/lua/lib/lua/date.lua +745 -0
  26. data/vendor/lua/lib/lua/debug_ext.lua +84 -0
  27. data/vendor/lua/lib/lua/debug_init.lua +2 -0
  28. data/vendor/lua/lib/lua/des56.dll +0 -0
  29. data/vendor/lua/lib/lua/dist/config.lua +109 -0
  30. data/vendor/lua/lib/lua/dist/constraints.lua +271 -0
  31. data/vendor/lua/lib/lua/dist/depends.lua +601 -0
  32. data/vendor/lua/lib/lua/dist/git.lua +307 -0
  33. data/vendor/lua/lib/lua/dist/init.lua +278 -0
  34. data/vendor/lua/lib/lua/dist/manifest.lua +225 -0
  35. data/vendor/lua/lib/lua/dist/package.lua +583 -0
  36. data/vendor/lua/lib/lua/dist/sys.lua +367 -0
  37. data/vendor/lua/lib/lua/dist/utils.lua +130 -0
  38. data/vendor/lua/lib/lua/ex.dll +0 -0
  39. data/vendor/lua/lib/lua/fstable.lua +116 -0
  40. data/vendor/lua/lib/lua/getopt.lua +273 -0
  41. data/vendor/lua/lib/lua/git.lua +5 -0
  42. data/vendor/lua/lib/lua/git/core.dll +0 -0
  43. data/vendor/lua/lib/lua/git/objects.lua +121 -0
  44. data/vendor/lua/lib/lua/git/pack.lua +316 -0
  45. data/vendor/lua/lib/lua/git/protocol.lua +188 -0
  46. data/vendor/lua/lib/lua/git/repo.lua +283 -0
  47. data/vendor/lua/lib/lua/git/util.lua +233 -0
  48. data/vendor/lua/lib/lua/gzio.dll +0 -0
  49. data/vendor/lua/lib/lua/gzip.lua +81 -0
  50. data/vendor/lua/lib/lua/iconv.dll +0 -0
  51. data/vendor/lua/lib/lua/imlua.dll +0 -0
  52. data/vendor/lua/lib/lua/imlua_fftw.dll +0 -0
  53. data/vendor/lua/lib/lua/imlua_jp2.dll +0 -0
  54. data/vendor/lua/lib/lua/imlua_process.dll +0 -0
  55. data/vendor/lua/lib/lua/imlua_process_omp.dll +0 -0
  56. data/vendor/lua/lib/lua/io_ext.lua +115 -0
  57. data/vendor/lua/lib/lua/iuplua.dll +0 -0
  58. data/vendor/lua/lib/lua/iuplua_mglplot.dll +0 -0
  59. data/vendor/lua/lib/lua/iuplua_pplot.dll +0 -0
  60. data/vendor/lua/lib/lua/iupluacd.dll +0 -0
  61. data/vendor/lua/lib/lua/iupluacontrols.dll +0 -0
  62. data/vendor/lua/lib/lua/iupluagl.dll +0 -0
  63. data/vendor/lua/lib/lua/iupluaim.dll +0 -0
  64. data/vendor/lua/lib/lua/iupluaimglib.dll +0 -0
  65. data/vendor/lua/lib/lua/iupluatuio.dll +0 -0
  66. data/vendor/lua/lib/lua/lanes-keeper.lua +302 -0
  67. data/vendor/lua/lib/lua/lanes.lua +591 -0
  68. data/vendor/lua/lib/lua/lanes/core.dll +0 -0
  69. data/vendor/lua/lib/lua/lcs.lua +55 -0
  70. data/vendor/lua/lib/lua/lemock.lua +659 -0
  71. data/vendor/lua/lib/lua/lfs.dll +0 -0
  72. data/vendor/lua/lib/lua/list.lua +375 -0
  73. data/vendor/lua/lib/lua/logging.lua +189 -0
  74. data/vendor/lua/lib/lua/logging/console.lua +22 -0
  75. data/vendor/lua/lib/lua/logging/email.lua +44 -0
  76. data/vendor/lua/lib/lua/logging/file.lua +55 -0
  77. data/vendor/lua/lib/lua/logging/rolling_file.lua +81 -0
  78. data/vendor/lua/lib/lua/logging/socket.lua +35 -0
  79. data/vendor/lua/lib/lua/logging/sql.lua +64 -0
  80. data/vendor/lua/lib/lua/loop/base.lua +68 -0
  81. data/vendor/lua/lib/lua/loop/cached.lua +312 -0
  82. data/vendor/lua/lib/lua/loop/collection/MapWithArrayOfKeys.lua +64 -0
  83. data/vendor/lua/lib/lua/loop/collection/ObjectCache.lua +39 -0
  84. data/vendor/lua/lib/lua/loop/collection/OrderedSet.lua +164 -0
  85. data/vendor/lua/lib/lua/loop/collection/PriorityQueue.lua +86 -0
  86. data/vendor/lua/lib/lua/loop/collection/UnorderedArray.lua +32 -0
  87. data/vendor/lua/lib/lua/loop/collection/UnorderedArraySet.lua +56 -0
  88. data/vendor/lua/lib/lua/loop/compiler/Arguments.lua +108 -0
  89. data/vendor/lua/lib/lua/loop/compiler/Conditional.lua +50 -0
  90. data/vendor/lua/lib/lua/loop/compiler/Expression.lua +215 -0
  91. data/vendor/lua/lib/lua/loop/component/base.lua +221 -0
  92. data/vendor/lua/lib/lua/loop/component/contained.lua +71 -0
  93. data/vendor/lua/lib/lua/loop/component/dynamic.lua +223 -0
  94. data/vendor/lua/lib/lua/loop/component/intercepted.lua +354 -0
  95. data/vendor/lua/lib/lua/loop/component/wrapped.lua +195 -0
  96. data/vendor/lua/lib/lua/loop/debug/Inspector.lua +521 -0
  97. data/vendor/lua/lib/lua/loop/debug/Matcher.lua +192 -0
  98. data/vendor/lua/lib/lua/loop/debug/Verbose.lua +266 -0
  99. data/vendor/lua/lib/lua/loop/debug/Viewer.lua +200 -0
  100. data/vendor/lua/lib/lua/loop/multiple.lua +105 -0
  101. data/vendor/lua/lib/lua/loop/object/Exception.lua +57 -0
  102. data/vendor/lua/lib/lua/loop/object/Publisher.lua +43 -0
  103. data/vendor/lua/lib/lua/loop/object/Wrapper.lua +39 -0
  104. data/vendor/lua/lib/lua/loop/scoped.lua +585 -0
  105. data/vendor/lua/lib/lua/loop/serial/FileStream.lua +48 -0
  106. data/vendor/lua/lib/lua/loop/serial/Serializer.lua +291 -0
  107. data/vendor/lua/lib/lua/loop/serial/SocketStream.lua +51 -0
  108. data/vendor/lua/lib/lua/loop/serial/StringStream.lua +47 -0
  109. data/vendor/lua/lib/lua/loop/simple.lua +75 -0
  110. data/vendor/lua/lib/lua/loop/table.lua +71 -0
  111. data/vendor/lua/lib/lua/loop/thread/CoSocket.lua +416 -0
  112. data/vendor/lua/lib/lua/loop/thread/IOScheduler.lua +170 -0
  113. data/vendor/lua/lib/lua/loop/thread/Scheduler.lua +327 -0
  114. data/vendor/lua/lib/lua/loop/thread/SocketScheduler.lua +88 -0
  115. data/vendor/lua/lib/lua/loop/thread/Timer.lua +54 -0
  116. data/vendor/lua/lib/lua/lpeg.dll +0 -0
  117. data/vendor/lua/lib/lua/ltn12.lua +292 -0
  118. data/vendor/lua/lib/lua/luaXML_lib.dll +0 -0
  119. data/vendor/lua/lib/lua/luacurl.dll +0 -0
  120. data/vendor/lua/lib/lua/luadoc/config.lua +34 -0
  121. data/vendor/lua/lib/lua/luadoc/doclet/debug.lua +46 -0
  122. data/vendor/lua/lib/lua/luadoc/doclet/formatter.lua +84 -0
  123. data/vendor/lua/lib/lua/luadoc/doclet/html.lua +289 -0
  124. data/vendor/lua/lib/lua/luadoc/doclet/html/file.lp +113 -0
  125. data/vendor/lua/lib/lua/luadoc/doclet/html/function.lp +64 -0
  126. data/vendor/lua/lib/lua/luadoc/doclet/html/index.lp +70 -0
  127. data/vendor/lua/lib/lua/luadoc/doclet/html/luadoc.css +286 -0
  128. data/vendor/lua/lib/lua/luadoc/doclet/html/menu.lp +55 -0
  129. data/vendor/lua/lib/lua/luadoc/doclet/html/module.lp +109 -0
  130. data/vendor/lua/lib/lua/luadoc/doclet/html/table.lp +15 -0
  131. data/vendor/lua/lib/lua/luadoc/doclet/raw.lua +12 -0
  132. data/vendor/lua/lib/lua/luadoc/init.lua +58 -0
  133. data/vendor/lua/lib/lua/luadoc/lp.lua +130 -0
  134. data/vendor/lua/lib/lua/luadoc/taglet/standard.lua +495 -0
  135. data/vendor/lua/lib/lua/luadoc/taglet/standard/tags.lua +171 -0
  136. data/vendor/lua/lib/lua/luadoc/util.lua +233 -0
  137. data/vendor/lua/lib/lua/luagl.dll +0 -0
  138. data/vendor/lua/lib/lua/luaglu.dll +0 -0
  139. data/vendor/lua/lib/lua/luaidl.lua +113 -0
  140. data/vendor/lua/lib/lua/luaidl/lex.lua +793 -0
  141. data/vendor/lua/lib/lua/luaidl/pre.lua +149 -0
  142. data/vendor/lua/lib/lua/luaidl/sin.lua +3631 -0
  143. data/vendor/lua/lib/lua/luarocks/add.lua +108 -0
  144. data/vendor/lua/lib/lua/luarocks/admin_remove.lua +87 -0
  145. data/vendor/lua/lib/lua/luarocks/build.lua +330 -0
  146. data/vendor/lua/lib/lua/luarocks/build/builtin.lua +253 -0
  147. data/vendor/lua/lib/lua/luarocks/build/cmake.lua +54 -0
  148. data/vendor/lua/lib/lua/luarocks/build/command.lua +32 -0
  149. data/vendor/lua/lib/lua/luarocks/build/make.lua +92 -0
  150. data/vendor/lua/lib/lua/luarocks/cache.lua +85 -0
  151. data/vendor/lua/lib/lua/luarocks/cfg.lua +449 -0
  152. data/vendor/lua/lib/lua/luarocks/command_line.lua +163 -0
  153. data/vendor/lua/lib/lua/luarocks/deps.lua +654 -0
  154. data/vendor/lua/lib/lua/luarocks/dir.lua +69 -0
  155. data/vendor/lua/lib/lua/luarocks/download.lua +90 -0
  156. data/vendor/lua/lib/lua/luarocks/fetch.lua +321 -0
  157. data/vendor/lua/lib/lua/luarocks/fetch/cvs.lua +44 -0
  158. data/vendor/lua/lib/lua/luarocks/fetch/git.lua +81 -0
  159. data/vendor/lua/lib/lua/luarocks/fetch/git_file.lua +17 -0
  160. data/vendor/lua/lib/lua/luarocks/fetch/hg.lua +54 -0
  161. data/vendor/lua/lib/lua/luarocks/fetch/sscm.lua +42 -0
  162. data/vendor/lua/lib/lua/luarocks/fetch/svn.lua +53 -0
  163. data/vendor/lua/lib/lua/luarocks/fs.lua +40 -0
  164. data/vendor/lua/lib/lua/luarocks/fs/lua.lua +676 -0
  165. data/vendor/lua/lib/lua/luarocks/fs/unix.lua +88 -0
  166. data/vendor/lua/lib/lua/luarocks/fs/unix/tools.lua +325 -0
  167. data/vendor/lua/lib/lua/luarocks/fs/win32.lua +107 -0
  168. data/vendor/lua/lib/lua/luarocks/fs/win32/tools.lua +334 -0
  169. data/vendor/lua/lib/lua/luarocks/help.lua +101 -0
  170. data/vendor/lua/lib/lua/luarocks/index.lua +172 -0
  171. data/vendor/lua/lib/lua/luarocks/install.lua +151 -0
  172. data/vendor/lua/lib/lua/luarocks/list.lua +35 -0
  173. data/vendor/lua/lib/lua/luarocks/loader.lua +228 -0
  174. data/vendor/lua/lib/lua/luarocks/make.lua +71 -0
  175. data/vendor/lua/lib/lua/luarocks/make_manifest.lua +34 -0
  176. data/vendor/lua/lib/lua/luarocks/manif.lua +360 -0
  177. data/vendor/lua/lib/lua/luarocks/manif_core.lua +75 -0
  178. data/vendor/lua/lib/lua/luarocks/new_version.lua +141 -0
  179. data/vendor/lua/lib/lua/luarocks/pack.lua +205 -0
  180. data/vendor/lua/lib/lua/luarocks/path.lua +315 -0
  181. data/vendor/lua/lib/lua/luarocks/persist.lua +173 -0
  182. data/vendor/lua/lib/lua/luarocks/refresh_cache.lua +30 -0
  183. data/vendor/lua/lib/lua/luarocks/remove.lua +135 -0
  184. data/vendor/lua/lib/lua/luarocks/rep.lua +313 -0
  185. data/vendor/lua/lib/lua/luarocks/require.lua +6 -0
  186. data/vendor/lua/lib/lua/luarocks/search.lua +399 -0
  187. data/vendor/lua/lib/lua/luarocks/show.lua +138 -0
  188. data/vendor/lua/lib/lua/luarocks/site_config.lua +23 -0
  189. data/vendor/lua/lib/lua/luarocks/tools/patch.lua +712 -0
  190. data/vendor/lua/lib/lua/luarocks/tools/tar.lua +144 -0
  191. data/vendor/lua/lib/lua/luarocks/tools/zip.lua +245 -0
  192. data/vendor/lua/lib/lua/luarocks/type_check.lua +267 -0
  193. data/vendor/lua/lib/lua/luarocks/unpack.lua +151 -0
  194. data/vendor/lua/lib/lua/luarocks/util.lua +420 -0
  195. data/vendor/lua/lib/lua/luarocks/validate.lua +164 -0
  196. data/vendor/lua/lib/lua/luars232.dll +0 -0
  197. data/vendor/lua/lib/lua/luasql/mysql.dll +0 -0
  198. data/vendor/lua/lib/lua/luasql/postgres.dll +0 -0
  199. data/vendor/lua/lib/lua/luasql/sqlite3.dll +0 -0
  200. data/vendor/lua/lib/lua/luaunit.lua +601 -0
  201. data/vendor/lua/lib/lua/lxp.dll +0 -0
  202. data/vendor/lua/lib/lua/lxp/lom.lua +60 -0
  203. data/vendor/lua/lib/lua/math_ext.lua +27 -0
  204. data/vendor/lua/lib/lua/mbox.lua +53 -0
  205. data/vendor/lua/lib/lua/md5.lua +19 -0
  206. data/vendor/lua/lib/lua/md5/core.dll +0 -0
  207. data/vendor/lua/lib/lua/metalua.lua +0 -0
  208. data/vendor/lua/lib/lua/metalua/ast_to_string.mlua +553 -0
  209. data/vendor/lua/lib/lua/metalua/base.lua +104 -0
  210. data/vendor/lua/lib/lua/metalua/bytecode.lua +0 -0
  211. data/vendor/lua/lib/lua/metalua/clopts.mlua +204 -0
  212. data/vendor/lua/lib/lua/metalua/compiler.lua +3 -0
  213. data/vendor/lua/lib/lua/metalua/dollar.mlua +24 -0
  214. data/vendor/lua/lib/lua/metalua/extension/H-runtime.mlua +216 -0
  215. data/vendor/lua/lib/lua/metalua/extension/H.mlua +22 -0
  216. data/vendor/lua/lib/lua/metalua/extension/anaphoric.mlua +54 -0
  217. data/vendor/lua/lib/lua/metalua/extension/clist.mlua +149 -0
  218. data/vendor/lua/lib/lua/metalua/extension/continue.mlua +53 -0
  219. data/vendor/lua/lib/lua/metalua/extension/localin.mlua +2 -0
  220. data/vendor/lua/lib/lua/metalua/extension/log.mlua +39 -0
  221. data/vendor/lua/lib/lua/metalua/extension/match.mlua +374 -0
  222. data/vendor/lua/lib/lua/metalua/extension/ternary.mlua +10 -0
  223. data/vendor/lua/lib/lua/metalua/extension/trycatch.mlua +189 -0
  224. data/vendor/lua/lib/lua/metalua/extension/types-runtime.mlua +159 -0
  225. data/vendor/lua/lib/lua/metalua/extension/types.mlua +352 -0
  226. data/vendor/lua/lib/lua/metalua/extension/withdo.mlua +30 -0
  227. data/vendor/lua/lib/lua/metalua/extension/xglobal-runtime.lua +41 -0
  228. data/vendor/lua/lib/lua/metalua/extension/xglobal.mlua +20 -0
  229. data/vendor/lua/lib/lua/metalua/extension/xloop.mlua +100 -0
  230. data/vendor/lua/lib/lua/metalua/extension/xmatch.mlua +216 -0
  231. data/vendor/lua/lib/lua/metalua/metaloop.mlua +76 -0
  232. data/vendor/lua/lib/lua/metalua/mlc.lua +0 -0
  233. data/vendor/lua/lib/lua/metalua/mlc_xcall.lua +119 -0
  234. data/vendor/lua/lib/lua/metalua/mlp.lua +0 -0
  235. data/vendor/lua/lib/lua/metalua/package2.lua +101 -0
  236. data/vendor/lua/lib/lua/metalua/runtime.lua +3 -0
  237. data/vendor/lua/lib/lua/metalua/string2.lua +44 -0
  238. data/vendor/lua/lib/lua/metalua/table2.lua +372 -0
  239. data/vendor/lua/lib/lua/metalua/walk.mlua +304 -0
  240. data/vendor/lua/lib/lua/metalua/walk/bindings.mlua +41 -0
  241. data/vendor/lua/lib/lua/metalua/walk/id.mlua +186 -0
  242. data/vendor/lua/lib/lua/metalua/walk/scope.lua +54 -0
  243. data/vendor/lua/lib/lua/mime.lua +87 -0
  244. data/vendor/lua/lib/lua/mime/core.dll +0 -0
  245. data/vendor/lua/lib/lua/mobdebug.lua +1484 -0
  246. data/vendor/lua/lib/lua/modules.lua +16 -0
  247. data/vendor/lua/lib/lua/object.lua +56 -0
  248. data/vendor/lua/lib/lua/oil/Exception.lua +26 -0
  249. data/vendor/lua/lib/lua/oil/arch.lua +27 -0
  250. data/vendor/lua/lib/lua/oil/arch/basic/client.lua +29 -0
  251. data/vendor/lua/lib/lua/oil/arch/basic/common.lua +13 -0
  252. data/vendor/lua/lib/lua/oil/arch/basic/server.lua +27 -0
  253. data/vendor/lua/lib/lua/oil/arch/cooperative/common.lua +10 -0
  254. data/vendor/lua/lib/lua/oil/arch/cooperative/server.lua +16 -0
  255. data/vendor/lua/lib/lua/oil/arch/corba/client.lua +39 -0
  256. data/vendor/lua/lib/lua/oil/arch/corba/common.lua +58 -0
  257. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/client.lua +9 -0
  258. data/vendor/lua/lib/lua/oil/arch/corba/intercepted/server.lua +9 -0
  259. data/vendor/lua/lib/lua/oil/arch/corba/server.lua +35 -0
  260. data/vendor/lua/lib/lua/oil/arch/ludo/byref.lua +18 -0
  261. data/vendor/lua/lib/lua/oil/arch/ludo/client.lua +19 -0
  262. data/vendor/lua/lib/lua/oil/arch/ludo/common.lua +18 -0
  263. data/vendor/lua/lib/lua/oil/arch/ludo/server.lua +19 -0
  264. data/vendor/lua/lib/lua/oil/arch/typed/client.lua +27 -0
  265. data/vendor/lua/lib/lua/oil/arch/typed/common.lua +9 -0
  266. data/vendor/lua/lib/lua/oil/arch/typed/server.lua +18 -0
  267. data/vendor/lua/lib/lua/oil/assert.lua +87 -0
  268. data/vendor/lua/lib/lua/oil/builder.lua +45 -0
  269. data/vendor/lua/lib/lua/oil/builder/basic/client.lua +31 -0
  270. data/vendor/lua/lib/lua/oil/builder/basic/common.lua +11 -0
  271. data/vendor/lua/lib/lua/oil/builder/basic/server.lua +13 -0
  272. data/vendor/lua/lib/lua/oil/builder/cooperative/common.lua +11 -0
  273. data/vendor/lua/lib/lua/oil/builder/cooperative/server.lua +11 -0
  274. data/vendor/lua/lib/lua/oil/builder/corba/client.lua +13 -0
  275. data/vendor/lua/lib/lua/oil/builder/corba/common.lua +24 -0
  276. data/vendor/lua/lib/lua/oil/builder/corba/gencode.lua +13 -0
  277. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/client.lua +11 -0
  278. data/vendor/lua/lib/lua/oil/builder/corba/intercepted/server.lua +11 -0
  279. data/vendor/lua/lib/lua/oil/builder/corba/server.lua +13 -0
  280. data/vendor/lua/lib/lua/oil/builder/lua/client.lua +11 -0
  281. data/vendor/lua/lib/lua/oil/builder/lua/server.lua +12 -0
  282. data/vendor/lua/lib/lua/oil/builder/ludo/byref.lua +13 -0
  283. data/vendor/lua/lib/lua/oil/builder/ludo/client.lua +13 -0
  284. data/vendor/lua/lib/lua/oil/builder/ludo/common.lua +14 -0
  285. data/vendor/lua/lib/lua/oil/builder/ludo/server.lua +13 -0
  286. data/vendor/lua/lib/lua/oil/builder/typed/client.lua +16 -0
  287. data/vendor/lua/lib/lua/oil/builder/typed/server.lua +12 -0
  288. data/vendor/lua/lib/lua/oil/compat.lua +846 -0
  289. data/vendor/lua/lib/lua/oil/component.lua +1 -0
  290. data/vendor/lua/lib/lua/oil/corba/giop.lua +301 -0
  291. data/vendor/lua/lib/lua/oil/corba/giop/Codec.lua +1568 -0
  292. data/vendor/lua/lib/lua/oil/corba/giop/CodecGen.lua +589 -0
  293. data/vendor/lua/lib/lua/oil/corba/giop/Exception.lua +25 -0
  294. data/vendor/lua/lib/lua/oil/corba/giop/Indexer.lua +63 -0
  295. data/vendor/lua/lib/lua/oil/corba/giop/Listener.lua +343 -0
  296. data/vendor/lua/lib/lua/oil/corba/giop/Messenger.lua +228 -0
  297. data/vendor/lua/lib/lua/oil/corba/giop/Referrer.lua +180 -0
  298. data/vendor/lua/lib/lua/oil/corba/giop/Requester.lua +462 -0
  299. data/vendor/lua/lib/lua/oil/corba/idl.lua +597 -0
  300. data/vendor/lua/lib/lua/oil/corba/idl/Compiler.lua +133 -0
  301. data/vendor/lua/lib/lua/oil/corba/idl/Importer.lua +235 -0
  302. data/vendor/lua/lib/lua/oil/corba/idl/Indexer.lua +95 -0
  303. data/vendor/lua/lib/lua/oil/corba/idl/Registry.lua +1821 -0
  304. data/vendor/lua/lib/lua/oil/corba/idl/ir.lua +847 -0
  305. data/vendor/lua/lib/lua/oil/corba/idl/sysex.lua +21 -0
  306. data/vendor/lua/lib/lua/oil/corba/iiop/Profiler.lua +200 -0
  307. data/vendor/lua/lib/lua/oil/corba/intercepted/Listener.lua +158 -0
  308. data/vendor/lua/lib/lua/oil/corba/intercepted/Requester.lua +181 -0
  309. data/vendor/lua/lib/lua/oil/corba/services/event.lua +126 -0
  310. data/vendor/lua/lib/lua/oil/corba/services/event/ConsumerAdmin.lua +50 -0
  311. data/vendor/lua/lib/lua/oil/corba/services/event/EventFactory.lua +15 -0
  312. data/vendor/lua/lib/lua/oil/corba/services/event/EventQueue.lua +37 -0
  313. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushConsumer.lua +75 -0
  314. data/vendor/lua/lib/lua/oil/corba/services/event/ProxyPushSupplier.lua +62 -0
  315. data/vendor/lua/lib/lua/oil/corba/services/event/SingleDeferredDispatcher.lua +60 -0
  316. data/vendor/lua/lib/lua/oil/corba/services/event/SingleSynchronousDispatcher.lua +39 -0
  317. data/vendor/lua/lib/lua/oil/corba/services/event/SupplierAdmin.lua +50 -0
  318. data/vendor/lua/lib/lua/oil/corba/services/naming.lua +436 -0
  319. data/vendor/lua/lib/lua/oil/kernel/base/Acceptor.lua +268 -0
  320. data/vendor/lua/lib/lua/oil/kernel/base/Channels.lua +121 -0
  321. data/vendor/lua/lib/lua/oil/kernel/base/Connector.lua +147 -0
  322. data/vendor/lua/lib/lua/oil/kernel/base/Dispatcher.lua +99 -0
  323. data/vendor/lua/lib/lua/oil/kernel/base/Proxies.lua +86 -0
  324. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/asynchronous.lua +56 -0
  325. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/protected.lua +17 -0
  326. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/synchronous.lua +17 -0
  327. data/vendor/lua/lib/lua/oil/kernel/base/Proxies/utils.lua +29 -0
  328. data/vendor/lua/lib/lua/oil/kernel/base/Receiver.lua +110 -0
  329. data/vendor/lua/lib/lua/oil/kernel/base/Servants.lua +207 -0
  330. data/vendor/lua/lib/lua/oil/kernel/base/Sockets.lua +44 -0
  331. data/vendor/lua/lib/lua/oil/kernel/cooperative/Receiver.lua +139 -0
  332. data/vendor/lua/lib/lua/oil/kernel/intercepted/Listener.lua +47 -0
  333. data/vendor/lua/lib/lua/oil/kernel/intercepted/Requester.lua +58 -0
  334. data/vendor/lua/lib/lua/oil/kernel/lua/Dispatcher.lua +76 -0
  335. data/vendor/lua/lib/lua/oil/kernel/lua/Proxies.lua +69 -0
  336. data/vendor/lua/lib/lua/oil/kernel/typed/Dispatcher.lua +91 -0
  337. data/vendor/lua/lib/lua/oil/kernel/typed/Proxies.lua +153 -0
  338. data/vendor/lua/lib/lua/oil/kernel/typed/Servants.lua +137 -0
  339. data/vendor/lua/lib/lua/oil/ludo/Codec.lua +66 -0
  340. data/vendor/lua/lib/lua/oil/ludo/CodecByRef.lua +103 -0
  341. data/vendor/lua/lib/lua/oil/ludo/Listener.lua +151 -0
  342. data/vendor/lua/lib/lua/oil/ludo/Referrer.lua +72 -0
  343. data/vendor/lua/lib/lua/oil/ludo/Requester.lua +107 -0
  344. data/vendor/lua/lib/lua/oil/oo.lua +1 -0
  345. data/vendor/lua/lib/lua/oil/port.lua +1 -0
  346. data/vendor/lua/lib/lua/oil/properties.lua +57 -0
  347. data/vendor/lua/lib/lua/oil/verbose.lua +133 -0
  348. data/vendor/lua/lib/lua/package_ext.lua +15 -0
  349. data/vendor/lua/lib/lua/parser.lua +268 -0
  350. data/vendor/lua/lib/lua/pl/Date.lua +555 -0
  351. data/vendor/lua/lib/lua/pl/List.lua +613 -0
  352. data/vendor/lua/lib/lua/pl/Map.lua +113 -0
  353. data/vendor/lua/lib/lua/pl/MultiMap.lua +62 -0
  354. data/vendor/lua/lib/lua/pl/OrderedMap.lua +151 -0
  355. data/vendor/lua/lib/lua/pl/Set.lua +153 -0
  356. data/vendor/lua/lib/lua/pl/app.lua +165 -0
  357. data/vendor/lua/lib/lua/pl/array2d.lua +501 -0
  358. data/vendor/lua/lib/lua/pl/class.lua +180 -0
  359. data/vendor/lua/lib/lua/pl/comprehension.lua +286 -0
  360. data/vendor/lua/lib/lua/pl/config.lua +176 -0
  361. data/vendor/lua/lib/lua/pl/data.lua +606 -0
  362. data/vendor/lua/lib/lua/pl/dir.lua +475 -0
  363. data/vendor/lua/lib/lua/pl/file.lua +70 -0
  364. data/vendor/lua/lib/lua/pl/func.lua +376 -0
  365. data/vendor/lua/lib/lua/pl/init.lua +68 -0
  366. data/vendor/lua/lib/lua/pl/input.lua +173 -0
  367. data/vendor/lua/lib/lua/pl/lapp.lua +407 -0
  368. data/vendor/lua/lib/lua/pl/lexer.lua +456 -0
  369. data/vendor/lua/lib/lua/pl/luabalanced.lua +264 -0
  370. data/vendor/lua/lib/lua/pl/operator.lua +201 -0
  371. data/vendor/lua/lib/lua/pl/path.lua +398 -0
  372. data/vendor/lua/lib/lua/pl/permute.lua +63 -0
  373. data/vendor/lua/lib/lua/pl/platf/luajava.lua +101 -0
  374. data/vendor/lua/lib/lua/pl/pretty.lua +285 -0
  375. data/vendor/lua/lib/lua/pl/seq.lua +551 -0
  376. data/vendor/lua/lib/lua/pl/sip.lua +344 -0
  377. data/vendor/lua/lib/lua/pl/strict.lua +70 -0
  378. data/vendor/lua/lib/lua/pl/stringio.lua +158 -0
  379. data/vendor/lua/lib/lua/pl/stringx.lua +440 -0
  380. data/vendor/lua/lib/lua/pl/tablex.lua +817 -0
  381. data/vendor/lua/lib/lua/pl/template.lua +103 -0
  382. data/vendor/lua/lib/lua/pl/test.lua +135 -0
  383. data/vendor/lua/lib/lua/pl/text.lua +243 -0
  384. data/vendor/lua/lib/lua/pl/utils.lua +550 -0
  385. data/vendor/lua/lib/lua/pl/xml.lua +689 -0
  386. data/vendor/lua/lib/lua/profiler.dll +0 -0
  387. data/vendor/lua/lib/lua/re.lua +248 -0
  388. data/vendor/lua/lib/lua/rex_onig.dll +0 -0
  389. data/vendor/lua/lib/lua/rex_pcre.dll +0 -0
  390. data/vendor/lua/lib/lua/rex_posix.dll +0 -0
  391. data/vendor/lua/lib/lua/rings.dll +0 -0
  392. data/vendor/lua/lib/lua/serialize.lua +193 -0
  393. data/vendor/lua/lib/lua/set.lua +149 -0
  394. data/vendor/lua/lib/lua/socket.lua +133 -0
  395. data/vendor/lua/lib/lua/socket/core.dll +0 -0
  396. data/vendor/lua/lib/lua/socket/ftp.lua +281 -0
  397. data/vendor/lua/lib/lua/socket/http.lua +350 -0
  398. data/vendor/lua/lib/lua/socket/smtp.lua +251 -0
  399. data/vendor/lua/lib/lua/socket/tp.lua +123 -0
  400. data/vendor/lua/lib/lua/socket/url.lua +297 -0
  401. data/vendor/lua/lib/lua/ssl.dll +0 -0
  402. data/vendor/lua/lib/lua/ssl.lua +93 -0
  403. data/vendor/lua/lib/lua/ssl/https.lua +138 -0
  404. data/vendor/lua/lib/lua/stable.lua +28 -0
  405. data/vendor/lua/lib/lua/std.lua +16 -0
  406. data/vendor/lua/lib/lua/strbuf.lua +32 -0
  407. data/vendor/lua/lib/lua/strict.lua +45 -0
  408. data/vendor/lua/lib/lua/string_ext.lua +274 -0
  409. data/vendor/lua/lib/lua/table_ext.lua +117 -0
  410. data/vendor/lua/lib/lua/tar.lua +262 -0
  411. data/vendor/lua/lib/lua/task.dll +0 -0
  412. data/vendor/lua/lib/lua/tree.lua +81 -0
  413. data/vendor/lua/lib/lua/unicode.dll +0 -0
  414. data/vendor/lua/lib/lua/verbose_require.lua +11 -0
  415. data/vendor/lua/lib/lua/vstruct.lua +86 -0
  416. data/vendor/lua/lib/lua/vstruct/ast.lua +192 -0
  417. data/vendor/lua/lib/lua/vstruct/ast/Bitpack.lua +33 -0
  418. data/vendor/lua/lib/lua/vstruct/ast/Generator.lua +174 -0
  419. data/vendor/lua/lib/lua/vstruct/ast/IO.lua +45 -0
  420. data/vendor/lua/lib/lua/vstruct/ast/List.lua +56 -0
  421. data/vendor/lua/lib/lua/vstruct/ast/Name.lua +20 -0
  422. data/vendor/lua/lib/lua/vstruct/ast/Repeat.lua +23 -0
  423. data/vendor/lua/lib/lua/vstruct/ast/Root.lua +19 -0
  424. data/vendor/lua/lib/lua/vstruct/ast/Table.lua +65 -0
  425. data/vendor/lua/lib/lua/vstruct/cursor.lua +81 -0
  426. data/vendor/lua/lib/lua/vstruct/io.lua +45 -0
  427. data/vendor/lua/lib/lua/vstruct/io/a.lua +24 -0
  428. data/vendor/lua/lib/lua/vstruct/io/b.lua +28 -0
  429. data/vendor/lua/lib/lua/vstruct/io/bigendian.lua +21 -0
  430. data/vendor/lua/lib/lua/vstruct/io/c.lua +25 -0
  431. data/vendor/lua/lib/lua/vstruct/io/defaults.lua +24 -0
  432. data/vendor/lua/lib/lua/vstruct/io/endianness.lua +41 -0
  433. data/vendor/lua/lib/lua/vstruct/io/f.lua +129 -0
  434. data/vendor/lua/lib/lua/vstruct/io/hostendian.lua +21 -0
  435. data/vendor/lua/lib/lua/vstruct/io/i.lua +42 -0
  436. data/vendor/lua/lib/lua/vstruct/io/littleendian.lua +21 -0
  437. data/vendor/lua/lib/lua/vstruct/io/m.lua +62 -0
  438. data/vendor/lua/lib/lua/vstruct/io/p.lua +23 -0
  439. data/vendor/lua/lib/lua/vstruct/io/s.lua +27 -0
  440. data/vendor/lua/lib/lua/vstruct/io/seekb.lua +18 -0
  441. data/vendor/lua/lib/lua/vstruct/io/seekf.lua +18 -0
  442. data/vendor/lua/lib/lua/vstruct/io/seekto.lua +18 -0
  443. data/vendor/lua/lib/lua/vstruct/io/u.lua +54 -0
  444. data/vendor/lua/lib/lua/vstruct/io/x.lua +34 -0
  445. data/vendor/lua/lib/lua/vstruct/io/z.lua +63 -0
  446. data/vendor/lua/lib/lua/vstruct/lexer.lua +100 -0
  447. data/vendor/lua/lib/lua/vstruct/pack.lua +142 -0
  448. data/vendor/lua/lib/lua/vstruct/test.lua +47 -0
  449. data/vendor/lua/lib/lua/vstruct/test/basic.lua +73 -0
  450. data/vendor/lua/lib/lua/vstruct/test/common.lua +100 -0
  451. data/vendor/lua/lib/lua/vstruct/test/fp-bigendian.lua +56 -0
  452. data/vendor/lua/lib/lua/vstruct/test/fp-littleendian.lua +56 -0
  453. data/vendor/lua/lib/lua/vstruct/test/struct-test-gen.lua +1230 -0
  454. data/vendor/lua/lib/lua/vstruct/unpack.lua +126 -0
  455. data/vendor/lua/lib/lua/wx.dll +0 -0
  456. data/vendor/lua/lib/lua/xml.lua +75 -0
  457. data/vendor/lua/lib/lua/zip.dll +0 -0
  458. data/vendor/lua/lib/lua/zlib.dll +0 -0
  459. 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
+
@@ -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
+