script_core 0.2.2 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
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