koffi 2.1.3 → 2.1.4

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 (401) hide show
  1. package/package.json +44 -68
  2. package/{LICENSE.txt → src/cnoke/LICENSE.txt} +0 -0
  3. package/src/cnoke/README.md +97 -0
  4. package/src/cnoke/assets/FindCNoke.cmake +71 -0
  5. package/src/cnoke/assets/win_delay_hook.c +34 -0
  6. package/src/cnoke/cnoke.js +968 -0
  7. package/src/cnoke/package.json +25 -0
  8. package/{vendor → src/core}/libcc/libcc.cc +38 -11
  9. package/{vendor → src/core}/libcc/libcc.hh +4 -2
  10. package/{CMakeLists.txt → src/koffi/CMakeLists.txt} +3 -3
  11. package/{ChangeLog.md → src/koffi/ChangeLog.md} +11 -0
  12. package/src/koffi/LICENSE.txt +661 -0
  13. package/{README.md → src/koffi/README.md} +0 -0
  14. package/{benchmark → src/koffi/benchmark}/CMakeLists.txt +9 -6
  15. package/{benchmark → src/koffi/benchmark}/atoi_koffi.js +0 -0
  16. package/{benchmark → src/koffi/benchmark}/atoi_napi.cc +1 -1
  17. package/{benchmark → src/koffi/benchmark}/atoi_napi.js +0 -0
  18. package/{benchmark → src/koffi/benchmark}/atoi_node_ffi.js +0 -0
  19. package/src/koffi/benchmark/benchmark.js +118 -0
  20. package/src/koffi/benchmark/rand_koffi.js +52 -0
  21. package/src/koffi/benchmark/rand_napi.cc +69 -0
  22. package/src/koffi/benchmark/rand_napi.js +47 -0
  23. package/src/koffi/benchmark/rand_node_ffi.js +55 -0
  24. package/{benchmark → src/koffi/benchmark}/raylib_cc.cc +2 -2
  25. package/{benchmark → src/koffi/benchmark}/raylib_cc.js +0 -0
  26. package/{benchmark → src/koffi/benchmark}/raylib_koffi.js +0 -0
  27. package/{benchmark → src/koffi/benchmark}/raylib_node_ffi.js +0 -0
  28. package/{benchmark → src/koffi/benchmark}/raylib_node_raylib.js +0 -0
  29. package/src/koffi/build/2.1.4/koffi_darwin_arm64.tar.gz +0 -0
  30. package/src/koffi/build/2.1.4/koffi_darwin_x64.tar.gz +0 -0
  31. package/src/koffi/build/2.1.4/koffi_freebsd_arm64.tar.gz +0 -0
  32. package/src/koffi/build/2.1.4/koffi_freebsd_ia32.tar.gz +0 -0
  33. package/src/koffi/build/2.1.4/koffi_freebsd_x64.tar.gz +0 -0
  34. package/src/koffi/build/2.1.4/koffi_linux_arm32hf.tar.gz +0 -0
  35. package/src/koffi/build/2.1.4/koffi_linux_arm64.tar.gz +0 -0
  36. package/src/koffi/build/2.1.4/koffi_linux_ia32.tar.gz +0 -0
  37. package/src/koffi/build/2.1.4/koffi_linux_riscv64hf64.tar.gz +0 -0
  38. package/src/koffi/build/2.1.4/koffi_linux_x64.tar.gz +0 -0
  39. package/src/koffi/build/2.1.4/koffi_openbsd_ia32.tar.gz +0 -0
  40. package/src/koffi/build/2.1.4/koffi_openbsd_x64.tar.gz +0 -0
  41. package/src/koffi/build/2.1.4/koffi_win32_arm64.tar.gz +0 -0
  42. package/src/koffi/build/2.1.4/koffi_win32_ia32.tar.gz +0 -0
  43. package/src/koffi/build/2.1.4/koffi_win32_x64.tar.gz +0 -0
  44. package/{doc → src/koffi/doc}/Makefile +0 -0
  45. package/{doc → src/koffi/doc}/benchmarks.md +0 -0
  46. package/{doc → src/koffi/doc}/benchmarks.xlsx +0 -0
  47. package/{doc → src/koffi/doc}/changes.md +0 -0
  48. package/{doc → src/koffi/doc}/conf.py +0 -0
  49. package/{doc → src/koffi/doc}/contribute.md +5 -5
  50. package/{doc → src/koffi/doc}/functions.md +0 -0
  51. package/{doc → src/koffi/doc}/index.rst +1 -1
  52. package/{doc → src/koffi/doc}/make.bat +0 -0
  53. package/{doc → src/koffi/doc}/memory.md +1 -0
  54. package/{doc → src/koffi/doc}/platforms.md +0 -0
  55. package/{doc → src/koffi/doc}/poetry.lock +0 -0
  56. package/{doc → src/koffi/doc}/pyproject.toml +0 -0
  57. package/{doc → src/koffi/doc}/start.md +0 -0
  58. package/{doc → src/koffi/doc}/static/bench_linux.png +0 -0
  59. package/{doc → src/koffi/doc}/static/bench_windows.png +0 -0
  60. package/{doc → src/koffi/doc}/static/custom.css +0 -0
  61. package/{doc → src/koffi/doc}/static/perf_linux_20220623.png +0 -0
  62. package/{doc → src/koffi/doc}/static/perf_linux_20220623_2.png +0 -0
  63. package/{doc → src/koffi/doc}/static/perf_linux_20220627.png +0 -0
  64. package/{doc → src/koffi/doc}/static/perf_linux_20220628.png +0 -0
  65. package/{doc → src/koffi/doc}/static/perf_linux_20220812.png +0 -0
  66. package/{doc → src/koffi/doc}/static/perf_windows_20220623.png +0 -0
  67. package/{doc → src/koffi/doc}/static/perf_windows_20220623_2.png +0 -0
  68. package/{doc → src/koffi/doc}/static/perf_windows_20220627.png +0 -0
  69. package/{doc → src/koffi/doc}/static/perf_windows_20220628.png +0 -0
  70. package/{doc → src/koffi/doc}/static/perf_windows_20220812.png +0 -0
  71. package/{doc → src/koffi/doc}/templates/badges.html +1 -1
  72. package/{doc → src/koffi/doc}/types.md +0 -0
  73. package/src/koffi/qemu/qemu/.gitkeep +0 -0
  74. package/{qemu → src/koffi/qemu}/qemu.js +217 -131
  75. package/{qemu → src/koffi/qemu}/registry/machines.json +24 -0
  76. package/{qemu → src/koffi/qemu}/registry/sha256sum.txt +0 -0
  77. package/src/{abi_arm32.cc → koffi/src/abi_arm32.cc} +1 -1
  78. package/src/{abi_arm32_fwd.S → koffi/src/abi_arm32_fwd.S} +0 -0
  79. package/src/{abi_arm64.cc → koffi/src/abi_arm64.cc} +1 -1
  80. package/src/{abi_arm64_fwd.S → koffi/src/abi_arm64_fwd.S} +0 -0
  81. package/src/{abi_arm64_fwd.asm → koffi/src/abi_arm64_fwd.asm} +0 -0
  82. package/src/{abi_riscv64.cc → koffi/src/abi_riscv64.cc} +1 -1
  83. package/src/{abi_riscv64_fwd.S → koffi/src/abi_riscv64_fwd.S} +0 -0
  84. package/src/{abi_x64_sysv.cc → koffi/src/abi_x64_sysv.cc} +1 -1
  85. package/src/{abi_x64_sysv_fwd.S → koffi/src/abi_x64_sysv_fwd.S} +0 -0
  86. package/src/{abi_x64_win.cc → koffi/src/abi_x64_win.cc} +1 -1
  87. package/src/{abi_x64_win_fwd.asm → koffi/src/abi_x64_win_fwd.asm} +0 -0
  88. package/src/{abi_x86.cc → koffi/src/abi_x86.cc} +1 -1
  89. package/src/{abi_x86_fwd.S → koffi/src/abi_x86_fwd.S} +0 -0
  90. package/src/{abi_x86_fwd.asm → koffi/src/abi_x86_fwd.asm} +0 -0
  91. package/src/{call.cc → koffi/src/call.cc} +1 -1
  92. package/src/{call.hh → koffi/src/call.hh} +2 -2
  93. package/src/{ffi.cc → koffi/src/ffi.cc} +34 -18
  94. package/src/{ffi.hh → koffi/src/ffi.hh} +5 -3
  95. package/src/{index.js → koffi/src/index.js} +0 -0
  96. package/src/{parser.cc → koffi/src/parser.cc} +1 -1
  97. package/src/{parser.hh → koffi/src/parser.hh} +1 -1
  98. package/src/{util.cc → koffi/src/util.cc} +1 -1
  99. package/src/{util.hh → koffi/src/util.hh} +1 -1
  100. package/{test → src/koffi/test}/CMakeLists.txt +14 -15
  101. package/{test → src/koffi/test}/async.js +0 -0
  102. package/{test → src/koffi/test}/callbacks.js +0 -0
  103. package/{test → src/koffi/test}/misc.c +13 -0
  104. package/{test → src/koffi/test}/misc.def +0 -0
  105. package/{test → src/koffi/test}/raylib.js +0 -0
  106. package/{test → src/koffi/test}/sqlite.js +1 -1
  107. package/{test → src/koffi/test}/sync.js +17 -0
  108. package/vendor/brotli/BUILD +144 -0
  109. package/vendor/brotli/CMakeLists.txt +421 -0
  110. package/vendor/brotli/CONTRIBUTING.md +27 -0
  111. package/vendor/brotli/LICENSE +19 -0
  112. package/vendor/brotli/MANIFEST.in +17 -0
  113. package/vendor/brotli/Makefile +55 -0
  114. package/vendor/brotli/Makefile.am +38 -0
  115. package/vendor/brotli/README +15 -0
  116. package/vendor/brotli/README.md +104 -0
  117. package/vendor/brotli/WORKSPACE +21 -0
  118. package/vendor/brotli/bootstrap +35 -0
  119. package/vendor/brotli/c/common/constants.c +15 -0
  120. package/vendor/brotli/c/common/constants.h +200 -0
  121. package/vendor/brotli/c/common/context.c +156 -0
  122. package/vendor/brotli/c/common/context.h +113 -0
  123. package/vendor/brotli/c/common/dictionary.c +5914 -0
  124. package/vendor/brotli/c/common/dictionary.h +64 -0
  125. package/vendor/brotli/c/common/platform.c +22 -0
  126. package/vendor/brotli/c/common/platform.h +594 -0
  127. package/vendor/brotli/c/common/transform.c +291 -0
  128. package/vendor/brotli/c/common/transform.h +85 -0
  129. package/vendor/brotli/c/common/version.h +26 -0
  130. package/vendor/brotli/c/dec/bit_reader.c +76 -0
  131. package/vendor/brotli/c/dec/bit_reader.h +351 -0
  132. package/vendor/brotli/c/dec/decode.c +2608 -0
  133. package/vendor/brotli/c/dec/huffman.c +339 -0
  134. package/vendor/brotli/c/dec/huffman.h +121 -0
  135. package/vendor/brotli/c/dec/prefix.h +732 -0
  136. package/vendor/brotli/c/dec/state.c +159 -0
  137. package/vendor/brotli/c/dec/state.h +365 -0
  138. package/vendor/brotli/c/enc/backward_references.c +145 -0
  139. package/vendor/brotli/c/enc/backward_references.h +39 -0
  140. package/vendor/brotli/c/enc/backward_references_hq.c +843 -0
  141. package/vendor/brotli/c/enc/backward_references_hq.h +95 -0
  142. package/vendor/brotli/c/enc/backward_references_inc.h +163 -0
  143. package/vendor/brotli/c/enc/bit_cost.c +35 -0
  144. package/vendor/brotli/c/enc/bit_cost.h +63 -0
  145. package/vendor/brotli/c/enc/bit_cost_inc.h +127 -0
  146. package/vendor/brotli/c/enc/block_encoder_inc.h +34 -0
  147. package/vendor/brotli/c/enc/block_splitter.c +194 -0
  148. package/vendor/brotli/c/enc/block_splitter.h +51 -0
  149. package/vendor/brotli/c/enc/block_splitter_inc.h +440 -0
  150. package/vendor/brotli/c/enc/brotli_bit_stream.c +1314 -0
  151. package/vendor/brotli/c/enc/brotli_bit_stream.h +84 -0
  152. package/vendor/brotli/c/enc/cluster.c +56 -0
  153. package/vendor/brotli/c/enc/cluster.h +48 -0
  154. package/vendor/brotli/c/enc/cluster_inc.h +320 -0
  155. package/vendor/brotli/c/enc/command.c +28 -0
  156. package/vendor/brotli/c/enc/command.h +190 -0
  157. package/vendor/brotli/c/enc/compress_fragment.c +790 -0
  158. package/vendor/brotli/c/enc/compress_fragment.h +61 -0
  159. package/vendor/brotli/c/enc/compress_fragment_two_pass.c +645 -0
  160. package/vendor/brotli/c/enc/compress_fragment_two_pass.h +54 -0
  161. package/vendor/brotli/c/enc/dictionary_hash.c +1846 -0
  162. package/vendor/brotli/c/enc/dictionary_hash.h +25 -0
  163. package/vendor/brotli/c/enc/encode.c +1927 -0
  164. package/vendor/brotli/c/enc/encoder_dict.c +33 -0
  165. package/vendor/brotli/c/enc/encoder_dict.h +43 -0
  166. package/vendor/brotli/c/enc/entropy_encode.c +503 -0
  167. package/vendor/brotli/c/enc/entropy_encode.h +122 -0
  168. package/vendor/brotli/c/enc/entropy_encode_static.h +539 -0
  169. package/vendor/brotli/c/enc/fast_log.c +105 -0
  170. package/vendor/brotli/c/enc/fast_log.h +66 -0
  171. package/vendor/brotli/c/enc/find_match_length.h +79 -0
  172. package/vendor/brotli/c/enc/hash.h +488 -0
  173. package/vendor/brotli/c/enc/hash_composite_inc.h +125 -0
  174. package/vendor/brotli/c/enc/hash_forgetful_chain_inc.h +293 -0
  175. package/vendor/brotli/c/enc/hash_longest_match64_inc.h +267 -0
  176. package/vendor/brotli/c/enc/hash_longest_match_inc.h +262 -0
  177. package/vendor/brotli/c/enc/hash_longest_match_quickly_inc.h +266 -0
  178. package/vendor/brotli/c/enc/hash_rolling_inc.h +212 -0
  179. package/vendor/brotli/c/enc/hash_to_binary_tree_inc.h +329 -0
  180. package/vendor/brotli/c/enc/histogram.c +100 -0
  181. package/vendor/brotli/c/enc/histogram.h +63 -0
  182. package/vendor/brotli/c/enc/histogram_inc.h +51 -0
  183. package/vendor/brotli/c/enc/literal_cost.c +175 -0
  184. package/vendor/brotli/c/enc/literal_cost.h +30 -0
  185. package/vendor/brotli/c/enc/memory.c +170 -0
  186. package/vendor/brotli/c/enc/memory.h +114 -0
  187. package/vendor/brotli/c/enc/metablock.c +663 -0
  188. package/vendor/brotli/c/enc/metablock.h +105 -0
  189. package/vendor/brotli/c/enc/metablock_inc.h +183 -0
  190. package/vendor/brotli/c/enc/params.h +46 -0
  191. package/vendor/brotli/c/enc/prefix.h +53 -0
  192. package/vendor/brotli/c/enc/quality.h +165 -0
  193. package/vendor/brotli/c/enc/ringbuffer.h +167 -0
  194. package/vendor/brotli/c/enc/static_dict.c +486 -0
  195. package/vendor/brotli/c/enc/static_dict.h +40 -0
  196. package/vendor/brotli/c/enc/static_dict_lut.h +5864 -0
  197. package/vendor/brotli/c/enc/utf8_util.c +85 -0
  198. package/vendor/brotli/c/enc/utf8_util.h +32 -0
  199. package/vendor/brotli/c/enc/write_bits.h +87 -0
  200. package/vendor/brotli/c/include/brotli/decode.h +344 -0
  201. package/vendor/brotli/c/include/brotli/encode.h +448 -0
  202. package/vendor/brotli/c/include/brotli/port.h +288 -0
  203. package/vendor/brotli/c/include/brotli/types.h +83 -0
  204. package/vendor/brotli/c/tools/brotli.c +1116 -0
  205. package/vendor/brotli/c/tools/brotli.md +107 -0
  206. package/vendor/brotli/compiler_config_setting.bzl +28 -0
  207. package/vendor/brotli/configure +8 -0
  208. package/vendor/brotli/configure-cmake +318 -0
  209. package/vendor/brotli/configure.ac +14 -0
  210. package/vendor/brotli/docs/brotli.1 +132 -0
  211. package/vendor/brotli/docs/constants.h.3 +47 -0
  212. package/vendor/brotli/docs/decode.h.3 +415 -0
  213. package/vendor/brotli/docs/encode.h.3 +586 -0
  214. package/vendor/brotli/docs/types.h.3 +117 -0
  215. package/vendor/brotli/premake5.lua +78 -0
  216. package/vendor/brotli/python/Makefile +57 -0
  217. package/vendor/brotli/python/README.md +54 -0
  218. package/vendor/brotli/python/_brotli.cc +753 -0
  219. package/vendor/brotli/python/bro.py +160 -0
  220. package/vendor/brotli/python/brotli.py +56 -0
  221. package/vendor/brotli/python/tests/__init__.py +0 -0
  222. package/vendor/brotli/python/tests/_test_utils.py +112 -0
  223. package/vendor/brotli/python/tests/bro_test.py +102 -0
  224. package/vendor/brotli/python/tests/compress_test.py +41 -0
  225. package/vendor/brotli/python/tests/compressor_test.py +94 -0
  226. package/vendor/brotli/python/tests/decompress_test.py +42 -0
  227. package/vendor/brotli/python/tests/decompressor_test.py +59 -0
  228. package/vendor/brotli/scripts/libbrotlicommon.pc.in +11 -0
  229. package/vendor/brotli/scripts/libbrotlidec.pc.in +12 -0
  230. package/vendor/brotli/scripts/libbrotlienc.pc.in +12 -0
  231. package/vendor/brotli/scripts/sources.lst +104 -0
  232. package/vendor/brotli/setup.cfg +5 -0
  233. package/vendor/brotli/setup.py +293 -0
  234. package/vendor/brotli/tests/Makefile +17 -0
  235. package/vendor/brotli/tests/compatibility_test.sh +25 -0
  236. package/vendor/brotli/tests/roundtrip_test.sh +36 -0
  237. package/vendor/brotli/tests/run-compatibility-test.cmake +31 -0
  238. package/vendor/brotli/tests/run-roundtrip-test.cmake +36 -0
  239. package/vendor/brotli/tests/testdata/empty +0 -0
  240. package/vendor/brotli/tests/testdata/empty.compressed +1 -0
  241. package/vendor/brotli/tests/testdata/ukkonooa +1 -0
  242. package/vendor/brotli/tests/testdata/ukkonooa.compressed +0 -0
  243. package/vendor/miniz/ChangeLog.md +235 -0
  244. package/vendor/miniz/LICENSE +22 -0
  245. package/vendor/miniz/examples/example1.c +105 -0
  246. package/vendor/miniz/examples/example2.c +164 -0
  247. package/vendor/miniz/examples/example3.c +269 -0
  248. package/vendor/miniz/examples/example4.c +102 -0
  249. package/vendor/miniz/examples/example5.c +327 -0
  250. package/vendor/miniz/examples/example6.c +166 -0
  251. package/vendor/miniz/miniz.c +7835 -0
  252. package/vendor/miniz/miniz.h +1422 -0
  253. package/vendor/miniz/readme.md +46 -0
  254. package/vendor/{sqlite3 → sqlite3mc}/sqlite3ext.h +18 -2
  255. package/vendor/{sqlite3/sqlite3.c → sqlite3mc/sqlite3mc.c} +60872 -4890
  256. package/vendor/sqlite3mc/sqlite3mc.def +312 -0
  257. package/vendor/{sqlite3/sqlite3.h → sqlite3mc/sqlite3mc.h} +480 -36
  258. package/build/qemu/2.1.3/koffi_darwin_arm64.tar.gz +0 -0
  259. package/build/qemu/2.1.3/koffi_darwin_x64.tar.gz +0 -0
  260. package/build/qemu/2.1.3/koffi_freebsd_arm64.tar.gz +0 -0
  261. package/build/qemu/2.1.3/koffi_freebsd_ia32.tar.gz +0 -0
  262. package/build/qemu/2.1.3/koffi_freebsd_x64.tar.gz +0 -0
  263. package/build/qemu/2.1.3/koffi_linux_arm32hf.tar.gz +0 -0
  264. package/build/qemu/2.1.3/koffi_linux_arm64.tar.gz +0 -0
  265. package/build/qemu/2.1.3/koffi_linux_ia32.tar.gz +0 -0
  266. package/build/qemu/2.1.3/koffi_linux_riscv64hf64.tar.gz +0 -0
  267. package/build/qemu/2.1.3/koffi_linux_x64.tar.gz +0 -0
  268. package/build/qemu/2.1.3/koffi_openbsd_ia32.tar.gz +0 -0
  269. package/build/qemu/2.1.3/koffi_openbsd_x64.tar.gz +0 -0
  270. package/build/qemu/2.1.3/koffi_win32_arm64.tar.gz +0 -0
  271. package/build/qemu/2.1.3/koffi_win32_ia32.tar.gz +0 -0
  272. package/build/qemu/2.1.3/koffi_win32_x64.tar.gz +0 -0
  273. package/vendor/_patches/glfw_001_fix_openbsd_xlib_soname.patch +0 -145
  274. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj +0 -226
  275. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.filters +0 -10
  276. package/vendor/raylib/projects/VS2019-Android/raylib_android/raylib_android.NativeActivity/raylib_android.NativeActivity.vcxproj.user +0 -4
  277. package/vendor/raylib/projects/VS2019-Android/raylib_android.sln +0 -75
  278. package/vendor/raylib/projects/VS2022/examples/audio_module_playing.vcxproj +0 -390
  279. package/vendor/raylib/projects/VS2022/examples/audio_multichannel_sound.vcxproj +0 -390
  280. package/vendor/raylib/projects/VS2022/examples/audio_music_stream.vcxproj +0 -390
  281. package/vendor/raylib/projects/VS2022/examples/audio_raw_stream.vcxproj +0 -390
  282. package/vendor/raylib/projects/VS2022/examples/audio_sound_loading.vcxproj +0 -390
  283. package/vendor/raylib/projects/VS2022/examples/audio_stream_effects.vcxproj +0 -390
  284. package/vendor/raylib/projects/VS2022/examples/core_2d_camera.vcxproj +0 -390
  285. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_mouse_zoom.vcxproj +0 -390
  286. package/vendor/raylib/projects/VS2022/examples/core_2d_camera_platformer.vcxproj +0 -390
  287. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_first_person.vcxproj +0 -390
  288. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_free.vcxproj +0 -390
  289. package/vendor/raylib/projects/VS2022/examples/core_3d_camera_mode.vcxproj +0 -390
  290. package/vendor/raylib/projects/VS2022/examples/core_3d_picking.vcxproj +0 -390
  291. package/vendor/raylib/projects/VS2022/examples/core_basic_screen_manager.vcxproj +0 -390
  292. package/vendor/raylib/projects/VS2022/examples/core_basic_window.vcxproj +0 -390
  293. package/vendor/raylib/projects/VS2022/examples/core_custom_frame_control.vcxproj +0 -390
  294. package/vendor/raylib/projects/VS2022/examples/core_custom_logging.vcxproj +0 -390
  295. package/vendor/raylib/projects/VS2022/examples/core_drop_files.vcxproj +0 -390
  296. package/vendor/raylib/projects/VS2022/examples/core_input_gamepad.vcxproj +0 -387
  297. package/vendor/raylib/projects/VS2022/examples/core_input_gestures.vcxproj +0 -387
  298. package/vendor/raylib/projects/VS2022/examples/core_input_keys.vcxproj +0 -387
  299. package/vendor/raylib/projects/VS2022/examples/core_input_mouse.vcxproj +0 -387
  300. package/vendor/raylib/projects/VS2022/examples/core_input_mouse_wheel.vcxproj +0 -387
  301. package/vendor/raylib/projects/VS2022/examples/core_input_multitouch.vcxproj +0 -387
  302. package/vendor/raylib/projects/VS2022/examples/core_loading_thread.vcxproj +0 -387
  303. package/vendor/raylib/projects/VS2022/examples/core_random_values.vcxproj +0 -387
  304. package/vendor/raylib/projects/VS2022/examples/core_scissor_test.vcxproj +0 -387
  305. package/vendor/raylib/projects/VS2022/examples/core_split_screen.vcxproj +0 -387
  306. package/vendor/raylib/projects/VS2022/examples/core_storage_values.vcxproj +0 -387
  307. package/vendor/raylib/projects/VS2022/examples/core_vr_simulator.vcxproj +0 -387
  308. package/vendor/raylib/projects/VS2022/examples/core_window_flags.vcxproj +0 -387
  309. package/vendor/raylib/projects/VS2022/examples/core_window_letterbox.vcxproj +0 -387
  310. package/vendor/raylib/projects/VS2022/examples/core_window_should_close.vcxproj +0 -390
  311. package/vendor/raylib/projects/VS2022/examples/core_world_screen.vcxproj +0 -387
  312. package/vendor/raylib/projects/VS2022/examples/easings_testbed.vcxproj +0 -387
  313. package/vendor/raylib/projects/VS2022/examples/embedded_files_loading.vcxproj +0 -387
  314. package/vendor/raylib/projects/VS2022/examples/models_animation.vcxproj +0 -387
  315. package/vendor/raylib/projects/VS2022/examples/models_billboard.vcxproj +0 -387
  316. package/vendor/raylib/projects/VS2022/examples/models_box_collisions.vcxproj +0 -387
  317. package/vendor/raylib/projects/VS2022/examples/models_cubicmap.vcxproj +0 -387
  318. package/vendor/raylib/projects/VS2022/examples/models_first_person_maze.vcxproj +0 -387
  319. package/vendor/raylib/projects/VS2022/examples/models_geometric_shapes.vcxproj +0 -387
  320. package/vendor/raylib/projects/VS2022/examples/models_heightmap.vcxproj +0 -387
  321. package/vendor/raylib/projects/VS2022/examples/models_loading.vcxproj +0 -387
  322. package/vendor/raylib/projects/VS2022/examples/models_loading_gltf.vcxproj +0 -387
  323. package/vendor/raylib/projects/VS2022/examples/models_loading_vox.vcxproj +0 -387
  324. package/vendor/raylib/projects/VS2022/examples/models_mesh_generation.vcxproj +0 -387
  325. package/vendor/raylib/projects/VS2022/examples/models_mesh_picking.vcxproj +0 -387
  326. package/vendor/raylib/projects/VS2022/examples/models_orthographic_projection.vcxproj +0 -387
  327. package/vendor/raylib/projects/VS2022/examples/models_rlgl_solar_system.vcxproj +0 -387
  328. package/vendor/raylib/projects/VS2022/examples/models_skybox.vcxproj +0 -387
  329. package/vendor/raylib/projects/VS2022/examples/models_waving_cubes.vcxproj +0 -387
  330. package/vendor/raylib/projects/VS2022/examples/models_yaw_pitch_roll.vcxproj +0 -387
  331. package/vendor/raylib/projects/VS2022/examples/rlgl_compute_shaders.vcxproj +0 -391
  332. package/vendor/raylib/projects/VS2022/examples/rlgl_standalone.vcxproj +0 -391
  333. package/vendor/raylib/projects/VS2022/examples/shaders_basic_lighting.vcxproj +0 -387
  334. package/vendor/raylib/projects/VS2022/examples/shaders_custom_uniform.vcxproj +0 -387
  335. package/vendor/raylib/projects/VS2022/examples/shaders_eratosthenes.vcxproj +0 -387
  336. package/vendor/raylib/projects/VS2022/examples/shaders_fog.vcxproj +0 -387
  337. package/vendor/raylib/projects/VS2022/examples/shaders_hot_reloading.vcxproj +0 -387
  338. package/vendor/raylib/projects/VS2022/examples/shaders_julia_set.vcxproj +0 -387
  339. package/vendor/raylib/projects/VS2022/examples/shaders_mesh_instancing.vcxproj +0 -387
  340. package/vendor/raylib/projects/VS2022/examples/shaders_model_shader.vcxproj +0 -387
  341. package/vendor/raylib/projects/VS2022/examples/shaders_multi_sample2d.vcxproj +0 -387
  342. package/vendor/raylib/projects/VS2022/examples/shaders_palette_switch.vcxproj +0 -387
  343. package/vendor/raylib/projects/VS2022/examples/shaders_postprocessing.vcxproj +0 -387
  344. package/vendor/raylib/projects/VS2022/examples/shaders_raymarching.vcxproj +0 -387
  345. package/vendor/raylib/projects/VS2022/examples/shaders_shapes_textures.vcxproj +0 -387
  346. package/vendor/raylib/projects/VS2022/examples/shaders_simple_mask.vcxproj +0 -387
  347. package/vendor/raylib/projects/VS2022/examples/shaders_spotlight.vcxproj +0 -387
  348. package/vendor/raylib/projects/VS2022/examples/shaders_texture_drawing.vcxproj +0 -387
  349. package/vendor/raylib/projects/VS2022/examples/shaders_texture_waves.vcxproj +0 -387
  350. package/vendor/raylib/projects/VS2022/examples/shapes_basic_shapes.vcxproj +0 -387
  351. package/vendor/raylib/projects/VS2022/examples/shapes_bouncing_ball.vcxproj +0 -387
  352. package/vendor/raylib/projects/VS2022/examples/shapes_collision_area.vcxproj +0 -387
  353. package/vendor/raylib/projects/VS2022/examples/shapes_colors_palette.vcxproj +0 -387
  354. package/vendor/raylib/projects/VS2022/examples/shapes_draw_circle_sector.vcxproj +0 -387
  355. package/vendor/raylib/projects/VS2022/examples/shapes_draw_rectangle_rounded.vcxproj +0 -387
  356. package/vendor/raylib/projects/VS2022/examples/shapes_draw_ring.vcxproj +0 -387
  357. package/vendor/raylib/projects/VS2022/examples/shapes_easings_ball_anim.vcxproj +0 -387
  358. package/vendor/raylib/projects/VS2022/examples/shapes_easings_box_anim.vcxproj +0 -387
  359. package/vendor/raylib/projects/VS2022/examples/shapes_easings_rectangle_array.vcxproj +0 -387
  360. package/vendor/raylib/projects/VS2022/examples/shapes_following_eyes.vcxproj +0 -387
  361. package/vendor/raylib/projects/VS2022/examples/shapes_lines_bezier.vcxproj +0 -387
  362. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib.vcxproj +0 -387
  363. package/vendor/raylib/projects/VS2022/examples/shapes_logo_raylib_anim.vcxproj +0 -387
  364. package/vendor/raylib/projects/VS2022/examples/shapes_rectangle_scaling.vcxproj +0 -387
  365. package/vendor/raylib/projects/VS2022/examples/text_codepoints_loading.vcxproj +0 -387
  366. package/vendor/raylib/projects/VS2022/examples/text_draw_3d.vcxproj +0 -387
  367. package/vendor/raylib/projects/VS2022/examples/text_font_filters.vcxproj +0 -387
  368. package/vendor/raylib/projects/VS2022/examples/text_font_loading.vcxproj +0 -387
  369. package/vendor/raylib/projects/VS2022/examples/text_font_sdf.vcxproj +0 -387
  370. package/vendor/raylib/projects/VS2022/examples/text_font_spritefont.vcxproj +0 -387
  371. package/vendor/raylib/projects/VS2022/examples/text_format_text.vcxproj +0 -387
  372. package/vendor/raylib/projects/VS2022/examples/text_input_box.vcxproj +0 -387
  373. package/vendor/raylib/projects/VS2022/examples/text_raylib_fonts.vcxproj +0 -387
  374. package/vendor/raylib/projects/VS2022/examples/text_rectangle_bounds.vcxproj +0 -387
  375. package/vendor/raylib/projects/VS2022/examples/text_unicode.vcxproj +0 -387
  376. package/vendor/raylib/projects/VS2022/examples/text_writing_anim.vcxproj +0 -387
  377. package/vendor/raylib/projects/VS2022/examples/textures_background_scrolling.vcxproj +0 -387
  378. package/vendor/raylib/projects/VS2022/examples/textures_blend_modes.vcxproj +0 -387
  379. package/vendor/raylib/projects/VS2022/examples/textures_bunnymark.vcxproj +0 -387
  380. package/vendor/raylib/projects/VS2022/examples/textures_draw_tiled.vcxproj +0 -387
  381. package/vendor/raylib/projects/VS2022/examples/textures_fog_of_war.vcxproj +0 -387
  382. package/vendor/raylib/projects/VS2022/examples/textures_gif_player.vcxproj +0 -387
  383. package/vendor/raylib/projects/VS2022/examples/textures_image_drawing.vcxproj +0 -387
  384. package/vendor/raylib/projects/VS2022/examples/textures_image_generation.vcxproj +0 -387
  385. package/vendor/raylib/projects/VS2022/examples/textures_image_loading.vcxproj +0 -387
  386. package/vendor/raylib/projects/VS2022/examples/textures_image_processing.vcxproj +0 -387
  387. package/vendor/raylib/projects/VS2022/examples/textures_image_text.vcxproj +0 -387
  388. package/vendor/raylib/projects/VS2022/examples/textures_logo_raylib.vcxproj +0 -387
  389. package/vendor/raylib/projects/VS2022/examples/textures_mouse_painting.vcxproj +0 -387
  390. package/vendor/raylib/projects/VS2022/examples/textures_npatch_drawing.vcxproj +0 -387
  391. package/vendor/raylib/projects/VS2022/examples/textures_particles_blending.vcxproj +0 -387
  392. package/vendor/raylib/projects/VS2022/examples/textures_polygon.vcxproj +0 -387
  393. package/vendor/raylib/projects/VS2022/examples/textures_raw_data.vcxproj +0 -387
  394. package/vendor/raylib/projects/VS2022/examples/textures_sprite_anim.vcxproj +0 -387
  395. package/vendor/raylib/projects/VS2022/examples/textures_sprite_button.vcxproj +0 -387
  396. package/vendor/raylib/projects/VS2022/examples/textures_sprite_explosion.vcxproj +0 -387
  397. package/vendor/raylib/projects/VS2022/examples/textures_srcrec_dstrec.vcxproj +0 -387
  398. package/vendor/raylib/projects/VS2022/examples/textures_to_image.vcxproj +0 -387
  399. package/vendor/raylib/projects/VS2022/raylib/raylib.vcxproj +0 -340
  400. package/vendor/raylib/projects/VS2022/raylib.sln +0 -2347
  401. 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}