script_core 0.2.2 → 0.2.7

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 (376) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +41 -45
  3. data/.travis.yml +2 -1
  4. data/Gemfile +3 -3
  5. data/README.md +7 -1
  6. data/bootstrap.sh +2 -2
  7. data/ext/enterprise_script_service/libseccomp/.travis.yml +24 -12
  8. data/ext/enterprise_script_service/libseccomp/CHANGELOG +32 -0
  9. data/ext/enterprise_script_service/libseccomp/CONTRIBUTING.md +37 -26
  10. data/ext/enterprise_script_service/libseccomp/CREDITS +11 -0
  11. data/ext/enterprise_script_service/libseccomp/README.md +21 -1
  12. data/ext/enterprise_script_service/libseccomp/configure.ac +13 -8
  13. data/ext/enterprise_script_service/libseccomp/doc/Makefile.am +6 -0
  14. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_api_get.3 +12 -2
  15. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_arch_add.3 +38 -6
  16. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_attr_set.3 +53 -2
  17. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_export_bpf.3 +20 -2
  18. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_init.3 +9 -2
  19. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_load.3 +32 -2
  20. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_merge.3 +16 -2
  21. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_alloc.3 +113 -0
  22. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_fd.3 +1 -0
  23. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_free.3 +1 -0
  24. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_id_valid.3 +1 -0
  25. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_receive.3 +1 -0
  26. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_notify_respond.3 +1 -0
  27. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_rule_add.3 +64 -3
  28. data/ext/enterprise_script_service/libseccomp/doc/man/man3/seccomp_syscall_priority.3 +18 -3
  29. data/ext/enterprise_script_service/libseccomp/include/seccomp-syscalls.h +19 -0
  30. data/ext/enterprise_script_service/libseccomp/include/seccomp.h.in +116 -0
  31. data/ext/enterprise_script_service/libseccomp/src/.gitignore +2 -0
  32. data/ext/enterprise_script_service/libseccomp/src/Makefile.am +31 -17
  33. data/ext/enterprise_script_service/libseccomp/src/api.c +254 -58
  34. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64.h +1 -9
  35. data/ext/enterprise_script_service/libseccomp/src/arch-arm.c +47 -2
  36. data/ext/enterprise_script_service/libseccomp/src/arch-arm.h +1 -9
  37. data/ext/enterprise_script_service/libseccomp/src/arch-gperf-generate +40 -0
  38. data/ext/enterprise_script_service/libseccomp/src/arch-mips.c +41 -4
  39. data/ext/enterprise_script_service/libseccomp/src/arch-mips.h +2 -10
  40. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.c +41 -4
  41. data/ext/enterprise_script_service/libseccomp/src/arch-mips64.h +3 -11
  42. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.c +41 -4
  43. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32.h +2 -10
  44. data/ext/enterprise_script_service/libseccomp/src/arch-parisc.h +1 -10
  45. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.c +3 -3
  46. data/ext/enterprise_script_service/libseccomp/src/arch-parisc64.h +29 -0
  47. data/ext/enterprise_script_service/libseccomp/src/arch-ppc.h +1 -9
  48. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.c +606 -8
  49. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64.h +2 -10
  50. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.c +31 -0
  51. data/ext/enterprise_script_service/libseccomp/src/arch-riscv64.h +22 -0
  52. data/ext/enterprise_script_service/libseccomp/src/arch-s390.c +171 -12
  53. data/ext/enterprise_script_service/libseccomp/src/arch-s390.h +1 -17
  54. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.c +166 -10
  55. data/ext/enterprise_script_service/libseccomp/src/arch-s390x.h +1 -20
  56. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-dump.c +8 -1
  57. data/ext/enterprise_script_service/libseccomp/src/arch-syscall-validate +359 -143
  58. data/ext/enterprise_script_service/libseccomp/src/arch-x32.c +36 -2
  59. data/ext/enterprise_script_service/libseccomp/src/arch-x32.h +2 -10
  60. data/ext/enterprise_script_service/libseccomp/src/arch-x86.c +172 -10
  61. data/ext/enterprise_script_service/libseccomp/src/arch-x86.h +1 -14
  62. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64.h +1 -9
  63. data/ext/enterprise_script_service/libseccomp/src/arch.c +11 -3
  64. data/ext/enterprise_script_service/libseccomp/src/arch.h +7 -0
  65. data/ext/enterprise_script_service/libseccomp/src/db.c +268 -57
  66. data/ext/enterprise_script_service/libseccomp/src/db.h +16 -2
  67. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.c +503 -148
  68. data/ext/enterprise_script_service/libseccomp/src/gen_bpf.h +2 -1
  69. data/ext/enterprise_script_service/libseccomp/src/gen_pfc.c +165 -37
  70. data/ext/enterprise_script_service/libseccomp/src/python/libseccomp.pxd +37 -1
  71. data/ext/enterprise_script_service/libseccomp/src/python/seccomp.pyx +295 -5
  72. data/ext/enterprise_script_service/libseccomp/src/syscalls.c +56 -0
  73. data/ext/enterprise_script_service/libseccomp/src/syscalls.csv +470 -0
  74. data/ext/enterprise_script_service/libseccomp/src/syscalls.h +62 -0
  75. data/ext/enterprise_script_service/libseccomp/src/syscalls.perf.template +82 -0
  76. data/ext/enterprise_script_service/libseccomp/src/system.c +196 -16
  77. data/ext/enterprise_script_service/libseccomp/src/system.h +68 -13
  78. data/ext/enterprise_script_service/libseccomp/tests/.gitignore +10 -2
  79. data/ext/enterprise_script_service/libseccomp/tests/06-sim-actions.tests +1 -1
  80. data/ext/enterprise_script_service/libseccomp/tests/11-basic-basic_errors.c +5 -5
  81. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.c +35 -1
  82. data/ext/enterprise_script_service/libseccomp/tests/13-basic-attrs.py +10 -1
  83. data/ext/enterprise_script_service/libseccomp/tests/15-basic-resolver.c +4 -3
  84. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.c +12 -0
  85. data/ext/enterprise_script_service/libseccomp/tests/16-sim-arch_basic.py +1 -0
  86. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.c → 18-sim-basic_allowlist.c} +0 -0
  87. data/ext/enterprise_script_service/libseccomp/tests/{18-sim-basic_whitelist.py → 18-sim-basic_allowlist.py} +0 -0
  88. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_allowlist.tests +32 -0
  89. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.c +3 -0
  90. data/ext/enterprise_script_service/libseccomp/tests/23-sim-arch_all_le_basic.py +1 -0
  91. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.c +3 -0
  92. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.py +1 -0
  93. data/ext/enterprise_script_service/libseccomp/tests/30-sim-socket_syscalls.tests +33 -17
  94. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.c → 34-sim-basic_denylist.c} +0 -0
  95. data/ext/enterprise_script_service/libseccomp/tests/{34-sim-basic_blacklist.py → 34-sim-basic_denylist.py} +0 -0
  96. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_denylist.tests +32 -0
  97. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.c +3 -0
  98. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.py +1 -0
  99. data/ext/enterprise_script_service/libseccomp/tests/36-sim-ipc_syscalls.tests +25 -25
  100. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.c +24 -3
  101. data/ext/enterprise_script_service/libseccomp/tests/39-basic-api_level.py +16 -1
  102. data/ext/enterprise_script_service/libseccomp/tests/47-live-kill_process.c +3 -3
  103. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.c +112 -0
  104. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.py +60 -0
  105. data/ext/enterprise_script_service/libseccomp/tests/51-live-user_notification.tests +11 -0
  106. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.c +48 -0
  107. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.py +38 -0
  108. data/ext/enterprise_script_service/libseccomp/tests/52-basic-load.tests +11 -0
  109. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.c +156 -0
  110. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.py +95 -0
  111. data/ext/enterprise_script_service/libseccomp/tests/53-sim-binary_tree.tests +65 -0
  112. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.c +128 -0
  113. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.py +95 -0
  114. data/ext/enterprise_script_service/libseccomp/tests/54-live-binary_tree.tests +11 -0
  115. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.c +134 -0
  116. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.sh +46 -0
  117. data/ext/enterprise_script_service/libseccomp/tests/55-basic-pfc_binary_tree.tests +11 -0
  118. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.c +90 -0
  119. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.py +65 -0
  120. data/ext/enterprise_script_service/libseccomp/tests/56-basic-iterate_syscalls.tests +11 -0
  121. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.c +64 -0
  122. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.py +46 -0
  123. data/ext/enterprise_script_service/libseccomp/tests/57-basic-rawsysrc.tests +11 -0
  124. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.c +116 -0
  125. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.py +61 -0
  126. data/ext/enterprise_script_service/libseccomp/tests/58-live-tsync_notify.tests +11 -0
  127. data/ext/enterprise_script_service/libseccomp/tests/Makefile.am +34 -10
  128. data/ext/enterprise_script_service/libseccomp/tests/regression +10 -3
  129. data/ext/enterprise_script_service/libseccomp/tests/util.c +3 -3
  130. data/ext/enterprise_script_service/libseccomp/tools/Makefile.am +0 -3
  131. data/ext/enterprise_script_service/libseccomp/tools/check-syntax +1 -1
  132. data/ext/enterprise_script_service/libseccomp/tools/scmp_arch_detect.c +3 -0
  133. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_disasm.c +4 -2
  134. data/ext/enterprise_script_service/libseccomp/tools/scmp_bpf_sim.c +4 -0
  135. data/ext/enterprise_script_service/libseccomp/tools/util.c +14 -12
  136. data/ext/enterprise_script_service/libseccomp/tools/util.h +7 -0
  137. data/ext/enterprise_script_service/mruby/.github/workflows/build.yml +106 -0
  138. data/ext/enterprise_script_service/mruby/.github/workflows/codeql-analysis.yml +51 -0
  139. data/ext/enterprise_script_service/mruby/.github/workflows/main.yml +24 -0
  140. data/ext/enterprise_script_service/mruby/.gitignore +3 -0
  141. data/ext/enterprise_script_service/mruby/.travis.yml +6 -9
  142. data/ext/enterprise_script_service/mruby/AUTHORS +1 -0
  143. data/ext/enterprise_script_service/mruby/Doxyfile +1 -1
  144. data/ext/enterprise_script_service/mruby/LICENSE +1 -1
  145. data/ext/enterprise_script_service/mruby/README.md +6 -2
  146. data/ext/enterprise_script_service/mruby/appveyor.yml +9 -12
  147. data/ext/enterprise_script_service/mruby/appveyor_config.rb +9 -0
  148. data/ext/enterprise_script_service/mruby/build_config.rb +6 -6
  149. data/ext/enterprise_script_service/mruby/doc/guides/compile.md +6 -2
  150. data/ext/enterprise_script_service/mruby/doc/guides/debugger.md +1 -1
  151. data/ext/enterprise_script_service/mruby/doc/guides/mrbconf.md +4 -8
  152. data/ext/enterprise_script_service/mruby/doc/limitations.md +10 -10
  153. data/ext/enterprise_script_service/mruby/doc/opcode.md +108 -95
  154. data/ext/enterprise_script_service/mruby/examples/targets/build_config_ArduinoDue.rb +2 -2
  155. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelEdison.rb +2 -2
  156. data/ext/enterprise_script_service/mruby/examples/targets/build_config_IntelGalileo.rb +2 -2
  157. data/ext/enterprise_script_service/mruby/examples/targets/build_config_RX630.rb +2 -2
  158. data/ext/enterprise_script_service/mruby/examples/targets/build_config_chipKITMax32.rb +2 -2
  159. data/ext/enterprise_script_service/mruby/examples/targets/build_config_dreamcast_shelf.rb +108 -0
  160. data/ext/enterprise_script_service/mruby/include/mrbconf.h +10 -7
  161. data/ext/enterprise_script_service/mruby/include/mruby.h +24 -9
  162. data/ext/enterprise_script_service/mruby/include/mruby/array.h +4 -0
  163. data/ext/enterprise_script_service/mruby/include/mruby/boxing_nan.h +11 -2
  164. data/ext/enterprise_script_service/mruby/include/mruby/boxing_word.h +0 -10
  165. data/ext/enterprise_script_service/mruby/include/mruby/common.h +10 -0
  166. data/ext/enterprise_script_service/mruby/include/mruby/compile.h +11 -3
  167. data/ext/enterprise_script_service/mruby/include/mruby/dump.h +1 -17
  168. data/ext/enterprise_script_service/mruby/include/mruby/irep.h +10 -0
  169. data/ext/enterprise_script_service/mruby/include/mruby/istruct.h +4 -1
  170. data/ext/enterprise_script_service/mruby/include/mruby/khash.h +23 -5
  171. data/ext/enterprise_script_service/mruby/include/mruby/numeric.h +1 -0
  172. data/ext/enterprise_script_service/mruby/include/mruby/ops.h +3 -2
  173. data/ext/enterprise_script_service/mruby/include/mruby/proc.h +13 -8
  174. data/ext/enterprise_script_service/mruby/include/mruby/string.h +2 -1
  175. data/ext/enterprise_script_service/mruby/include/mruby/value.h +32 -41
  176. data/ext/enterprise_script_service/mruby/include/mruby/version.h +4 -4
  177. data/ext/enterprise_script_service/mruby/lib/mruby/build.rb +2 -30
  178. data/ext/enterprise_script_service/mruby/lib/mruby/build/command.rb +21 -46
  179. data/ext/enterprise_script_service/mruby/lib/mruby/gem.rb +9 -0
  180. data/ext/enterprise_script_service/mruby/lib/mruby/source.rb +3 -1
  181. data/ext/enterprise_script_service/mruby/mrbgems/default.gembox +7 -0
  182. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/mrblib/array.rb +0 -31
  183. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/src/array.c +5 -8
  184. data/ext/enterprise_script_service/mruby/mrbgems/mruby-array-ext/test/array.rb +0 -13
  185. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-config/mrbgem.rake +5 -2
  186. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdb.c +0 -1
  187. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-debugger/tools/mrdb/mrdbconf.h +5 -1
  188. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mirb/tools/mirb/mirb.c +7 -3
  189. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mrbc/tools/mrbc/mrbc.c +24 -21
  190. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/mrbgem.rake +0 -1
  191. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-mruby/tools/mruby/mruby.c +6 -2
  192. data/ext/enterprise_script_service/mruby/mrbgems/mruby-bin-strip/tools/mruby-strip/mruby-strip.c +6 -2
  193. data/ext/enterprise_script_service/mruby/mrbgems/mruby-class-ext/src/class.c +6 -1
  194. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/codegen.c +76 -48
  195. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/parse.y +107 -32
  196. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/core/y.tab.c +13153 -0
  197. data/ext/enterprise_script_service/mruby/mrbgems/mruby-compiler/mrbgem.rake +13 -15
  198. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/mrblib/complex.rb +1 -1
  199. data/ext/enterprise_script_service/mruby/mrbgems/mruby-complex/src/complex.c +1 -2
  200. data/ext/enterprise_script_service/mruby/mrbgems/mruby-error/src/exception.c +3 -3
  201. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/src/eval.c +3 -214
  202. data/ext/enterprise_script_service/mruby/mrbgems/mruby-eval/test/eval.rb +21 -0
  203. data/ext/enterprise_script_service/mruby/mrbgems/mruby-fiber/src/fiber.c +1 -2
  204. data/ext/enterprise_script_service/mruby/mrbgems/mruby-hash-ext/src/hash-ext.c +1 -3
  205. data/ext/enterprise_script_service/mruby/mrbgems/mruby-inline-struct/test/inline.c +3 -4
  206. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/include/mruby/ext/io.h +39 -7
  207. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrbgem.rake +2 -8
  208. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/file_constants.rb +0 -16
  209. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/mrblib/io.rb +7 -12
  210. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file.c +77 -32
  211. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/file_test.c +18 -36
  212. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/src/io.c +324 -122
  213. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/file.rb +18 -12
  214. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/io.rb +32 -0
  215. data/ext/enterprise_script_service/mruby/mrbgems/mruby-io/test/mruby_io_test.c +57 -49
  216. data/ext/enterprise_script_service/mruby/mrbgems/mruby-kernel-ext/src/kernel.c +6 -8
  217. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/src/metaprog.c +15 -17
  218. data/ext/enterprise_script_service/mruby/mrbgems/mruby-metaprog/test/metaprog.rb +9 -0
  219. data/ext/enterprise_script_service/mruby/mrbgems/mruby-method/src/method.c +4 -5
  220. data/ext/enterprise_script_service/mruby/mrbgems/mruby-object-ext/src/object.c +3 -12
  221. data/ext/enterprise_script_service/mruby/mrbgems/mruby-objectspace/src/mruby_objectspace.c +0 -1
  222. data/ext/enterprise_script_service/mruby/mrbgems/mruby-pack/src/pack.c +113 -10
  223. data/ext/enterprise_script_service/mruby/mrbgems/mruby-print/src/print.c +6 -3
  224. data/ext/enterprise_script_service/mruby/mrbgems/mruby-proc-ext/src/proc.c +2 -2
  225. data/ext/enterprise_script_service/mruby/mrbgems/mruby-range-ext/src/range.c +1 -3
  226. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/mrblib/rational.rb +1 -3
  227. data/ext/enterprise_script_service/mruby/mrbgems/mruby-rational/src/rational.c +9 -9
  228. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sleep/src/mrb_sleep.c +1 -1
  229. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/mrbgem.rake +1 -1
  230. data/ext/enterprise_script_service/mruby/mrbgems/mruby-socket/test/sockettest.c +3 -2
  231. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/src/sprintf.c +62 -25
  232. data/ext/enterprise_script_service/mruby/mrbgems/mruby-sprintf/test/sprintf.rb +5 -23
  233. data/ext/enterprise_script_service/mruby/mrbgems/mruby-string-ext/src/string.c +4 -5
  234. data/ext/enterprise_script_service/mruby/mrbgems/mruby-struct/src/struct.c +5 -11
  235. data/ext/enterprise_script_service/mruby/mrbgems/mruby-symbol-ext/src/symbol.c +1 -1
  236. data/ext/enterprise_script_service/mruby/mrbgems/mruby-test/mrbgem.rake +1 -0
  237. data/ext/enterprise_script_service/mruby/mrbgems/mruby-time/src/time.c +11 -15
  238. data/ext/enterprise_script_service/mruby/mrblib/00class.rb +10 -0
  239. data/ext/enterprise_script_service/mruby/mrblib/hash.rb +3 -3
  240. data/ext/enterprise_script_service/mruby/src/array.c +25 -11
  241. data/ext/enterprise_script_service/mruby/src/backtrace.c +2 -2
  242. data/ext/enterprise_script_service/mruby/src/class.c +48 -32
  243. data/ext/enterprise_script_service/mruby/src/codedump.c +4 -0
  244. data/ext/enterprise_script_service/mruby/src/debug.c +8 -5
  245. data/ext/enterprise_script_service/mruby/src/dump.c +3 -65
  246. data/ext/enterprise_script_service/mruby/src/error.c +58 -7
  247. data/ext/enterprise_script_service/mruby/src/etc.c +13 -5
  248. data/ext/enterprise_script_service/mruby/src/fmt_fp.c +98 -21
  249. data/ext/enterprise_script_service/mruby/src/gc.c +15 -280
  250. data/ext/enterprise_script_service/mruby/src/hash.c +13 -21
  251. data/ext/enterprise_script_service/mruby/src/kernel.c +6 -9
  252. data/ext/enterprise_script_service/mruby/src/load.c +56 -30
  253. data/ext/enterprise_script_service/mruby/src/numeric.c +50 -70
  254. data/ext/enterprise_script_service/mruby/src/object.c +23 -5
  255. data/ext/enterprise_script_service/mruby/src/print.c +27 -3
  256. data/ext/enterprise_script_service/mruby/src/proc.c +26 -7
  257. data/ext/enterprise_script_service/mruby/src/range.c +4 -12
  258. data/ext/enterprise_script_service/mruby/src/state.c +34 -11
  259. data/ext/enterprise_script_service/mruby/src/string.c +93 -56
  260. data/ext/enterprise_script_service/mruby/src/symbol.c +13 -12
  261. data/ext/enterprise_script_service/mruby/src/vm.c +48 -53
  262. data/ext/enterprise_script_service/mruby/tasks/gitlab.rake +19 -22
  263. data/ext/enterprise_script_service/mruby/tasks/mrbgems.rake +1 -1
  264. data/ext/enterprise_script_service/mruby/tasks/toolchains/android.rake +46 -1
  265. data/ext/enterprise_script_service/mruby/tasks/toolchains/gcc.rake +3 -3
  266. data/ext/enterprise_script_service/mruby/tasks/toolchains/openwrt.rake +6 -6
  267. data/ext/enterprise_script_service/mruby/tasks/toolchains/visualcpp.rake +8 -8
  268. data/ext/enterprise_script_service/mruby/test/assert.rb +5 -4
  269. data/ext/enterprise_script_service/mruby/test/t/ensure.rb +8 -26
  270. data/ext/enterprise_script_service/mruby/test/t/exception.rb +2 -2
  271. data/ext/enterprise_script_service/mruby/test/t/kernel.rb +15 -24
  272. data/ext/enterprise_script_service/mruby/travis_config.rb +0 -14
  273. data/ext/enterprise_script_service/msgpack/.github/depends/boost.sh +56 -0
  274. data/ext/enterprise_script_service/msgpack/.github/workflows/coverage.yml +62 -0
  275. data/ext/enterprise_script_service/msgpack/.github/workflows/gha.yml +304 -0
  276. data/ext/enterprise_script_service/msgpack/CHANGELOG.md +11 -0
  277. data/ext/enterprise_script_service/msgpack/CMakeLists.txt +82 -39
  278. data/ext/enterprise_script_service/msgpack/Files.cmake +22 -12
  279. data/ext/enterprise_script_service/msgpack/QUICKSTART-C.md +26 -29
  280. data/ext/enterprise_script_service/msgpack/README.md +3 -2
  281. data/ext/enterprise_script_service/msgpack/appveyor.yml +6 -2
  282. data/ext/enterprise_script_service/msgpack/ci/build_cmake.sh +3 -1
  283. data/ext/enterprise_script_service/msgpack/cmake/CodeCoverage.cmake +55 -0
  284. data/ext/enterprise_script_service/msgpack/codecov.yml +36 -0
  285. data/ext/enterprise_script_service/msgpack/example/CMakeLists.txt +9 -5
  286. data/ext/enterprise_script_service/msgpack/example/boost/CMakeLists.txt +1 -1
  287. data/ext/enterprise_script_service/msgpack/example/c/CMakeLists.txt +17 -6
  288. data/ext/enterprise_script_service/msgpack/example/c/boundary.c +296 -0
  289. data/ext/enterprise_script_service/msgpack/example/c/jsonconv.c +419 -0
  290. data/ext/enterprise_script_service/msgpack/example/c/simple_c.c +1 -1
  291. data/ext/enterprise_script_service/msgpack/example/cpp03/CMakeLists.txt +3 -3
  292. data/ext/enterprise_script_service/msgpack/example/cpp11/CMakeLists.txt +2 -2
  293. data/ext/enterprise_script_service/msgpack/example/x3/CMakeLists.txt +2 -2
  294. data/ext/enterprise_script_service/msgpack/include/msgpack/pack.h +24 -1
  295. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/array_ref.hpp +5 -4
  296. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/boost/optional.hpp +4 -4
  297. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/cpp17/vector_byte.hpp +8 -8
  298. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/map.hpp +4 -4
  299. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector.hpp +4 -4
  300. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_char.hpp +8 -8
  301. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/vector_unsigned_char.hpp +8 -8
  302. data/ext/enterprise_script_service/msgpack/include/msgpack/v1/adaptor/wstring.hpp +4 -4
  303. data/ext/enterprise_script_service/msgpack/include/msgpack/v3/unpack.hpp +6 -6
  304. data/ext/enterprise_script_service/msgpack/include/msgpack/version_master.h +2 -2
  305. data/ext/enterprise_script_service/msgpack/include/msgpack/zbuffer.h +4 -4
  306. data/ext/enterprise_script_service/msgpack/make_file_list.sh +38 -11
  307. data/ext/enterprise_script_service/msgpack/src/vrefbuffer.c +6 -0
  308. data/ext/enterprise_script_service/msgpack/test/CMakeLists.txt +86 -64
  309. data/ext/enterprise_script_service/msgpack/test/array_ref.cpp +4 -0
  310. data/ext/enterprise_script_service/msgpack/test/boost_fusion.cpp +4 -0
  311. data/ext/enterprise_script_service/msgpack/test/boost_optional.cpp +4 -0
  312. data/ext/enterprise_script_service/msgpack/test/boost_string_ref.cpp +4 -1
  313. data/ext/enterprise_script_service/msgpack/test/boost_string_view.cpp +4 -0
  314. data/ext/enterprise_script_service/msgpack/test/boost_variant.cpp +4 -0
  315. data/ext/enterprise_script_service/msgpack/test/buffer.cpp +4 -47
  316. data/ext/enterprise_script_service/msgpack/test/buffer_c.cpp +148 -0
  317. data/ext/enterprise_script_service/msgpack/test/carray.cpp +4 -0
  318. data/ext/enterprise_script_service/msgpack/test/cases.cpp +8 -4
  319. data/ext/enterprise_script_service/msgpack/test/convert.cpp +8 -4
  320. data/ext/enterprise_script_service/msgpack/test/fixint.cpp +4 -0
  321. data/ext/enterprise_script_service/msgpack/test/fixint_c.cpp +4 -0
  322. data/ext/enterprise_script_service/msgpack/test/fuzz_unpack_pack_fuzzer_cpp11.cpp +4 -0
  323. data/ext/enterprise_script_service/msgpack/test/iterator_cpp11.cpp +4 -0
  324. data/ext/enterprise_script_service/msgpack/test/json.cpp +4 -0
  325. data/ext/enterprise_script_service/msgpack/test/limit.cpp +8 -4
  326. data/ext/enterprise_script_service/msgpack/test/msgpack_basic.cpp +4 -0
  327. data/ext/enterprise_script_service/msgpack/test/msgpack_c.cpp +159 -0
  328. data/ext/enterprise_script_service/msgpack/test/msgpack_container.cpp +4 -0
  329. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp11.cpp +32 -27
  330. data/ext/enterprise_script_service/msgpack/test/msgpack_cpp17.cpp +4 -0
  331. data/ext/enterprise_script_service/msgpack/test/msgpack_stream.cpp +4 -0
  332. data/ext/enterprise_script_service/msgpack/test/msgpack_tuple.cpp +4 -1
  333. data/ext/enterprise_script_service/msgpack/test/msgpack_vref.cpp +4 -0
  334. data/ext/enterprise_script_service/msgpack/test/msgpack_x3_parse.cpp +4 -0
  335. data/ext/enterprise_script_service/msgpack/test/object.cpp +4 -1
  336. data/ext/enterprise_script_service/msgpack/test/object_with_zone.cpp +12 -8
  337. data/ext/enterprise_script_service/msgpack/test/pack_unpack.cpp +30 -26
  338. data/ext/enterprise_script_service/msgpack/test/pack_unpack_c.cpp +4 -0
  339. data/ext/enterprise_script_service/msgpack/test/raw.cpp +4 -0
  340. data/ext/enterprise_script_service/msgpack/test/reference.cpp +4 -0
  341. data/ext/enterprise_script_service/msgpack/test/reference_cpp11.cpp +4 -0
  342. data/ext/enterprise_script_service/msgpack/test/reference_wrapper_cpp11.cpp +4 -0
  343. data/ext/enterprise_script_service/msgpack/test/shared_ptr_cpp11.cpp +4 -0
  344. data/ext/enterprise_script_service/msgpack/test/size_equal_only.cpp +4 -0
  345. data/ext/enterprise_script_service/msgpack/test/streaming.cpp +8 -4
  346. data/ext/enterprise_script_service/msgpack/test/streaming_c.cpp +4 -0
  347. data/ext/enterprise_script_service/msgpack/test/unique_ptr_cpp11.cpp +4 -0
  348. data/ext/enterprise_script_service/msgpack/test/user_class.cpp +16 -12
  349. data/ext/enterprise_script_service/msgpack/test/version.cpp +4 -0
  350. data/ext/enterprise_script_service/msgpack/test/visitor.cpp +4 -0
  351. data/ext/enterprise_script_service/msgpack/test/zone.cpp +4 -0
  352. data/lib/script_core/engine.rb +24 -5
  353. data/lib/script_core/executable.rb +4 -3
  354. data/lib/script_core/result.rb +1 -5
  355. data/lib/script_core/service_channel.rb +1 -0
  356. data/lib/script_core/version.rb +1 -1
  357. data/lib/tasks/script_core.rake +3 -1
  358. data/script_core.gemspec +2 -2
  359. data/spec/dummy/app/lib/script_engine.rb +64 -5
  360. metadata +68 -30
  361. data/ext/enterprise_script_service/libseccomp/src/arch-aarch64-syscalls.c +0 -559
  362. data/ext/enterprise_script_service/libseccomp/src/arch-arm-syscalls.c +0 -570
  363. data/ext/enterprise_script_service/libseccomp/src/arch-mips-syscalls.c +0 -562
  364. data/ext/enterprise_script_service/libseccomp/src/arch-mips64-syscalls.c +0 -562
  365. data/ext/enterprise_script_service/libseccomp/src/arch-mips64n32-syscalls.c +0 -562
  366. data/ext/enterprise_script_service/libseccomp/src/arch-parisc-syscalls.c +0 -542
  367. data/ext/enterprise_script_service/libseccomp/src/arch-ppc-syscalls.c +0 -559
  368. data/ext/enterprise_script_service/libseccomp/src/arch-ppc64-syscalls.c +0 -559
  369. data/ext/enterprise_script_service/libseccomp/src/arch-s390-syscalls.c +0 -626
  370. data/ext/enterprise_script_service/libseccomp/src/arch-s390x-syscalls.c +0 -626
  371. data/ext/enterprise_script_service/libseccomp/src/arch-x32-syscalls.c +0 -558
  372. data/ext/enterprise_script_service/libseccomp/src/arch-x86-syscalls.c +0 -692
  373. data/ext/enterprise_script_service/libseccomp/src/arch-x86_64-syscalls.c +0 -559
  374. data/ext/enterprise_script_service/libseccomp/tests/18-sim-basic_whitelist.tests +0 -32
  375. data/ext/enterprise_script_service/libseccomp/tests/34-sim-basic_blacklist.tests +0 -32
  376. data/ext/enterprise_script_service/msgpack/.travis.yml +0 -258
