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
@@ -25,6 +25,12 @@ bool msgpack_vrefbuffer_init(msgpack_vrefbuffer* vbuf,
25
25
  struct iovec* array;
26
26
  msgpack_vrefbuffer_chunk* chunk;
27
27
 
28
+ if (ref_size == 0) {
29
+ ref_size = MSGPACK_VREFBUFFER_REF_SIZE;
30
+ }
31
+ if(chunk_size == 0) {
32
+ chunk_size = MSGPACK_VREFBUFFER_CHUNK_SIZE;
33
+ }
28
34
  vbuf->chunk_size = chunk_size;
29
35
  vbuf->ref_size =
30
36
  ref_size > MSGPACK_PACKER_MAX_BUFFER_SIZE + 1 ?
@@ -7,73 +7,85 @@ INCLUDE_DIRECTORIES (
7
7
  ${ZLIB_INCLUDE_DIRS}
8
8
  )
9
9
 
10
- LIST (APPEND check_PROGRAMS
11
- array_ref.cpp
12
- buffer.cpp
13
- carray.cpp
14
- cases.cpp
15
- convert.cpp
16
- fixint.cpp
10
+ SET (tests_C
11
+ buffer_c.cpp
17
12
  fixint_c.cpp
18
- inc_adaptor_define.cpp
19
- json.cpp
20
- limit.cpp
21
- msgpack_basic.cpp
22
13
  msgpack_c.cpp
23
- msgpack_container.cpp
24
- msgpack_stream.cpp
25
- msgpack_tuple.cpp
26
- msgpack_vref.cpp
27
- object.cpp
28
- object_with_zone.cpp
29
- pack_unpack.cpp
30
14
  pack_unpack_c.cpp
31
- raw.cpp
32
- reference.cpp
33
- size_equal_only.cpp
34
- streaming.cpp
35
15
  streaming_c.cpp
36
- user_class.cpp
37
- version.cpp
38
- visitor.cpp
39
- zone.cpp
40
16
  )
41
17
 
42
- IF (MSGPACK_BOOST)
18
+ IF (NOT MSGPACK_CXX_ONLY)
43
19
  LIST (APPEND check_PROGRAMS
44
- boost_fusion.cpp
45
- boost_variant.cpp
46
- boost_optional.cpp
47
- boost_string_ref.cpp
48
- boost_string_view.cpp
20
+ ${tests_C}
49
21
  )
50
22
  ENDIF ()
51
23
 
52
- IF (MSGPACK_USE_X3_PARSE)
24
+ IF (MSGPACK_ENABLE_CXX)
53
25
  LIST (APPEND check_PROGRAMS
54
- msgpack_x3_parse.cpp
26
+ array_ref.cpp
27
+ buffer.cpp
28
+ carray.cpp
29
+ cases.cpp
30
+ convert.cpp
31
+ fixint.cpp
32
+ inc_adaptor_define.cpp
33
+ json.cpp
34
+ limit.cpp
35
+ msgpack_basic.cpp
36
+ msgpack_container.cpp
37
+ msgpack_stream.cpp
38
+ msgpack_tuple.cpp
39
+ msgpack_vref.cpp
40
+ object.cpp
41
+ object_with_zone.cpp
42
+ pack_unpack.cpp
43
+ raw.cpp
44
+ reference.cpp
45
+ size_equal_only.cpp
46
+ streaming.cpp
47
+ user_class.cpp
48
+ version.cpp
49
+ visitor.cpp
50
+ zone.cpp
55
51
  )
56
- ENDIF ()
57
52
 
58
- IF (MSGPACK_CXX11)
59
- LIST (APPEND check_PROGRAMS
60
- iterator_cpp11.cpp
61
- msgpack_cpp11.cpp
62
- reference_cpp11.cpp
63
- reference_wrapper_cpp11.cpp
64
- shared_ptr_cpp11.cpp
65
- unique_ptr_cpp11.cpp
53
+ IF (MSGPACK_BOOST)
54
+ LIST (APPEND check_PROGRAMS
55
+ boost_fusion.cpp
56
+ boost_variant.cpp
57
+ boost_optional.cpp
58
+ boost_string_ref.cpp
59
+ boost_string_view.cpp
60
+ )
61
+ ENDIF ()
66
62
 
67
- # fuzzers are cpp11 only
68
- fuzz_unpack_pack_fuzzer_cpp11.cpp
69
- )
70
- ENDIF ()
63
+ IF (MSGPACK_USE_X3_PARSE)
64
+ LIST (APPEND check_PROGRAMS
65
+ msgpack_x3_parse.cpp
66
+ )
67
+ ENDIF ()
71
68
 
72
- IF (MSGPACK_CXX17)
73
- LIST (APPEND check_PROGRAMS
74
- msgpack_cpp17.cpp
75
- )
76
- ENDIF ()
69
+ IF (MSGPACK_CXX11 OR MSGPACK_CXX17)
70
+ LIST (APPEND check_PROGRAMS
71
+ iterator_cpp11.cpp
72
+ msgpack_cpp11.cpp
73
+ reference_cpp11.cpp
74
+ reference_wrapper_cpp11.cpp
75
+ shared_ptr_cpp11.cpp
76
+ unique_ptr_cpp11.cpp
77
+
78
+ # fuzzers are cpp11 only
79
+ fuzz_unpack_pack_fuzzer_cpp11.cpp
80
+ )
81
+ ENDIF ()
82
+
83
+ IF (MSGPACK_CXX17)
84
+ LIST (APPEND check_PROGRAMS
85
+ msgpack_cpp17.cpp
86
+ )
87
+ ENDIF ()
88
+ ENDIF (MSGPACK_ENABLE_CXX)
77
89
 
78
90
  FOREACH (source_file ${check_PROGRAMS})
79
91
  GET_FILENAME_COMPONENT (source_file_we ${source_file} NAME_WE)
@@ -81,8 +93,16 @@ FOREACH (source_file ${check_PROGRAMS})
81
93
  ${source_file_we}
82
94
  ${source_file}
83
95
  )
96
+
97
+ LIST (FIND tests_C ${source_file} idx)
98
+ IF (idx GREATER -1)
99
+ SET (link_target msgpackc)
100
+ ELSE ()
101
+ SET (link_target msgpackc-cxx)
102
+ ENDIF ()
103
+
84
104
  TARGET_LINK_LIBRARIES (${source_file_we}
85
- msgpackc
105
+ ${link_target}
86
106
  ${GTEST_BOTH_LIBRARIES}
87
107
  ${ZLIB_LIBRARIES}
88
108
  ${CMAKE_THREAD_LIBS_INIT}
@@ -96,20 +116,22 @@ FOREACH (source_file ${check_PROGRAMS})
96
116
  ENDIF ()
97
117
 
98
118
  IF ("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
99
- IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4] /WX")
119
+ IF (CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
100
120
  STRING(REGEX REPLACE "/W[0-4]" "/W3 /WX" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
101
121
  ELSE ()
102
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3")
122
+ SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /WX")
103
123
  ENDIF ()
104
124
  ENDIF ()
105
125
  ENDFOREACH ()
106
126
 
107
- ADD_EXECUTABLE (
108
- multi_file
109
- multi_file1.cpp multi_file2.cpp
110
- )
111
- TARGET_INCLUDE_DIRECTORIES (multi_file
112
- PRIVATE
113
- $<TARGET_PROPERTY:msgpackc,INTERFACE_INCLUDE_DIRECTORIES>
114
- )
115
- ADD_TEST (multi_file multi_file)
127
+ IF (MSGPACK_ENABLE_CXX)
128
+ ADD_EXECUTABLE (
129
+ multi_file
130
+ multi_file1.cpp multi_file2.cpp
131
+ )
132
+ TARGET_INCLUDE_DIRECTORIES (multi_file
133
+ PRIVATE
134
+ $<TARGET_PROPERTY:msgpackc-cxx,INTERFACE_INCLUDE_DIRECTORIES>
135
+ )
136
+ ADD_TEST (multi_file multi_file)
137
+ ENDIF ()
@@ -3,12 +3,16 @@
3
3
  #include <string>
4
4
  #include <sstream>
5
5
 
6
+ #if defined(__GNUC__)
6
7
  #pragma GCC diagnostic push
7
8
  #pragma GCC diagnostic ignored "-Wconversion"
9
+ #endif //defined(__GNUC__)
8
10
 
9
11
  #include <gtest/gtest.h>
10
12
 
13
+ #if defined(__GNUC__)
11
14
  #pragma GCC diagnostic pop
15
+ #endif //defined(__GNUC__)
12
16
 
13
17
  #ifdef HAVE_CONFIG_H
14
18
  #include "config.h"
@@ -3,12 +3,16 @@
3
3
  #include <iterator>
4
4
  #include <cmath>
5
5
 
6
+ #if defined(__GNUC__)
6
7
  #pragma GCC diagnostic push
7
8
  #pragma GCC diagnostic ignored "-Wconversion"
9
+ #endif //defined(__GNUC__)
8
10
 
9
11
  #include <gtest/gtest.h>
10
12
 
13
+ #if defined(__GNUC__)
11
14
  #pragma GCC diagnostic pop
15
+ #endif //defined(__GNUC__)
12
16
 
13
17
  #ifdef HAVE_CONFIG_H
14
18
  #include "config.h"
@@ -2,12 +2,16 @@
2
2
  #include <sstream>
3
3
  #include <iterator>
4
4
 
5
+ #if defined(__GNUC__)
5
6
  #pragma GCC diagnostic push
6
7
  #pragma GCC diagnostic ignored "-Wconversion"
8
+ #endif //defined(__GNUC__)
7
9
 
8
10
  #include <gtest/gtest.h>
9
11
 
12
+ #if defined(__GNUC__)
10
13
  #pragma GCC diagnostic pop
14
+ #endif //defined(__GNUC__)
11
15
 
12
16
 
13
17
  #ifdef HAVE_CONFIG_H
@@ -2,13 +2,16 @@
2
2
  #include <sstream>
3
3
  #include <iterator>
4
4
 
5
+ #if defined(__GNUC__)
5
6
  #pragma GCC diagnostic push
6
7
  #pragma GCC diagnostic ignored "-Wconversion"
8
+ #endif //defined(__GNUC__)
7
9
 
8
10
  #include <gtest/gtest.h>
9
11
 
12
+ #if defined(__GNUC__)
10
13
  #pragma GCC diagnostic pop
11
-
14
+ #endif //defined(__GNUC__)
12
15
 
13
16
  #ifdef HAVE_CONFIG_H
14
17
  #include "config.h"
@@ -2,12 +2,16 @@
2
2
  #include <sstream>
3
3
  #include <iterator>
4
4
 
5
+ #if defined(__GNUC__)
5
6
  #pragma GCC diagnostic push
6
7
  #pragma GCC diagnostic ignored "-Wconversion"
8
+ #endif //defined(__GNUC__)
7
9
 
8
10
  #include <gtest/gtest.h>
9
11
 
12
+ #if defined(__GNUC__)
10
13
  #pragma GCC diagnostic pop
14
+ #endif //defined(__GNUC__)
11
15
 
12
16
  #ifdef HAVE_CONFIG_H
13
17
  #include "config.h"
@@ -3,12 +3,16 @@
3
3
  #include <sstream>
4
4
  #include <iterator>
5
5
 
6
+ #if defined(__GNUC__)
6
7
  #pragma GCC diagnostic push
7
8
  #pragma GCC diagnostic ignored "-Wconversion"
9
+ #endif //defined(__GNUC__)
8
10
 
9
11
  #include <gtest/gtest.h>
10
12
 
13
+ #if defined(__GNUC__)
11
14
  #pragma GCC diagnostic pop
15
+ #endif //defined(__GNUC__)
12
16
 
13
17
  #ifdef HAVE_CONFIG_H
14
18
  #include "config.h"
@@ -1,15 +1,17 @@
1
1
  #include <msgpack.hpp>
2
2
  #include <msgpack/fbuffer.hpp>
3
- #include <msgpack/fbuffer.h>
4
3
  #include <msgpack/zbuffer.hpp>
5
- #include <msgpack/zbuffer.h>
6
4
 
5
+ #if defined(__GNUC__)
7
6
  #pragma GCC diagnostic push
8
7
  #pragma GCC diagnostic ignored "-Wconversion"
8
+ #endif //defined(__GNUC__)
9
9
 
10
10
  #include <gtest/gtest.h>
11
11
 
12
+ #if defined(__GNUC__)
12
13
  #pragma GCC diagnostic pop
14
+ #endif //defined(__GNUC__)
13
15
 
14
16
  #include <string.h>
15
17
 
@@ -69,7 +71,6 @@ TEST(buffer, vrefbuffer)
69
71
  EXPECT_TRUE( memcmp(sbuf.data(), "aaa", 3) == 0 );
70
72
  }
71
73
 
72
-
73
74
  TEST(buffer, zbuffer)
74
75
  {
75
76
  msgpack::zbuffer zbuf;
@@ -81,22 +82,6 @@ TEST(buffer, zbuffer)
81
82
  zbuf.flush();
82
83
  }
83
84
 
84
-
85
- TEST(buffer, zbuffer_c)
86
- {
87
- msgpack_zbuffer zbuf;
88
- EXPECT_TRUE(msgpack_zbuffer_init(&zbuf, 1, MSGPACK_ZBUFFER_INIT_SIZE));
89
- EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
90
- EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
91
- EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
92
- EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "", 0));
93
-
94
- EXPECT_TRUE(msgpack_zbuffer_flush(&zbuf) != NULL);
95
-
96
- msgpack_zbuffer_destroy(&zbuf);
97
- }
98
-
99
-
100
85
  TEST(buffer, fbuffer)
101
86
  {
102
87
  #if defined(_MSC_VER)
@@ -124,31 +109,3 @@ TEST(buffer, fbuffer)
124
109
  EXPECT_EQ(EOF, fgetc(file));
125
110
  fclose(file);
126
111
  }
127
-
128
-
129
- TEST(buffer, fbuffer_c)
130
- {
131
- #if defined(_MSC_VER)
132
- FILE* file;
133
- tmpfile_s(&file);
134
- #else // defined(_MSC_VER)
135
- FILE* file = tmpfile();
136
- #endif // defined(_MSC_VER)
137
-
138
- void* fbuf = (void*)file;
139
-
140
- EXPECT_TRUE( file != NULL );
141
- EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
142
- EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
143
- EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
144
-
145
- fflush(file);
146
- rewind(file);
147
- for (size_t i=0; i < 3; ++i) {
148
- int ch = fgetc(file);
149
- EXPECT_TRUE(ch != EOF);
150
- EXPECT_EQ('a', (char) ch);
151
- }
152
- EXPECT_EQ(EOF, fgetc(file));
153
- fclose(file);
154
- }
@@ -0,0 +1,148 @@
1
+ #include <msgpack/fbuffer.h>
2
+ #include <msgpack/zbuffer.h>
3
+ #include <msgpack/sbuffer.h>
4
+ #include <msgpack/vrefbuffer.h>
5
+
6
+ #if defined(__GNUC__)
7
+ #pragma GCC diagnostic push
8
+ #pragma GCC diagnostic ignored "-Wconversion"
9
+ #endif //defined(__GNUC__)
10
+
11
+ #include <gtest/gtest.h>
12
+
13
+ #if defined(__GNUC__)
14
+ #pragma GCC diagnostic pop
15
+ #endif //defined(__GNUC__)
16
+
17
+ #include <string.h>
18
+
19
+ #if defined(unix) || defined(__unix) || defined(__linux__) || defined(__APPLE__) || defined(__OpenBSD__) || defined(__NetBSD__) || defined(__QNX__) || defined(__QNXTO__) || defined(__HAIKU__)
20
+ #define HAVE_SYS_UIO_H 1
21
+ #else
22
+ #define HAVE_SYS_UIO_H 0
23
+ #endif
24
+
25
+ TEST(buffer, zbuffer_c)
26
+ {
27
+ msgpack_zbuffer zbuf;
28
+ EXPECT_TRUE(msgpack_zbuffer_init(&zbuf, 1, MSGPACK_ZBUFFER_INIT_SIZE));
29
+ EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
30
+ EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
31
+ EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "a", 1));
32
+ EXPECT_EQ(0, msgpack_zbuffer_write(&zbuf, "", 0));
33
+
34
+ EXPECT_TRUE(msgpack_zbuffer_flush(&zbuf) != NULL);
35
+
36
+ msgpack_zbuffer_destroy(&zbuf);
37
+ }
38
+
39
+ TEST(buffer, fbuffer_c)
40
+ {
41
+ #if defined(_MSC_VER)
42
+ FILE* file;
43
+ tmpfile_s(&file);
44
+ #else // defined(_MSC_VER)
45
+ FILE* file = tmpfile();
46
+ #endif // defined(_MSC_VER)
47
+
48
+ void* fbuf = (void*)file;
49
+
50
+ EXPECT_TRUE( file != NULL );
51
+ EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
52
+ EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
53
+ EXPECT_EQ(0, msgpack_fbuffer_write(fbuf, "a", 1));
54
+
55
+ fflush(file);
56
+ rewind(file);
57
+ for (size_t i=0; i < 3; ++i) {
58
+ int ch = fgetc(file);
59
+ EXPECT_TRUE(ch != EOF);
60
+ EXPECT_EQ('a', (char) ch);
61
+ }
62
+ EXPECT_EQ(EOF, fgetc(file));
63
+ fclose(file);
64
+ }
65
+
66
+ TEST(buffer, sbuffer_c)
67
+ {
68
+ msgpack_sbuffer *sbuf;
69
+ char *data;
70
+
71
+ sbuf = msgpack_sbuffer_new();
72
+ EXPECT_TRUE(sbuf != NULL);
73
+ EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "a", 1));
74
+ EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "b", 1));
75
+ EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "c", 1));
76
+ EXPECT_EQ(0, msgpack_sbuffer_write(sbuf, "", 0));
77
+ EXPECT_EQ(3U, sbuf->size);
78
+ EXPECT_EQ(0, memcmp(sbuf->data, "abc", 3));
79
+ data = msgpack_sbuffer_release(sbuf);
80
+ EXPECT_EQ(0, memcmp(data, "abc", 3));
81
+ EXPECT_EQ(0U, sbuf->size);
82
+ EXPECT_TRUE(sbuf->data == NULL);
83
+
84
+ free(data);
85
+ msgpack_sbuffer_free(sbuf);
86
+ }
87
+
88
+ TEST(buffer, vrefbuffer_c)
89
+ {
90
+ const char *raw = "I was about to sail away in a junk,"
91
+ "When suddenly I heard"
92
+ "The sound of stamping and singing on the bank--"
93
+ "It was you and your friends come to bid me farewell."
94
+ "The Peach Flower Lake is a thousand fathoms deep,"
95
+ "But it cannot compare, O Wang Lun,"
96
+ "With the depth of your love for me.";
97
+ const size_t rawlen = strlen(raw);
98
+ msgpack_vrefbuffer *vbuf;
99
+ const int ref_size = 24, chunk_size = 128;
100
+ size_t slices[] = {0, 9, 10,
101
+ MSGPACK_VREFBUFFER_REF_SIZE,
102
+ MSGPACK_VREFBUFFER_REF_SIZE + 1,
103
+ ref_size, chunk_size + 1};
104
+ size_t iovcnt;
105
+ const iovec *iov;
106
+ size_t len = 0, i;
107
+ char *buf;
108
+
109
+ vbuf = msgpack_vrefbuffer_new(ref_size, 0);
110
+ for (i = 0; i < sizeof(slices) / sizeof(slices[0]); i++) {
111
+ msgpack_vrefbuffer_write(vbuf, raw + len, slices[i]);
112
+ len += slices[i];
113
+ }
114
+ EXPECT_LT(len, rawlen);
115
+ iov = msgpack_vrefbuffer_vec(vbuf);
116
+ iovcnt = msgpack_vrefbuffer_veclen(vbuf);
117
+
118
+ buf = (char *)malloc(rawlen);
119
+ #if HAVE_SYS_UIO_H
120
+ {
121
+ int fd;
122
+ char filename[] = "/tmp/mp.XXXXXX";
123
+
124
+ fd = mkstemp(filename);
125
+ EXPECT_LT(0, fd);
126
+ writev(fd, iov, (int)iovcnt);
127
+ len = (size_t)lseek(fd, 0, SEEK_END);
128
+ lseek(fd, 0, SEEK_SET);
129
+ read(fd, buf, len);
130
+ EXPECT_EQ(0, memcmp(buf, raw, len));
131
+ close(fd);
132
+ unlink(filename);
133
+ }
134
+ #else
135
+ {
136
+ len = 0;
137
+ for (i = 0; i < iovcnt; i++)
138
+ {
139
+ EXPECT_LT(len, rawlen);
140
+ memcpy(buf + len, iov[i].iov_base, iov[i].iov_len);
141
+ len += iov[i].iov_len;
142
+ }
143
+ EXPECT_EQ(0, memcmp(buf, raw, len));
144
+ }
145
+ #endif
146
+ free(buf);
147
+ msgpack_vrefbuffer_free(vbuf);
148
+ }