koffi 2.1.3 → 2.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (374) hide show
  1. package/ChangeLog.md +17 -0
  2. package/doc/contribute.md +5 -5
  3. package/doc/index.rst +1 -1
  4. package/doc/memory.md +1 -0
  5. package/doc/templates/badges.html +1 -1
  6. package/package.json +44 -68
  7. package/src/cnoke/LICENSE.txt +661 -0
  8. package/src/cnoke/README.md +97 -0
  9. package/src/cnoke/assets/FindCNoke.cmake +71 -0
  10. package/src/cnoke/assets/win_delay_hook.c +34 -0
  11. package/src/cnoke/cnoke.js +968 -0
  12. package/src/cnoke/package.json +25 -0
  13. package/{vendor → src/core}/libcc/libcc.cc +38 -11
  14. package/{vendor → src/core}/libcc/libcc.hh +4 -2
  15. package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
  16. package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
  17. package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
  18. package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
  19. package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
  20. package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
  21. package/src/koffi/benchmark/benchmark.js +118 -0
  22. package/src/koffi/benchmark/rand_koffi.js +52 -0
  23. package/src/koffi/benchmark/rand_napi.cc +69 -0
  24. package/src/koffi/benchmark/rand_napi.js +47 -0
  25. package/src/koffi/benchmark/rand_node_ffi.js +55 -0
  26. package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
  27. package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
  28. package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
  29. package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
  30. package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
  31. package/src/koffi/build/2.1.5/koffi_darwin_arm64.tar.gz +0 -0
  32. package/src/koffi/build/2.1.5/koffi_darwin_x64.tar.gz +0 -0
  33. package/src/koffi/build/2.1.5/koffi_freebsd_arm64.tar.gz +0 -0
  34. package/src/koffi/build/2.1.5/koffi_freebsd_ia32.tar.gz +0 -0
  35. package/src/koffi/build/2.1.5/koffi_freebsd_x64.tar.gz +0 -0
  36. package/src/koffi/build/2.1.5/koffi_linux_arm32hf.tar.gz +0 -0
  37. package/src/koffi/build/2.1.5/koffi_linux_arm64.tar.gz +0 -0
  38. package/src/koffi/build/2.1.5/koffi_linux_ia32.tar.gz +0 -0
  39. package/src/koffi/build/2.1.5/koffi_linux_riscv64hf64.tar.gz +0 -0
  40. package/src/koffi/build/2.1.5/koffi_linux_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.1.5/koffi_openbsd_ia32.tar.gz +0 -0
  42. package/src/koffi/build/2.1.5/koffi_openbsd_x64.tar.gz +0 -0
  43. package/src/koffi/build/2.1.5/koffi_win32_arm64.tar.gz +0 -0
  44. package/src/koffi/build/2.1.5/koffi_win32_ia32.tar.gz +0 -0
  45. package/src/koffi/build/2.1.5/koffi_win32_x64.tar.gz +0 -0
  46. package/src/koffi/qemu/qemu/.gitkeep +0 -0
  47. package/{qemu → src/koffi/qemu}/qemu.js +227 -133
  48. package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
  49. package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
  50. package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
  51. package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
  52. package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
  53. package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
  54. package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
  55. package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
  56. package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
  57. package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
  58. package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
  59. package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
  60. package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
  61. package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
  62. package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
  63. package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
  64. package/src/{call.cc → koffi/src/call.cc} +1 -1
  65. package/src/{call.hh → koffi/src/call.hh} +2 -2
  66. package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
  67. package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
  68. package/src/{index.js → koffi/src/index.js} +0 -0
  69. package/src/{parser.cc → koffi/src/parser.cc} +1 -1
  70. package/src/{parser.hh → koffi/src/parser.hh} +1 -1
  71. package/src/{util.cc → koffi/src/util.cc} +1 -1
  72. package/src/{util.hh → koffi/src/util.hh} +1 -1
  73. package/{test → src/koffi/test}/CMakeLists.txt +14 -15
  74. package/{test → src/koffi/test}/async.js +0 -0
  75. package/{test → src/koffi/test}/callbacks.js +0 -0
  76. package/{test → src/koffi/test}/misc.c +13 -0
  77. package/{test → src/koffi/test}/misc.def +0 -0
  78. package/{test → src/koffi/test}/raylib.js +0 -0
  79. package/{test → src/koffi/test}/sqlite.js +1 -1
  80. package/{test → src/koffi/test}/sync.js +17 -0
  81. package/vendor/brotli/BUILD +144 -0
  82. package/vendor/brotli/CMakeLists.txt +421 -0
  83. package/vendor/brotli/CONTRIBUTING.md +27 -0
  84. package/vendor/brotli/LICENSE +19 -0
  85. package/vendor/brotli/MANIFEST.in +17 -0
  86. package/vendor/brotli/Makefile +55 -0
  87. package/vendor/brotli/Makefile.am +38 -0
  88. package/vendor/brotli/README +15 -0
  89. package/vendor/brotli/README.md +104 -0
  90. package/vendor/brotli/WORKSPACE +21 -0
  91. package/vendor/brotli/bootstrap +35 -0
  92. package/vendor/brotli/c/common/constants.c +15 -0
  93. package/vendor/brotli/c/common/constants.h +200 -0
  94. package/vendor/brotli/c/common/context.c +156 -0
  95. package/vendor/brotli/c/common/context.h +113 -0
  96. package/vendor/brotli/c/common/dictionary.c +5914 -0
  97. package/vendor/brotli/c/common/dictionary.h +64 -0
  98. package/vendor/brotli/c/common/platform.c +22 -0
  99. package/vendor/brotli/c/common/platform.h +594 -0
  100. package/vendor/brotli/c/common/transform.c +291 -0
  101. package/vendor/brotli/c/common/transform.h +85 -0
  102. package/vendor/brotli/c/common/version.h +26 -0
  103. package/vendor/brotli/c/dec/bit_reader.c +76 -0
  104. package/vendor/brotli/c/dec/bit_reader.h +351 -0
  105. package/vendor/brotli/c/dec/decode.c +2608 -0
  106. package/vendor/brotli/c/dec/huffman.c +339 -0
  107. package/vendor/brotli/c/dec/huffman.h +121 -0
  108. package/vendor/brotli/c/dec/prefix.h +732 -0
  109. package/vendor/brotli/c/dec/state.c +159 -0
  110. package/vendor/brotli/c/dec/state.h +365 -0
  111. package/vendor/brotli/c/enc/backward_references.c +145 -0
  112. package/vendor/brotli/c/enc/backward_references.h +39 -0
  113. package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
  114. package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
  115. package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
  116. package/vendor/brotli/c/enc/bit_cost.c +35 -0
  117. package/vendor/brotli/c/enc/bit_cost.h +63 -0
  118. package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  119. package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  120. package/vendor/brotli/c/enc/block_splitter.c +194 -0
  121. package/vendor/brotli/c/enc/block_splitter.h +51 -0
  122. package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
  123. package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
  124. package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
  125. package/vendor/brotli/c/enc/cluster.c +56 -0
  126. package/vendor/brotli/c/enc/cluster.h +48 -0
  127. package/vendor/brotli/c/enc/cluster_inc.h +320 -0
  128. package/vendor/brotli/c/enc/command.c +28 -0
  129. package/vendor/brotli/c/enc/command.h +190 -0
  130. package/vendor/brotli/c/enc/compress_fragment.c +790 -0
  131. package/vendor/brotli/c/enc/compress_fragment.h +61 -0
  132. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
  133. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
  134. package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
  135. package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  136. package/vendor/brotli/c/enc/encode.c +1927 -0
  137. package/vendor/brotli/c/enc/encoder_dict.c +33 -0
  138. package/vendor/brotli/c/enc/encoder_dict.h +43 -0
  139. package/vendor/brotli/c/enc/entropy_encode.c +503 -0
  140. package/vendor/brotli/c/enc/entropy_encode.h +122 -0
  141. package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
  142. package/vendor/brotli/c/enc/fast_log.c +105 -0
  143. package/vendor/brotli/c/enc/fast_log.h +66 -0
  144. package/vendor/brotli/c/enc/find_match_length.h +79 -0
  145. package/vendor/brotli/c/enc/hash.h +488 -0
  146. package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
  147. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
  148. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
  149. package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
  150. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  151. package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  152. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
  153. package/vendor/brotli/c/enc/histogram.c +100 -0
  154. package/vendor/brotli/c/enc/histogram.h +63 -0
  155. package/vendor/brotli/c/enc/histogram_inc.h +51 -0
  156. package/vendor/brotli/c/enc/literal_cost.c +175 -0
  157. package/vendor/brotli/c/enc/literal_cost.h +30 -0
  158. package/vendor/brotli/c/enc/memory.c +170 -0
  159. package/vendor/brotli/c/enc/memory.h +114 -0
  160. package/vendor/brotli/c/enc/metablock.c +663 -0
  161. package/vendor/brotli/c/enc/metablock.h +105 -0
  162. package/vendor/brotli/c/enc/metablock_inc.h +183 -0
  163. package/vendor/brotli/c/enc/params.h +46 -0
  164. package/vendor/brotli/c/enc/prefix.h +53 -0
  165. package/vendor/brotli/c/enc/quality.h +165 -0
  166. package/vendor/brotli/c/enc/ringbuffer.h +167 -0
  167. package/vendor/brotli/c/enc/static_dict.c +486 -0
  168. package/vendor/brotli/c/enc/static_dict.h +40 -0
  169. package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
  170. package/vendor/brotli/c/enc/utf8_util.c +85 -0
  171. package/vendor/brotli/c/enc/utf8_util.h +32 -0
  172. package/vendor/brotli/c/enc/write_bits.h +87 -0
  173. package/vendor/brotli/c/include/brotli/decode.h +344 -0
  174. package/vendor/brotli/c/include/brotli/encode.h +448 -0
  175. package/vendor/brotli/c/include/brotli/port.h +288 -0
  176. package/vendor/brotli/c/include/brotli/types.h +83 -0
  177. package/vendor/brotli/c/tools/brotli.c +1116 -0
  178. package/vendor/brotli/c/tools/brotli.md +107 -0
  179. package/vendor/brotli/compiler_config_setting.bzl +28 -0
  180. package/vendor/brotli/configure +8 -0
  181. package/vendor/brotli/configure-cmake +318 -0
  182. package/vendor/brotli/configure.ac +14 -0
  183. package/vendor/brotli/docs/brotli.1 +132 -0
  184. package/vendor/brotli/docs/constants.h.3 +47 -0
  185. package/vendor/brotli/docs/decode.h.3 +415 -0
  186. package/vendor/brotli/docs/encode.h.3 +586 -0
  187. package/vendor/brotli/docs/types.h.3 +117 -0
  188. package/vendor/brotli/premake5.lua +78 -0
  189. package/vendor/brotli/python/Makefile +57 -0
  190. package/vendor/brotli/python/README.md +54 -0
  191. package/vendor/brotli/python/_brotli.cc +753 -0
  192. package/vendor/brotli/python/bro.py +160 -0
  193. package/vendor/brotli/python/brotli.py +56 -0
  194. package/vendor/brotli/python/tests/__init__.py +0 -0
  195. package/vendor/brotli/python/tests/_test_utils.py +112 -0
  196. package/vendor/brotli/python/tests/bro_test.py +102 -0
  197. package/vendor/brotli/python/tests/compress_test.py +41 -0
  198. package/vendor/brotli/python/tests/compressor_test.py +94 -0
  199. package/vendor/brotli/python/tests/decompress_test.py +42 -0
  200. package/vendor/brotli/python/tests/decompressor_test.py +59 -0
  201. package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
  202. package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
  203. package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
  204. package/vendor/brotli/scripts/sources.lst +104 -0
  205. package/vendor/brotli/setup.cfg +5 -0
  206. package/vendor/brotli/setup.py +293 -0
  207. package/vendor/brotli/tests/Makefile +17 -0
  208. package/vendor/brotli/tests/compatibility_test.sh +25 -0
  209. package/vendor/brotli/tests/roundtrip_test.sh +36 -0
  210. package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
  211. package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
  212. package/vendor/brotli/tests/testdata/empty +0 -0
  213. package/vendor/brotli/tests/testdata/empty.compressed +1 -0
  214. package/vendor/brotli/tests/testdata/ukkonooa +1 -0
  215. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  216. package/vendor/miniz/ChangeLog.md +235 -0
  217. package/vendor/miniz/LICENSE +22 -0
  218. package/vendor/miniz/examples/example1.c +105 -0
  219. package/vendor/miniz/examples/example2.c +164 -0
  220. package/vendor/miniz/examples/example3.c +269 -0
  221. package/vendor/miniz/examples/example4.c +102 -0
  222. package/vendor/miniz/examples/example5.c +327 -0
  223. package/vendor/miniz/examples/example6.c +166 -0
  224. package/vendor/miniz/miniz.c +7835 -0
  225. package/vendor/miniz/miniz.h +1422 -0
  226. package/vendor/miniz/readme.md +46 -0
  227. package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
  228. package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
  229. package/vendor/sqlite3mc/sqlite3mc.def +312 -0
  230. package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
  231. package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
  232. package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
  233. package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
  234. package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
  235. package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
  236. package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
  237. package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
  238. package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
  239. package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  240. package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
  241. package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
  242. package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
  243. package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
  244. package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
  245. package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
  246. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
  247. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  248. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  249. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  250. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
  251. package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
  252. package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
  253. package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
  254. package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
  255. package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
  256. package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
  257. package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
  258. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
  259. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
  260. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
  261. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
  262. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
  263. package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
  264. package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
  265. package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
  266. package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
  267. package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
  268. package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
  269. package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
  270. package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
  271. package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
  272. package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
  273. package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
  274. package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
  275. package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
  276. package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
  277. package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
  278. package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
  279. package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
  280. package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
  281. package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
  282. package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
  283. package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
  284. package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
  285. package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
  286. package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
  287. package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
  288. package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
  289. package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
  290. package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
  291. package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
  292. package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
  293. package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
  294. package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
  295. package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
  296. package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
  305. package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
  306. package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
  311. package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
  332. package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  333. package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
  356. package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
  357. package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
  358. package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
  359. package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
  360. package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
  361. package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
  362. package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
  363. package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
  364. package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
  365. package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
  366. package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
  367. package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
  368. package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
  369. package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
  370. package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
  371. package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
  372. package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
  373. package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
  374. package/vendor/sqlite3/shell.c +0 -23496