@@ -12,9 +12,9 @@
12
12
  compiler.command = ENV['CC'] || default_command
13
13
  compiler.flags = [c_mandatory_flags, ENV['CFLAGS'] || [compiler_flags, cxx_invalid_flags, %w(-Wwrite-strings)]]
14
14
  end
15
- compiler.option_include_path = '-I%s'
15
+ compiler.option_include_path = %q[-I"%s"]
16
16
  compiler.option_define = '-D%s'
17
- compiler.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
17
+ compiler.compile_options = %q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
18
18
  compiler.cxx_compile_flag = '-x c++ -std=gnu++03'
19
19
  compiler.cxx_exception_flag = '-fexceptions'
20
20
  compiler.cxx_invalid_flags = c_mandatory_flags + cxx_invalid_flags
@@ -27,7 +27,7 @@
27
27
  linker.library_paths = []
28
28
  linker.option_library = '-l%s'
29
29
  linker.option_library_path = '-L%s'
30
- linker.link_options = '%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
30
+ linker.link_options = '%{flags} -o "%{outfile}" %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
31
31
  end
32
32
 
33
33
  [[conf.cc, 'c'], [conf.cxx, 'c++']].each do |cc, lang|
@@ -5,18 +5,18 @@
5
5
  cc.command = ENV['TARGET_CC']
6
6
  cc.flags = ENV['TARGET_CFLAGS']
7
7
  cc.include_paths = ["#{MRUBY_ROOT}/include"]
8
- cc.option_include_path = '-I%s'
8
+ cc.option_include_path = %q[-I"%s"]
9
9
  cc.option_define = '-D%s'
10
- cc.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
10
+ cc.compile_options = %q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
11
11
  end
12
12
 
13
13
  [conf.cxx].each do |cxx|
14
14
  cxx.command = ENV['TARGET_CXX']
15
15
  cxx.flags = ENV['TARGET_CXXFLAGS']
16
16
  cxx.include_paths = ["#{MRUBY_ROOT}/include"]
17
- cxx.option_include_path = '-I%s'
17
+ cxx.option_include_path = %q[-I"%s"]
18
18
  cxx.option_define = '-D%s'
19
- cxx.compile_options = '%{flags} -MMD -o %{outfile} -c %{infile}'
19
+ cxx.compile_options = %q[%{flags} -MMD -o "%{outfile}" -c "%{infile}"]
20
20
  end
21
21
 
22
22
  conf.linker do |linker|
@@ -26,11 +26,11 @@
26
26
  linker.library_paths = []
27
27
  linker.option_library = '-l%s'
28
28
  linker.option_library_path = '-L%s'