@@ -0,0 +1,160 @@
1
+ #! /usr/bin/env python
2
+ """Compression/decompression utility using the Brotli algorithm."""
3
+
4
+ from __future__ import print_function
5
+ import argparse
6
+ import sys
7
+ import os
8
+ import platform
9
+
10
+ import brotli
11
+
12
+ # default values of encoder parameters
13
+ DEFAULT_PARAMS = {
14
+ 'mode': brotli.MODE_GENERIC,
15
+ 'quality': 11,
16
+ 'lgwin': 22,
17
+ 'lgblock': 0,
18
+ }
19
+
20
+
21
+ def get_binary_stdio(stream):
22
+ """ Return the specified standard input, output or errors stream as a
23
+ 'raw' buffer object suitable for reading/writing binary data from/to it.
24
+ """
25
+ assert stream in ['stdin', 'stdout', 'stderr'], 'invalid stream name'
26
+ stdio = getattr(sys, stream)
27
+ if sys.version_info[0] < 3:
28
+ if sys.platform == 'win32':
29
+ # set I/O stream binary flag on python2.x (Windows)
30
+ runtime = platform.python_implementation()
31
+ if runtime == 'PyPy':
32
+ # the msvcrt trick doesn't work in pypy, so I use fdopen
33
+ mode = 'rb' if stream == 'stdin' else 'wb'
34
+ stdio = os.fdopen(stdio.fileno(), mode, 0)
35
+ else:
36
+ # this works with CPython -- untested on other implementations
37
+ import msvcrt
38
+ msvcrt.setmode(stdio.fileno(), os.O_BINARY)
39
+ return stdio
40
+ else:
41
+ # get 'buffer' attribute to read/write binary data on python3.x
42
+ if hasattr(stdio, 'buffer'):
43
+ return stdio.buffer
44
+ else:
45
+ orig_stdio = getattr(sys, '__%s__' % stream)
46
+ return orig_stdio.buffer
47
+
48
+
49
+ def main(args=None):
50
+
51
+ parser = argparse.ArgumentParser(
52
+ prog=os.path.basename(__file__), description=__doc__)
53
+ parser.add_argument(
54
+ '--version', action='version', version=brotli.__version__)
55
+ parser.add_argument(
56
+ '-i',
57
+ '--input',
58
+ metavar='FILE',
59
+ type=str,
60
+ dest='infile',
61
+ help='Input file',
62
+ default=None)
63
+ parser.add_argument(
64
+ '-o',
65
+ '--output',
66
+ metavar='FILE',
67
+ type=str,
68
+ dest='outfile',
69
+ help='Output file',
70
+ default=None)
71
+ parser.add_argument(
72
+ '-f',
73
+ '--force',
74
+ action='store_true',
75
+ help='Overwrite existing output file',
76
+ default=False)
77
+ parser.add_argument(
78
+ '-d',
79
+ '--decompress',
80
+ action='store_true',
81
+ help='Decompress input file',
82
+ default=False)
83
+ params = parser.add_argument_group('optional encoder parameters')
84
+ params.add_argument(
85
+ '-m',
86
+ '--mode',
87
+ metavar='MODE',
88
+ type=int,
89
+ choices=[0, 1, 2],
90
+ help='The compression mode can be 0 for generic input, '
91
+ '1 for UTF-8 encoded text, or 2 for WOFF 2.0 font data. '
92
+ 'Defaults to 0.')
93
+ params.add_argument(
94
+ '-q',
95
+ '--quality',
96
+ metavar='QUALITY',
97
+ type=int,
98
+ choices=list(range(0, 12)),
99
+ help='Controls the compression-speed vs compression-density '
100
+ 'tradeoff. The higher the quality, the slower the '
101
+ 'compression. Range is 0 to 11. Defaults to 11.')
102
+ params.add_argument(
103
+ '--lgwin',
104
+ metavar='LGWIN',
105
+ type=int,
106
+ choices=list(range(10, 25)),
107
+ help='Base 2 logarithm of the sliding window size. Range is '
108
+ '10 to 24. Defaults to 22.')
109
+ params.add_argument(
110
+ '--lgblock',
111
+ metavar='LGBLOCK',
112
+ type=int,
113
+ choices=[0] + list(range(16, 25)),
114
+ help='Base 2 logarithm of the maximum input block size. '
115
+ 'Range is 16 to 24. If set to 0, the value will be set based '
116
+ 'on the quality. Defaults to 0.')
117
+ # set default values using global DEFAULT_PARAMS dictionary
118
+ parser.set_defaults(**DEFAULT_PARAMS)
119
+
120
+ options = parser.parse_args(args=args)
121
+
122
+ if options.infile:
123
+ if not os.path.isfile(options.infile):
124
+ parser.error('file "%s" not found' % options.infile)
125
+ with open(options.infile, 'rb') as infile:
126
+ data = infile.read()
127
+ else:
128
+ if sys.stdin.isatty():
129
+ # interactive console, just quit
130
+ parser.error('no input')
131
+ infile = get_binary_stdio('stdin')
132
+ data = infile.read()
133
+
134
+ if options.outfile:
135
+ if os.path.isfile(options.outfile) and not options.force:
136
+ parser.error('output file exists')
137
+ outfile = open(options.outfile, 'wb')
138
+ else:
139
+ outfile = get_binary_stdio('stdout')
140
+
141
+ try:
142
+ if options.decompress:
143
+ data = brotli.decompress(data)
144
+ else:
145
+ data = brotli.compress(
146
+ data,
147
+ mode=options.mode,
148
+ quality=options.quality,
149
+ lgwin=options.lgwin,
150
+ lgblock=options.lgblock)
151
+ except brotli.error as e:
152
+ parser.exit(1,
153
+ 'bro: error: %s: %s' % (e, options.infile or 'sys.stdin'))
154
+
155
+ outfile.write(data)
156
+ outfile.close()
157
+
158
+
159
+ if __name__ == '__main__':
160
+ main()
@@ -0,0 +1,56 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ """Functions to compress and decompress data using the Brotli library."""
7
+
8
+ import _brotli
9
+
10
+
11
+ # The library version.
12
+ __version__ = _brotli.__version__
13
+
14
+ # The compression mode.
15
+ MODE_GENERIC = _brotli.MODE_GENERIC
16
+ MODE_TEXT = _brotli.MODE_TEXT
17
+ MODE_FONT = _brotli.MODE_FONT
18
+
19
+ # The Compressor object.
20
+ Compressor = _brotli.Compressor
21
+
22
+ # The Decompressor object.
23
+ Decompressor = _brotli.Decompressor
24
+
25
+ # Compress a byte string.
26
+ def compress(string, mode=MODE_GENERIC, quality=11, lgwin=22, lgblock=0):
27
+ """Compress a byte string.
28
+
29
+ Args:
30
+ string (bytes): The input data.
31
+ mode (int, optional): The compression mode can be MODE_GENERIC (default),
32
+ MODE_TEXT (for UTF-8 format text input) or MODE_FONT (for WOFF 2.0).
33
+ quality (int, optional): Controls the compression-speed vs compression-
34
+ density tradeoff. The higher the quality, the slower the compression.
35
+ Range is 0 to 11. Defaults to 11.
36
+ lgwin (int, optional): Base 2 logarithm of the sliding window size. Range
37
+ is 10 to 24. Defaults to 22.
38
+ lgblock (int, optional): Base 2 logarithm of the maximum input block size.
39
+ Range is 16 to 24. If set to 0, the value will be set based on the
40
+ quality. Defaults to 0.
41
+
42
+ Returns:
43
+ The compressed byte string.
44
+
45
+ Raises:
46
+ brotli.error: If arguments are invalid, or compressor fails.
47
+ """
48
+ compressor = Compressor(mode=mode, quality=quality, lgwin=lgwin,
49
+ lgblock=lgblock)
50
+ return compressor.process(string) + compressor.finish()
51
+
52
+ # Decompress a compressed byte string.
53
+ decompress = _brotli.decompress
54
+
55
+ # Raised if compression or decompression fails.
56
+ error = _brotli.error
File without changes
@@ -0,0 +1,112 @@
1
+ from __future__ import print_function
2
+ import filecmp
3
+ import glob
4
+ import itertools
5
+ import os
6
+ import sys
7
+ import sysconfig
8
+ import tempfile
9
+ import unittest
10
+
11
+
12
+ project_dir = os.path.abspath(os.path.join(__file__, '..', '..', '..'))
13
+ src_dir = os.path.join(project_dir, 'python')
14
+ test_dir = os.path.join(project_dir, 'tests')
15
+
16
+ python_exe = sys.executable or 'python'
17
+ bro_path = os.path.join(src_dir, 'bro.py')
18
+ BRO_ARGS = [python_exe, bro_path]
19
+
20
+ # Get the platform/version-specific build folder.
21
+ # By default, the distutils build base is in the same location as setup.py.
22
+ platform_lib_name = 'lib.{platform}-{version[0]}.{version[1]}'.format(
23
+ platform=sysconfig.get_platform(), version=sys.version_info)
24
+ build_dir = os.path.join(project_dir, 'bin', platform_lib_name)
25
+
26
+ # Prepend the build folder to sys.path and the PYTHONPATH environment variable.
27
+ if build_dir not in sys.path:
28
+ sys.path.insert(0, build_dir)
29
+ TEST_ENV = os.environ.copy()
30
+ if 'PYTHONPATH' not in TEST_ENV:
31
+ TEST_ENV['PYTHONPATH'] = build_dir
32
+ else:
33
+ TEST_ENV['PYTHONPATH'] = build_dir + os.pathsep + TEST_ENV['PYTHONPATH']
34
+
35
+ TESTDATA_DIR = os.path.join(test_dir, 'testdata')
36
+
37
+ TESTDATA_FILES = [
38
+ 'empty', # Empty file
39
+ '10x10y', # Small text
40
+ 'alice29.txt', # Large text
41
+ 'random_org_10k.bin', # Small data
42
+ 'mapsdatazrh', # Large data
43
+ ]
44
+
45
+ TESTDATA_PATHS = [os.path.join(TESTDATA_DIR, f) for f in TESTDATA_FILES]
46
+
47
+ TESTDATA_PATHS_FOR_DECOMPRESSION = glob.glob(
48
+ os.path.join(TESTDATA_DIR, '*.compressed'))
49
+
50
+ TEMP_DIR = tempfile.mkdtemp()
51
+
52
+
53
+ def get_temp_compressed_name(filename):
54
+ return os.path.join(TEMP_DIR, os.path.basename(filename + '.bro'))
55
+
56
+
57
+ def get_temp_uncompressed_name(filename):
58
+ return os.path.join(TEMP_DIR, os.path.basename(filename + '.unbro'))
59
+
60
+
61
+ def bind_method_args(method, *args, **kwargs):
62
+ return lambda self: method(self, *args, **kwargs)
63
+
64
+
65
+ def generate_test_methods(test_case_class,
66
+ for_decompression=False,
67
+ variants=None):
68
+ # Add test methods for each test data file. This makes identifying problems
69
+ # with specific compression scenarios easier.
70
+ if for_decompression:
71
+ paths = TESTDATA_PATHS_FOR_DECOMPRESSION
72
+ else:
73
+ paths = TESTDATA_PATHS
74
+ opts = []
75
+ if variants:
76
+ opts_list = []
77
+ for k, v in variants.items():
78
+ opts_list.append([r for r in itertools.product([k], v)])
79
+ for o in itertools.product(*opts_list):
80
+ opts_name = '_'.join([str(i) for i in itertools.chain(*o)])
81
+ opts_dict = dict(o)
82
+ opts.append([opts_name, opts_dict])
83
+ else:
84
+ opts.append(['', {}])
85
+ for method in [m for m in dir(test_case_class) if m.startswith('_test')]:
86
+ for testdata in paths:
87
+ for (opts_name, opts_dict) in opts:
88
+ f = os.path.splitext(os.path.basename(testdata))[0]
89
+ name = 'test_{method}_{options}_{file}'.format(
90
+ method=method, options=opts_name, file=f)
91
+ func = bind_method_args(
92
+ getattr(test_case_class, method), testdata, **opts_dict)
93
+ setattr(test_case_class, name, func)
94
+
95
+
96
+ class TestCase(unittest.TestCase):
97
+
98
+ def tearDown(self):
99
+ for f in TESTDATA_PATHS:
100
+ try:
101
+ os.unlink(get_temp_compressed_name(f))
102
+ except OSError:
103
+ pass
104
+ try:
105
+ os.unlink(get_temp_uncompressed_name(f))
106
+ except OSError:
107
+ pass
108
+
109
+ def assertFilesMatch(self, first, second):
110
+ self.assertTrue(
111
+ filecmp.cmp(first, second, shallow=False),
112
+ 'File {} differs from {}'.format(first, second))
@@ -0,0 +1,102 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ import subprocess
7
+ import unittest
8
+
9
+ from . import _test_utils
10
+ import brotli
11
+
12
+ BRO_ARGS = _test_utils.BRO_ARGS
13
+ TEST_ENV = _test_utils.TEST_ENV
14
+
15
+
16
+ def _get_original_name(test_data):
17
+ return test_data.split('.compressed')[0]
18
+
19
+
20
+ class TestBroDecompress(_test_utils.TestCase):
21
+
22
+ def _check_decompression(self, test_data):
23
+ # Verify decompression matches the original.
24
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
25
+ original = _get_original_name(test_data)
26
+ self.assertFilesMatch(temp_uncompressed, original)
27
+
28
+ def _decompress_file(self, test_data):
29
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
30
+ args = BRO_ARGS + ['-f', '-d', '-i', test_data, '-o', temp_uncompressed]
31
+ subprocess.check_call(args, env=TEST_ENV)
32
+
33
+ def _decompress_pipe(self, test_data):
34
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
35
+ args = BRO_ARGS + ['-d']
36
+ with open(temp_uncompressed, 'wb') as out_file:
37
+ with open(test_data, 'rb') as in_file:
38
+ subprocess.check_call(
39
+ args, stdin=in_file, stdout=out_file, env=TEST_ENV)
40
+
41
+ def _test_decompress_file(self, test_data):
42
+ self._decompress_file(test_data)
43
+ self._check_decompression(test_data)
44
+
45
+ def _test_decompress_pipe(self, test_data):
46
+ self._decompress_pipe(test_data)
47
+ self._check_decompression(test_data)
48
+
49
+
50
+ _test_utils.generate_test_methods(TestBroDecompress, for_decompression=True)
51
+
52
+
53
+ class TestBroCompress(_test_utils.TestCase):
54
+
55
+ VARIANTS = {'quality': (1, 6, 9, 11), 'lgwin': (10, 15, 20, 24)}
56
+
57
+ def _check_decompression(self, test_data, **kwargs):
58
+ # Write decompression to temp file and verify it matches the original.
59
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
60
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
61
+ original = test_data
62
+ args = BRO_ARGS + ['-f', '-d']
63
+ args.extend(['-i', temp_compressed, '-o', temp_uncompressed])
64
+ subprocess.check_call(args, env=TEST_ENV)
65
+ self.assertFilesMatch(temp_uncompressed, original)
66
+
67
+ def _compress_file(self, test_data, **kwargs):
68
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
69
+ args = BRO_ARGS + ['-f']
70
+ if 'quality' in kwargs:
71
+ args.extend(['-q', str(kwargs['quality'])])
72
+ if 'lgwin' in kwargs:
73
+ args.extend(['--lgwin', str(kwargs['lgwin'])])
74
+ args.extend(['-i', test_data, '-o', temp_compressed])
75
+ subprocess.check_call(args, env=TEST_ENV)
76
+
77
+ def _compress_pipe(self, test_data, **kwargs):
78
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
79
+ args = BRO_ARGS
80
+ if 'quality' in kwargs:
81
+ args.extend(['-q', str(kwargs['quality'])])
82
+ if 'lgwin' in kwargs:
83
+ args.extend(['--lgwin', str(kwargs['lgwin'])])
84
+ with open(temp_compressed, 'wb') as out_file:
85
+ with open(test_data, 'rb') as in_file:
86
+ subprocess.check_call(
87
+ args, stdin=in_file, stdout=out_file, env=TEST_ENV)
88
+
89
+ def _test_compress_file(self, test_data, **kwargs):
90
+ self._compress_file(test_data, **kwargs)
91
+ self._check_decompression(test_data)
92
+
93
+ def _test_compress_pipe(self, test_data, **kwargs):
94
+ self._compress_pipe(test_data, **kwargs)
95
+ self._check_decompression(test_data)
96
+
97
+
98
+ _test_utils.generate_test_methods(
99
+ TestBroCompress, variants=TestBroCompress.VARIANTS)
100
+
101
+ if __name__ == '__main__':
102
+ unittest.main()
@@ -0,0 +1,41 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ import unittest
7
+
8
+ from . import _test_utils
9
+ import brotli
10
+
11
+
12
+ class TestCompress(_test_utils.TestCase):
13
+
14
+ VARIANTS = {'quality': (1, 6, 9, 11), 'lgwin': (10, 15, 20, 24)}
15
+
16
+ def _check_decompression(self, test_data, **kwargs):
17
+ kwargs = {}
18
+ # Write decompression to temp file and verify it matches the original.
19
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
20
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
21
+ original = test_data
22
+ with open(temp_uncompressed, 'wb') as out_file:
23
+ with open(temp_compressed, 'rb') as in_file:
24
+ out_file.write(brotli.decompress(in_file.read(), **kwargs))
25
+ self.assertFilesMatch(temp_uncompressed, original)
26
+
27
+ def _compress(self, test_data, **kwargs):
28
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
29
+ with open(temp_compressed, 'wb') as out_file:
30
+ with open(test_data, 'rb') as in_file:
31
+ out_file.write(brotli.compress(in_file.read(), **kwargs))
32
+
33
+ def _test_compress(self, test_data, **kwargs):
34
+ self._compress(test_data, **kwargs)
35
+ self._check_decompression(test_data, **kwargs)
36
+
37
+
38
+ _test_utils.generate_test_methods(TestCompress, variants=TestCompress.VARIANTS)
39
+
40
+ if __name__ == '__main__':
41
+ unittest.main()
@@ -0,0 +1,94 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ import functools
7
+ import unittest
8
+
9
+ from . import _test_utils
10
+ import brotli
11
+
12
+
13
+ # Do not inherit from TestCase here to ensure that test methods
14
+ # are not run automatically and instead are run as part of a specific
15
+ # configuration below.
16
+ class _TestCompressor(object):
17
+
18
+ CHUNK_SIZE = 2048
19
+
20
+ def tearDown(self):
21
+ self.compressor = None
22
+
23
+ def _check_decompression(self, test_data):
24
+ # Write decompression to temp file and verify it matches the original.
25
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
26
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
27
+ original = test_data
28
+ with open(temp_uncompressed, 'wb') as out_file:
29
+ with open(temp_compressed, 'rb') as in_file:
30
+ out_file.write(brotli.decompress(in_file.read()))
31
+ self.assertFilesMatch(temp_uncompressed, original)
32
+
33
+ def _test_single_process(self, test_data):
34
+ # Write single-shot compression to temp file.
35
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
36
+ with open(temp_compressed, 'wb') as out_file:
37
+ with open(test_data, 'rb') as in_file:
38
+ out_file.write(self.compressor.process(in_file.read()))
39
+ out_file.write(self.compressor.finish())
40
+ self._check_decompression(test_data)
41
+
42
+ def _test_multiple_process(self, test_data):
43
+ # Write chunked compression to temp file.
44
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
45
+ with open(temp_compressed, 'wb') as out_file:
46
+ with open(test_data, 'rb') as in_file:
47
+ read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
48
+ for data in iter(read_chunk, b''):
49
+ out_file.write(self.compressor.process(data))
50
+ out_file.write(self.compressor.finish())
51
+ self._check_decompression(test_data)
52
+
53
+ def _test_multiple_process_and_flush(self, test_data):
54
+ # Write chunked and flushed compression to temp file.
55
+ temp_compressed = _test_utils.get_temp_compressed_name(test_data)
56
+ with open(temp_compressed, 'wb') as out_file:
57
+ with open(test_data, 'rb') as in_file:
58
+ read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
59
+ for data in iter(read_chunk, b''):
60
+ out_file.write(self.compressor.process(data))
61
+ out_file.write(self.compressor.flush())
62
+ out_file.write(self.compressor.finish())
63
+ self._check_decompression(test_data)
64
+
65
+
66
+ _test_utils.generate_test_methods(_TestCompressor)
67
+
68
+
69
+ class TestCompressorQuality1(_TestCompressor, _test_utils.TestCase):
70
+
71
+ def setUp(self):
72
+ self.compressor = brotli.Compressor(quality=1)
73
+
74
+
75
+ class TestCompressorQuality6(_TestCompressor, _test_utils.TestCase):
76
+
77
+ def setUp(self):
78
+ self.compressor = brotli.Compressor(quality=6)
79
+
80
+
81
+ class TestCompressorQuality9(_TestCompressor, _test_utils.TestCase):
82
+
83
+ def setUp(self):
84
+ self.compressor = brotli.Compressor(quality=9)
85
+
86
+
87
+ class TestCompressorQuality11(_TestCompressor, _test_utils.TestCase):
88
+
89
+ def setUp(self):
90
+ self.compressor = brotli.Compressor(quality=11)
91
+
92
+
93
+ if __name__ == '__main__':
94
+ unittest.main()
@@ -0,0 +1,42 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ import unittest
7
+
8
+ from . import _test_utils
9
+ import brotli
10
+
11
+
12
+ def _get_original_name(test_data):
13
+ return test_data.split('.compressed')[0]
14
+
15
+
16
+ class TestDecompress(_test_utils.TestCase):
17
+
18
+ def _check_decompression(self, test_data):
19
+ # Verify decompression matches the original.
20
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
21
+ original = _get_original_name(test_data)
22
+ self.assertFilesMatch(temp_uncompressed, original)
23
+
24
+ def _decompress(self, test_data):
25
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
26
+ with open(temp_uncompressed, 'wb') as out_file:
27
+ with open(test_data, 'rb') as in_file:
28
+ out_file.write(brotli.decompress(in_file.read()))
29
+
30
+ def _test_decompress(self, test_data):
31
+ self._decompress(test_data)
32
+ self._check_decompression(test_data)
33
+
34
+ def test_garbage_appended(self):
35
+ with self.assertRaises(brotli.error):
36
+ brotli.decompress(brotli.compress(b'a') + b'a')
37
+
38
+
39
+ _test_utils.generate_test_methods(TestDecompress, for_decompression=True)
40
+
41
+ if __name__ == '__main__':
42
+ unittest.main()
@@ -0,0 +1,59 @@
1
+ # Copyright 2016 The Brotli Authors. All rights reserved.
2
+ #
3
+ # Distributed under MIT license.
4
+ # See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
5
+
6
+ import functools
7
+ import unittest
8
+
9
+ from . import _test_utils
10
+ import brotli
11
+
12
+
13
+ def _get_original_name(test_data):
14
+ return test_data.split('.compressed')[0]
15
+
16
+
17
+ class TestDecompressor(_test_utils.TestCase):
18
+
19
+ CHUNK_SIZE = 1
20
+
21
+ def setUp(self):
22
+ self.decompressor = brotli.Decompressor()
23
+
24
+ def tearDown(self):
25
+ self.decompressor = None
26
+
27
+ def _check_decompression(self, test_data):
28
+ # Verify decompression matches the original.
29
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
30
+ original = _get_original_name(test_data)
31
+ self.assertFilesMatch(temp_uncompressed, original)
32
+
33
+ def _decompress(self, test_data):
34
+ temp_uncompressed = _test_utils.get_temp_uncompressed_name(test_data)
35
+ with open(temp_uncompressed, 'wb') as out_file:
36
+ with open(test_data, 'rb') as in_file:
37
+ read_chunk = functools.partial(in_file.read, self.CHUNK_SIZE)
38
+ for data in iter(read_chunk, b''):
39
+ out_file.write(self.decompressor.process(data))
40
+ self.assertTrue(self.decompressor.is_finished())
41
+
42
+ def _test_decompress(self, test_data):
43
+ self._decompress(test_data)
44
+ self._check_decompression(test_data)
45
+
46
+ def test_garbage_appended(self):
47
+ with self.assertRaises(brotli.error):
48
+ self.decompressor.process(brotli.compress(b'a') + b'a')
49
+
50
+ def test_already_finished(self):
51
+ self.decompressor.process(brotli.compress(b'a'))
52
+ with self.assertRaises(brotli.error):
53
+ self.decompressor.process(b'a')
54
+
55
+
56
+ _test_utils.generate_test_methods(TestDecompressor, for_decompression=True)
57
+
58
+ if __name__ == '__main__':
59
+ unittest.main()
@@ -0,0 +1,11 @@
1
+ prefix=@prefix@
2
+ exec_prefix=@exec_prefix@
3
+ libdir=@libdir@
4
+ includedir=@includedir@
5
+
6
+ Name: libbrotlicommon
7
+ URL: https://github.com/google/brotli
8
+ Description: Brotli common dictionary library
9
+ Version: @PACKAGE_VERSION@
10
+ Libs: -L${libdir} -R${libdir} -lbrotlicommon
11
+ Cflags: -I${includedir}