29
- linker.link_options = '%{flags} -o %{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
29
+ linker.link_options = '%{flags} -o "%{outfile}" %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}'
30
30
  end
31
31
 
32
32
  conf.archiver do |archiver|
33
33
  archiver.command = ENV['TARGET_AR']
34
- archiver.archive_options = 'rs %{outfile} %{objs}'
34
+ archiver.archive_options = 'rs "%{outfile}" %{objs}'
35
35
  end
36
36
  end
@@ -4,9 +4,9 @@
4
4
  # C4013: implicit function declaration
5
5
  cc.flags = [ENV['CFLAGS'] || %w(/c /nologo /W3 /we4013 /Zi /MD /O2 /D_CRT_SECURE_NO_WARNINGS)]
6
6
  cc.defines = %w(MRB_STACK_EXTEND_DOUBLING)
7
- cc.option_include_path = '/I%s'
7
+ cc.option_include_path = %q[/I"%s"]
8
8
  cc.option_define = '/D%s'
9
- cc.compile_options = "%{flags} /Fo%{outfile} %{infile}"
9
+ cc.compile_options = %Q[%{flags} /Fo"%{outfile}" "%{infile}"]
10
10
  cc.cxx_compile_flag = '/TP'
11
11
  cc.cxx_exception_flag = '/EHs'
12
12
  end
@@ -15,9 +15,9 @@
15
15
  cxx.command = ENV['CXX'] || 'cl.exe'
16
16
  cxx.flags = [ENV['CXXFLAGS'] || ENV['CFLAGS'] || %w(/c /nologo /W3 /Zi /MD /O2 /EHs /D_CRT_SECURE_NO_WARNINGS)]
17
17
  cxx.defines = %w(MRB_STACK_EXTEND_DOUBLING)
18
- cxx.option_include_path = '/I%s'
18
+ cxx.option_include_path = %q[/I"%s"]
19
19
  cxx.option_define = '/D%s'
20
- cxx.compile_options = "%{flags} /Fo%{outfile} %{infile}"
20
+ cxx.compile_options = %Q[%{flags} /Fo"%{outfile}" "%{infile}"]
21
21
  cxx.cxx_compile_flag = '/TP'
22
22
  cxx.cxx_exception_flag = '/EHs'
23
23
  end
@@ -29,22 +29,22 @@
29
29
  linker.library_paths = %w()
30
30
  linker.option_library = '%s.lib'
31
31
  linker.option_library_path = '/LIBPATH:%s'
32
- linker.link_options = "%{flags} /OUT:%{outfile} %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}"
32
+ linker.link_options = %Q[%{flags} /OUT:"%{outfile}" %{objs} %{flags_before_libraries} %{libs} %{flags_after_libraries}]
33
33
  end
34
34
 
35
35
  conf.archiver do |archiver|
36
36
  archiver.command = ENV['AR'] || 'lib.exe'
37
- archiver.archive_options = '/nologo /OUT:%{outfile} %{objs}'
37
+ archiver.archive_options = '/nologo /OUT:"%{outfile}" %{objs}'
38
38
  end
39
39
 
40
40
  conf.yacc do |yacc|
41
41
  yacc.command = ENV['YACC'] || 'bison.exe'
42
- yacc.compile_options = '-o %{outfile} %{infile}'
42
+ yacc.compile_options = %q[-o "%{outfile}" "%{infile}"]
43
43
  end
44
44
 
45
45
  conf.gperf do |gperf|
46
46
  gperf.command = 'gperf.exe'
47
- gperf.compile_options = '-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" %{infile} > %{outfile}'
47
+ gperf.compile_options = %q[-L ANSI-C -C -p -j1 -i 1 -g -o -t -N mrb_reserved_word -k"1,3,$" "%{infile}" > "%{outfile}"]
48
48
  end
49
49
 
50
50
  conf.exts do |exts|
@@ -56,7 +56,9 @@ def assertion_string(err, str, iso=nil, e=nil, bt=nil)
56
56
  msg = "#{err}#{str}"
57
57
  msg += " [#{iso}]" if iso && !iso.empty?
58
58
  msg += " => #{e}" if e && !e.to_s.empty?
59
- msg += " (#{GEMNAME == 'mruby-test' ? 'core' : "mrbgems: #{GEMNAME}"})"
59
+ if Object.const_defined?(:GEMNAME)
60
+ msg += " (#{GEMNAME == 'mruby-test' ? 'core' : "mrbgems: #{GEMNAME}"})"
61
+ end
60
62
  if $mrbtest_assert
61
63
  $mrbtest_assert.each do |idx, assert_msg, diff|
62
64
  msg += "\n - Assertion[#{idx}]"
@@ -64,7 +66,7 @@ def assertion_string(err, str, iso=nil, e=nil, bt=nil)
64
66
  msg += "\n#{diff}" if diff && !diff.empty?
65
67
  end
66
68
  end
67
- msg += "\nbacktrace:\n #{bt.join("\n ")}" if bt
69
+ msg += "\nbacktrace:\n #{bt.join("\n ")}" if bt && !bt.empty?
68
70
  msg
69
71
  end
70
72
 
@@ -122,8 +124,7 @@ class << $mrbtest_assert_idx
122
124
  $mrbtest_child_noassert[-2] += 1
123
125
  t_print('?')
124
126
  rescue Exception => e
125
- bt = e.backtrace if $mrbtest_verbose
126
- $asserts.push(assertion_string("#{e.class}: ", str, iso, e, bt))
127
+ $asserts.push(assertion_string("#{e.class}: ", str, iso, e, e.backtrace))
127
128
  $kill_test += 1
128
129
  t_print('X')
129
130
  ensure
@@ -1,16 +1,16 @@
1
1
  ##
2
2
  # ensure Test
3
3
 
4
- assert('ensure - context - yield') do
5
- class EnsureYieldBreak
6
- attr_reader :ensure_context
7
- def try
8
- yield
9
- ensure
10
- @ensure_context = self
11
- end
4
+ class EnsureYieldBreak
5
+ attr_reader :ensure_context
6
+ def try
7
+ yield
8
+ ensure
9
+ @ensure_context = self
12
10
  end
11
+ end
13
12
 
13
+ assert('ensure - context - yield') do
14
14
  yielder = EnsureYieldBreak.new
15
15
  yielder.try do
16
16
  end
@@ -18,15 +18,6 @@ def try
18
18
  end
19
19
 
20
20
  assert('ensure - context - yield and break') do
21
- class EnsureYieldBreak
22
- attr_reader :ensure_context
23
- def try
24
- yield
25
- ensure
26
- @ensure_context = self
27
- end
28
- end
29
-
30
21
  yielder = EnsureYieldBreak.new
31
22
  yielder.try do
32
23
  break
@@ -35,15 +26,6 @@ def try
35
26
  end
36
27
 
37
28
  assert('ensure - context - yield and return') do
38
- class EnsureYieldBreak
39
- attr_reader :ensure_context
40
- def try
41
- yield
42
- ensure
43
- @ensure_context = self
44
- end
45
- end
46
-
47
29
  yielder = EnsureYieldBreak.new
48
30
  lambda do
49
31
  yielder.try do
@@ -400,7 +400,7 @@ def backtrace_available?
400
400
  end
401
401
  rescue => exception
402
402
  GC.start
403
- assert_equal("#{__FILE__}:#{line}:in call",
403
+ assert_equal("#{__FILE__}:#{line}",
404
404
  exception.backtrace.first)
405
405
  end
406
406
  end
@@ -418,7 +418,7 @@ def backtrace_available?
418
418
  rescue => exception
419
419
  [3].each do
420
420
  end
421
- assert_equal("#{__FILE__}:#{line}:in call",
421
+ assert_equal("#{__FILE__}:#{line}",
422
422
  exception.backtrace.first)
423
423
  end
424
424
  end
@@ -29,7 +29,7 @@ def bg_try(&b)
29
29
  end
30
30
  end
31
31
 
32
- # Kernel.eval is provided by the mruby-gem mrbgem. '15.3.1.2.3'
32
+ # Kernel.eval is provided by the mruby-eval mrbgem. '15.3.1.2.3'
33
33
 
34
34
  assert('Kernel.iterator?', '15.3.1.2.5') do
35
35
  assert_false Kernel.iterator?
@@ -59,20 +59,11 @@ def bg_try(&b)
59
59
  assert_equal 100, i
60
60
  end
61
61
 
62
- assert('Kernel.p', '15.3.1.2.9') do
63
- # TODO search for a way to test p to stdio
64
- assert_true true
65
- end
62
+ # Kernel.p is provided by the mruby-print mrbgem. '15.3.1.2.9'
66
63
 
67
- assert('Kernel.print', '15.3.1.2.10') do
68
- # TODO search for a way to test print to stdio
69
- assert_true true
70
- end
64
+ # Kernel.print is provided by the mruby-print mrbgem. '15.3.1.2.10'
71
65
 
72
- assert('Kernel.puts', '15.3.1.2.11') do
73
- # TODO search for a way to test puts to stdio
74
- assert_true true
75
- end
66
+ # Kernel.puts is provided by the mruby-print mrbgem. '15.3.1.2.11'
76
67
 
77
68
  assert('Kernel.raise', '15.3.1.2.12') do
78
69
  assert_raise RuntimeError do
@@ -100,6 +91,10 @@ def bg_try(&b)
100
91
  assert_true __send__(:respond_to?, :nil?)
101
92
  # test without argument and without block
102
93
  assert_equal String, __send__(:to_s).class
94
+
95
+ args = [:respond_to?, :nil?]
96
+ assert_true __send__(*args)
97
+ assert_equal [:respond_to?, :nil?], args
103
98
  end
104
99
 
105
100
  assert('Kernel#block_given?', '15.3.1.3.6') do
@@ -121,6 +116,13 @@ def bg_try(&b)
121
116
  "block"
122
117
  end
123
118
  end
119
+
120
+ def bg_try_in_block
121
+ -> { block_given? }[]
122
+ end
123
+
124
+ assert_false bg_try_in_block
125
+ assert_true bg_try_in_block{}
124
126
  end
125
127
 
126
128
  assert('Kernel#class', '15.3.1.3.7') do
@@ -197,17 +199,6 @@ def a.test
197
199
  a.set(2)
198
200
  c = a.dup
199
201
 
200
- immutables = [ 1, :foo, true, false, nil ]
201
- error_count = 0
202
- immutables.each do |i|
203
- begin
204
- i.dup
205
- rescue TypeError
206
- error_count += 1
207
- end
208
- end
209
-
210
- assert_equal immutables.size, error_count
211
202
  assert_equal 2, a.get
212
203
  assert_equal 1, b.get
213
204
  assert_equal 2, c.get
@@ -1,17 +1,3 @@
1
- MRuby::Build.new('debug') do |conf|
2
- toolchain :gcc
3
- enable_debug
4
-
5
- # include all core GEMs
6
- conf.gembox 'full-core'
7
- conf.cc.flags += %w(-Werror=declaration-after-statement)
8
- conf.compilers.each do |c|
9
- c.defines += %w(MRB_GC_STRESS MRB_GC_FIXED_ARENA MRB_METHOD_CACHE)
10
- end
11
-
12
- build_mrbc_exec
13
- end
14
-
15
1
  MRuby::Build.new('full-debug') do |conf|
16
2
  toolchain :gcc
17
3
  enable_debug
@@ -0,0 +1,56 @@
1
+ #!/bin/sh
2
+
3
+ usage()
4
+ {
5
+ cat <<EOL
6
+ -b - 32-bit or 64-bit library, maybe 32, 64 or both
7
+ -t - the toolset, maybe gcc, clang or both
8
+ EOL
9
+ }
10
+
11
+ build_boost()
12
+ {
13
+ BASE=`pwd`/..
14
+ ./b2 -j4 --toolset=$1 --prefix=${BASE}/usr --libdir="${BASE}/usr/$1/lib$2" --with-chrono --with-context --with-filesystem --with-system --with-timer address-model=$2 install
15
+ }
16
+
17
+ bit="64"
18
+ toolset="gcc"
19
+
20
+ while getopts "b:t:" c; do
21
+ case "$c" in
22
+ b)
23
+ bit="$OPTARG"
24
+ [ "$bit" != "32" ] && [ "$bit" != "64" ] && [ "$bit" != "both" ] && usage && exit 1
25
+ ;;
26
+ t)
27
+ toolset="$OPTARG"
28
+ [ "$toolset" != "gcc" ] && [ "$toolset" != "clang" ] && [ "$toolset" != "both" ] && usage && exit 1
29
+ ;;
30
+ ?*)
31
+ echo "invalid arguments." && exit 1
32
+ ;;
33
+ esac
34
+ done
35
+
36
+ wget https://dl.bintray.com/boostorg/release/1.71.0/source/boost_1_71_0.tar.bz2
37
+ tar xf boost_1_71_0.tar.bz2
38
+ cd boost_1_71_0
39
+ ./bootstrap.sh
40
+
41
+ build()
42
+ {
43
+ if [ "$bit" = "both" ]; then
44
+ build_boost $1 32
45
+ build_boost $1 64
46
+ else
47
+ build_boost $1 $bit
48
+ fi
49
+ }
50
+
51
+ if [ "$toolset" = "both" ]; then
52
+ build gcc
53
+ build clang
54
+ else
55
+ build $toolset
56
+ fi
@@ -0,0 +1,62 @@
1
+ name: coverage
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+ push:
7
+ branches:
8
+ - master
9
+ tags:
10
+ - '*'
11
+
12
+ jobs:
13
+
14
+ codecov:
15
+ timeout-minutes: 30
16
+ runs-on: ubuntu-latest
17
+
18
+ steps:
19
+ - uses: actions/checkout@v1
20
+ - name: install depends
21
+ run: |
22
+ sudo apt-get update
23
+ sudo apt-get install g++-multilib lcov
24
+ - name: Cache boost
25
+ id: cache-boost
26
+ uses: actions/cache@v1
27
+ with:
28
+ path: usr
29
+ key: ${{ runner.os }}-boost-20200107
30
+ - name: Build boost
31
+ if: steps.cache-boost.outputs.cache-hit != 'true'
32
+ run: ./.github/depends/boost.sh -b both -t gcc
33
+ - name: Compile tests
34
+ run: |
35
+ # install gtest
36
+ BASE=`pwd`
37
+ wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
38
+ unzip -q googletest-release-1.7.0.zip
39
+ cd googletest-release-1.7.0
40
+ g++ -m64 src/gtest-all.cc -I. -Iinclude -c -fPIC
41
+ g++ -m64 src/gtest_main.cc -I. -Iinclude -c -fPIC
42
+ ar -rv libgtest.a gtest-all.o
43
+ ar -rv libgtest_main.a gtest_main.o
44
+ mkdir -p ${BASE}/usr/include
45
+ cp -r include/gtest ${BASE}/usr/include
46
+ mkdir -p ${BASE}/usr/lib
47
+ mv *.a ${BASE}/usr/lib
48
+ cd ..
49
+
50
+ mkdir build && cd build
51
+ CMAKE_LIBRARY_PATH="${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib64/cmake" cmake -DMSGPACK_CXX17=ON -DMSGPACK_32BIT=OFF -DMSGPACK_BOOST=ON -DBUILD_SHARED_LIBS=ON -DMSGPACK_CHAR_SIGN=signed -DMSGPACK_USE_X3_PARSE=ON -DMSGPACK_ENABLE_CXX=ON -DMSGPACK_BUILD_EXAMPLES=ON -DMSGPACK_BUILD_TESTS=ON -DCMAKE_BUILD_TYPE=Debug -DMSGPACK_GEN_COVERAGE=ON ..
52
+ make -j4
53
+ make test
54
+ - name: Upload coverage to Codecov
55
+ working-directory: build
56
+ run: |
57
+ # Create lcov report
58
+ lcov --capture --directory . --output-file coverage.info
59
+ lcov --remove coverage.info '/usr/*' --output-file coverage.info # filter system-files
60
+ lcov --list coverage.info # debug info
61
+ # Uploading report to CodeCov
62
+ bash <(curl -s https://codecov.io/bash) -f coverage.info || echo "Codecov did not collect coverage reports"
@@ -0,0 +1,304 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ types: [opened, synchronize]
6
+ push:
7
+ branches:
8
+ - master
9
+ tags:
10
+ - '*'
11
+
12
+ jobs:
13
+ macos:
14
+ runs-on: macos-latest
15
+ strategy:
16
+ matrix:
17
+ pattern: [0, 1, 2, 3]
18
+ steps:
19
+ - uses: actions/checkout@v1
20
+ - name: Cache boost
21
+ id: cache-boost
22
+ uses: actions/cache@v1
23
+ with:
24
+ path: usr
25
+ key: ${{ runner.os }}-boost-20200107
26
+ - name: Build boost
27
+ if: steps.cache-boost.outputs.cache-hit != 'true'
28
+ run: ./.github/depends/boost.sh -b 64 -t clang
29
+ - name: build and test
30
+ env:
31
+ CC: clang
32
+ CXX: clang++
33
+ shell: bash
34
+ run: |
35
+ BASE=`pwd`;
36
+
37
+ # matrix config
38
+ if [ ${{ matrix.pattern }} == 0 ]; then
39
+ ACTION="ci/build_cmake.sh"
40
+ export CXX17="ON"
41
+ export ARCH="64"
42
+ export BOOST="ON"
43
+ SHARED="ON"
44
+ export CHAR_SIGN="unsigned"
45
+ export API_VERSION="1"
46
+ fi
47
+ if [ ${{ matrix.pattern }} == 1 ]; then
48
+ ACTION="ci/build_cmake.sh"
49
+ export CXX17="ON"
50
+ export ARCH="64"
51
+ export BOOST="ON"
52
+ export SHARED="ON"
53
+ export CHAR_SIGN="signed"
54
+ export API_VERSION="3"
55
+ fi
56
+ if [ ${{ matrix.pattern }} == 2 ]; then
57
+ ACTION="ci/build_cmake.sh"
58
+ export CXX17="ON"
59
+ export ARCH="64"
60
+ export SHARED="ON"
61
+ export CHAR_SIGN="signed"
62
+ export API_VERSION="2"
63
+ fi
64
+ if [ ${{ matrix.pattern }} == 3 ]; then
65
+ ACTION="ci/build_cmake.sh"
66
+ export ARCH="64"
67
+ export SHARED="ON"
68
+ export CHAR_SIGN="unsigned"
69
+ export API_VERSION="2"
70
+ fi
71
+
72
+ # install gtest
73
+ wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
74
+ unzip -q googletest-release-1.7.0.zip
75
+ cd googletest-release-1.7.0
76
+ $CXX -m${ARCH} src/gtest-all.cc -I. -Iinclude -c
77
+ $CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c
78
+ ar -rv libgtest.a gtest-all.o
79
+ ar -rv libgtest_main.a gtest_main.o
80
+ mkdir -p ${BASE}/usr/include
81
+ cp -r include/gtest ${BASE}/usr/include
82
+ mkdir -p ${BASE}/usr/lib
83
+ mv *.a ${BASE}/usr/lib
84
+ cd ..
85
+
86
+ # build and test
87
+ CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/clang/lib${ARCH}/cmake" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" ${ACTION}
88
+ cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2
89
+
90
+ linux:
91
+ runs-on: ubuntu-18.04
92
+ strategy:
93
+ matrix:
94
+ pattern: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
95
+ steps:
96
+ - uses: actions/checkout@v1
97
+ - name: install depends
98
+ run: |
99
+ sudo apt-get update
100
+ sudo apt-get install g++-multilib clang-8 valgrind
101
+ - name: Cache boost
102
+ id: cache-boost
103
+ uses: actions/cache@v1
104
+ with:
105
+ path: usr
106
+ key: ${{ runner.os }}-boost-20200107
107
+ - name: Build boost
108
+ if: steps.cache-boost.outputs.cache-hit != 'true'
109
+ run: ./.github/depends/boost.sh -b both -t gcc
110
+ - name: build and test
111
+ shell: bash
112
+ run: |
113
+ BASE=`pwd`;
114
+
115
+ # matrix config
116
+ if [ ${{ matrix.pattern }} == 0 ]; then
117
+ export CC=clang
118
+ export CXX=clang++
119
+ ACTION="ci/build_cmake.sh"
120
+ export ARCH="64"
121
+ export BOOST="ON"
122
+ export SHARED="ON"
123
+ export CHAR_SIGN="unsigned"
124
+ export API_VERSION="2"
125
+ fi
126
+ if [ ${{ matrix.pattern }} == 1 ]; then
127
+ export CC=clang
128
+ export CXX=clang++
129
+ ACTION="ci/build_cmake.sh"
130
+ export ARCH="32"
131
+ export SHARED="ON"
132
+ export CHAR_SIGN="signed"
133
+ export API_VERSION="2"
134
+ fi
135
+ if [ ${{ matrix.pattern }} == 2 ]; then
136
+ export CC=clang
137
+ export CXX=clang++
138
+ ACTION="ci/build_cmake.sh"
139
+ export CXX17="ON"
140
+ export ARCH="64"
141
+ export BOOST="ON"
142
+ export SHARED="ON"
143
+ export CHAR_SIGN="signed"
144
+ export API_VERSION="3"
145
+ export X3_PARSE="ON"
146
+ fi
147
+ if [ ${{ matrix.pattern }} == 3 ]; then
148
+ export CC=clang
149
+ export CXX=clang++
150
+ ACTION="ci/build_cmake.sh"
151
+ export CXX17="ON"
152
+ export ARCH="32"
153
+ export SHARED="OFF"
154
+ export CHAR_SIGN="unsigned"
155
+ export API_VERSION="2"
156
+ fi
157
+ if [ ${{ matrix.pattern }} == 4 ]; then
158
+ export CC=gcc
159
+ export CXX=g++
160
+ ACTION="ci/build_cmake.sh"
161
+ export CXX17="ON"
162
+ export ARCH="64"
163
+ export SHARED="ON"
164
+ export CHAR_SIGN="signed"
165
+ export API_VERSION="2"
166
+ fi
167
+ if [ ${{ matrix.pattern }} == 5 ]; then
168
+ export CC=gcc
169
+ export CXX=g++
170
+ ACTION="ci/build_cmake.sh"
171
+ export CXX17="ON"
172
+ export ARCH="32"
173
+ export BOOST="ON"
174
+ export SHARED="ON"
175
+ export CHAR_SIGN="unsigned"
176
+ export API_VERSION="3"
177
+ export X3_PARSE="ON"
178
+ fi
179
+ if [ ${{ matrix.pattern }} == 6 ]; then
180
+ export CC=gcc
181
+ export CXX=g++
182
+ ACTION="ci/build_cmake.sh"
183
+ export ARCH="64"
184
+ export SHARED="ON"
185
+ export CHAR_SIGN="unsigned"
186
+ export API_VERSION="2"
187
+ fi
188
+ if [ ${{ matrix.pattern }} == 7 ]; then
189
+ export CC=gcc
190
+ export CXX=g++
191
+ ACTION="ci/build_cmake.sh"
192
+ export ARCH="32"
193
+ export BOOST="ON"
194
+ export SHARED="OFF"
195
+ export CHAR_SIGN="signed"
196
+ export API_VERSION="1"
197
+ fi
198
+ if [ ${{ matrix.pattern }} == 8 ]; then
199
+ export CC=gcc
200
+ export CXX=g++
201
+ ACTION="ci/build_cmake.sh"
202
+ export ARCH="32"
203
+ export BOOST="ON"
204
+ export SHARED="OFF"
205
+ export CHAR_SIGN="signed"
206
+ export API_VERSION="2"
207
+ fi
208
+ if [ ${{ matrix.pattern }} == 9 ]; then
209
+ export CC=clang
210
+ export CXX=clang++
211
+ ACTION="ci/build_regression.sh"
212
+ export ARCH="64"
213
+ export SAN="UBSAN"
214
+ export MSGPACK_FUZZ_REGRESSION="ON"
215
+ export CTEST_OUTPUT_ON_FAILURE=1
216
+ fi
217
+ if [ ${{ matrix.pattern }} == 10 ]; then
218
+ export CC=clang
219
+ export CXX=clang++
220
+ ACTION="ci/build_regression.sh"
221
+ export ARCH="64"
222
+ export SAN="ASAN"
223
+ export MSGPACK_FUZZ_REGRESSION="ON"
224
+ export CTEST_OUTPUT_ON_FAILURE=1
225
+ fi
226
+ if [ ${{ matrix.pattern }} == 11 ]; then
227
+ export CC=gcc
228
+ export CXX=g++
229
+ ACTION="ci/build_cmake_embedded.sh"
230
+ export ARCH="64"
231
+ fi
232
+
233
+ # install gtest
234
+ wget https://github.com/google/googletest/archive/release-1.7.0.zip -O googletest-release-1.7.0.zip
235
+ unzip -q googletest-release-1.7.0.zip
236
+ cd googletest-release-1.7.0
237
+ $CXX -m${ARCH} src/gtest-all.cc -I. -Iinclude -c -fPIC
238
+ $CXX -m${ARCH} src/gtest_main.cc -I. -Iinclude -c -fPIC
239
+ ar -rv libgtest.a gtest-all.o
240
+ ar -rv libgtest_main.a gtest_main.o
241
+ mkdir -p ${BASE}/usr/include
242
+ cp -r include/gtest ${BASE}/usr/include
243
+ mkdir -p ${BASE}/usr/lib
244
+ mv *.a ${BASE}/usr/lib
245
+ cd ..
246
+
247
+ # install zlib
248
+ if [ ${ARCH} == 32 ]; then
249
+ sudo apt-get install lib32z1-dev
250
+ fi
251
+
252
+ # build and test
253
+ CMAKE_CXX_COMPILER="${CXX}" CMAKE_C_COMPILER="${CC}" CMAKE_LIBRARY_PATH="${BASE}/usr/lib:${BASE}/build" GTEST_ROOT="${BASE}/usr" CMAKE_PREFIX_PATH="${BASE}/usr/gcc/lib${ARCH}/cmake" CFLAGS="-Werror -g" CXXFLAGS="-Werror -g" MSGPACK_SAN="${SAN}" ${ACTION}
254
+ cat Files.cmake| grep ".*\.[h|hpp]" | perl -pe 's/ //g' | sort > tmp1 && find include -name "*.h" -o -name "*.hpp" | sort > tmp2 && diff tmp1 tmp2
255
+ windows:
256
+ runs-on: windows-2016
257
+ strategy:
258
+ matrix:
259
+ pattern: [0, 1, 2, 3]
260
+ steps:
261
+ - uses: actions/checkout@v1
262
+ - name: Cache vcpkg
263
+ id: cache-vcpkg
264
+ uses: actions/cache@v1.0.3
265
+ with:
266
+ path: C:/vcpkg/installed/x64-windows
267
+ key: ${{ runner.os }}-vcpkg
268
+ - name: Build dependencies
269
+ if: steps.cache-vcpkg.outputs.cache-hit != 'true'
270
+ shell: powershell
271
+ run: |
272
+ vcpkg install gtest:x64-windows
273
+ vcpkg install zlib:x64-windows
274
+ - name: Build and test
275
+ shell: powershell
276
+ run: |
277
+ if (${{ matrix.pattern }} -eq 0) {
278
+ $CPP11="-DMSGPACK_CXX11=OFF"
279
+ $BOOST="-DMSGPACK_BOOST=OFF"
280
+ }
281
+ if (${{ matrix.pattern }} -eq 1) {
282
+ $CPP11="-DMSGPACK_CXX11=OFF"
283
+ $BOOST="-DMSGPACK_BOOST=ON"
284
+ }
285
+ if (${{ matrix.pattern }} -eq 2) {
286
+ $CPP11="-DMSGPACK_CXX11=ON"
287
+ $BOOST="-DMSGPACK_BOOST=OFF"
288
+ }
289
+ if (${{ matrix.pattern }} -eq 3) {
290
+ $CPP11="-DMSGPACK_CXX11=ON"
291
+ $BOOST="-DMSGPACK_BOOST=ON"
292
+ }
293
+
294
+ $CUR=(Get-Location).Path
295
+ md build
296
+ cd build
297
+ cmake -A x64 -DBOOST_ROOT="$env:BOOST_ROOT_1_72_0" -DCMAKE_TOOLCHAIN_FILE="C:/vcpkg/scripts/buildsystems/vcpkg.cmake" $CPP11 $BOOST "-DCMAKE_CXX_FLAGS=/D_VARIADIC_MAX=10 /EHsc /D_SILENCE_TR1_NAMESPACE_DEPRECATION_WARNING" ..
298
+ if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }
299
+ cmake --build . --config Release
300
+ $pathbak="$env:PATH"
301
+ $env:PATH="C:\vcpkg\installed\x64-windows\bin;$CUR\build\Release;$pathbak"
302
+ ctest -V
303
+ if ($LastExitCode -ne 0) { $host.SetShouldExit($LastExitCode) }
304
+ $env:PATH=$pathbak