extzstd 0.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (134) hide show
  1. checksums.yaml +5 -5
  2. data/HISTORY.ja.md +39 -0
  3. data/README.md +38 -56
  4. data/contrib/zstd/CHANGELOG +613 -0
  5. data/contrib/zstd/CODE_OF_CONDUCT.md +5 -0
  6. data/contrib/zstd/CONTRIBUTING.md +406 -0
  7. data/contrib/zstd/COPYING +339 -0
  8. data/contrib/zstd/Makefile +420 -0
  9. data/contrib/zstd/README.md +179 -41
  10. data/contrib/zstd/TESTING.md +44 -0
  11. data/contrib/zstd/appveyor.yml +292 -0
  12. data/contrib/zstd/lib/BUCK +234 -0
  13. data/contrib/zstd/lib/Makefile +451 -0
  14. data/contrib/zstd/lib/README.md +207 -0
  15. data/contrib/zstd/{common → lib/common}/bitstream.h +187 -138
  16. data/contrib/zstd/lib/common/compiler.h +288 -0
  17. data/contrib/zstd/lib/common/cpu.h +213 -0
  18. data/contrib/zstd/lib/common/debug.c +24 -0
  19. data/contrib/zstd/lib/common/debug.h +107 -0
  20. data/contrib/zstd/lib/common/entropy_common.c +362 -0
  21. data/contrib/zstd/{common → lib/common}/error_private.c +25 -12
  22. data/contrib/zstd/{common → lib/common}/error_private.h +14 -10
  23. data/contrib/zstd/{common → lib/common}/fse.h +173 -92
  24. data/contrib/zstd/{common → lib/common}/fse_decompress.c +149 -85
  25. data/contrib/zstd/lib/common/huf.h +361 -0
  26. data/contrib/zstd/{common → lib/common}/mem.h +115 -59
  27. data/contrib/zstd/lib/common/pool.c +350 -0
  28. data/contrib/zstd/lib/common/pool.h +84 -0
  29. data/contrib/zstd/lib/common/threading.c +122 -0
  30. data/contrib/zstd/lib/common/threading.h +155 -0
  31. data/contrib/zstd/{common → lib/common}/xxhash.c +55 -96
  32. data/contrib/zstd/{common → lib/common}/xxhash.h +23 -47
  33. data/contrib/zstd/lib/common/zstd_common.c +83 -0
  34. data/contrib/zstd/lib/common/zstd_deps.h +111 -0
  35. data/contrib/zstd/lib/common/zstd_errors.h +95 -0
  36. data/contrib/zstd/lib/common/zstd_internal.h +478 -0
  37. data/contrib/zstd/{compress → lib/compress}/fse_compress.c +214 -319
  38. data/contrib/zstd/lib/compress/hist.c +181 -0
  39. data/contrib/zstd/lib/compress/hist.h +75 -0
  40. data/contrib/zstd/lib/compress/huf_compress.c +913 -0
  41. data/contrib/zstd/lib/compress/zstd_compress.c +5208 -0
  42. data/contrib/zstd/lib/compress/zstd_compress_internal.h +1203 -0
  43. data/contrib/zstd/lib/compress/zstd_compress_literals.c +158 -0
  44. data/contrib/zstd/lib/compress/zstd_compress_literals.h +29 -0
  45. data/contrib/zstd/lib/compress/zstd_compress_sequences.c +433 -0
  46. data/contrib/zstd/lib/compress/zstd_compress_sequences.h +54 -0
  47. data/contrib/zstd/lib/compress/zstd_compress_superblock.c +849 -0
  48. data/contrib/zstd/lib/compress/zstd_compress_superblock.h +32 -0
  49. data/contrib/zstd/lib/compress/zstd_cwksp.h +561 -0
  50. data/contrib/zstd/lib/compress/zstd_double_fast.c +521 -0
  51. data/contrib/zstd/lib/compress/zstd_double_fast.h +38 -0
  52. data/contrib/zstd/lib/compress/zstd_fast.c +496 -0
  53. data/contrib/zstd/lib/compress/zstd_fast.h +37 -0
  54. data/contrib/zstd/lib/compress/zstd_lazy.c +1412 -0
  55. data/contrib/zstd/lib/compress/zstd_lazy.h +87 -0
  56. data/contrib/zstd/lib/compress/zstd_ldm.c +660 -0
  57. data/contrib/zstd/lib/compress/zstd_ldm.h +116 -0
  58. data/contrib/zstd/lib/compress/zstd_opt.c +1345 -0
  59. data/contrib/zstd/lib/compress/zstd_opt.h +56 -0
  60. data/contrib/zstd/lib/compress/zstdmt_compress.c +1811 -0
  61. data/contrib/zstd/lib/compress/zstdmt_compress.h +110 -0
  62. data/contrib/zstd/lib/decompress/huf_decompress.c +1350 -0
  63. data/contrib/zstd/lib/decompress/zstd_ddict.c +244 -0
  64. data/contrib/zstd/lib/decompress/zstd_ddict.h +44 -0
  65. data/contrib/zstd/lib/decompress/zstd_decompress.c +1930 -0
  66. data/contrib/zstd/lib/decompress/zstd_decompress_block.c +1540 -0
  67. data/contrib/zstd/lib/decompress/zstd_decompress_block.h +62 -0
  68. data/contrib/zstd/lib/decompress/zstd_decompress_internal.h +190 -0
  69. data/contrib/zstd/{common → lib/deprecated}/zbuff.h +68 -45
  70. data/contrib/zstd/lib/deprecated/zbuff_common.c +26 -0
  71. data/contrib/zstd/lib/deprecated/zbuff_compress.c +147 -0
  72. data/contrib/zstd/lib/deprecated/zbuff_decompress.c +75 -0
  73. data/contrib/zstd/lib/dictBuilder/cover.c +1245 -0
  74. data/contrib/zstd/lib/dictBuilder/cover.h +157 -0
  75. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.c +3 -3
  76. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/divsufsort.h +0 -0
  77. data/contrib/zstd/lib/dictBuilder/fastcover.c +758 -0
  78. data/contrib/zstd/{dictBuilder → lib/dictBuilder}/zdict.c +318 -194
  79. data/contrib/zstd/lib/dictBuilder/zdict.h +305 -0
  80. data/contrib/zstd/{legacy → lib/legacy}/zstd_legacy.h +171 -15
  81. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.c +191 -124
  82. data/contrib/zstd/{legacy → lib/legacy}/zstd_v01.h +19 -5
  83. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.c +125 -125
  84. data/contrib/zstd/{legacy → lib/legacy}/zstd_v02.h +19 -5
  85. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.c +125 -124
  86. data/contrib/zstd/{legacy → lib/legacy}/zstd_v03.h +20 -6
  87. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.c +151 -299
  88. data/contrib/zstd/{legacy → lib/legacy}/zstd_v04.h +19 -5
  89. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.c +237 -243
  90. data/contrib/zstd/{legacy → lib/legacy}/zstd_v05.h +19 -6
  91. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.c +130 -143
  92. data/contrib/zstd/{legacy → lib/legacy}/zstd_v06.h +18 -5
  93. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.c +158 -157
  94. data/contrib/zstd/{legacy → lib/legacy}/zstd_v07.h +19 -5
  95. data/contrib/zstd/lib/libzstd.pc.in +15 -0
  96. data/contrib/zstd/lib/zstd.h +2391 -0
  97. data/ext/depend +2 -0
  98. data/ext/extconf.rb +15 -6
  99. data/ext/extzstd.c +76 -145
  100. data/ext/extzstd.h +80 -31
  101. data/ext/extzstd_stream.c +417 -142
  102. data/ext/libzstd_conf.h +8 -0
  103. data/ext/zstd_common.c +10 -7
  104. data/ext/zstd_compress.c +14 -5
  105. data/ext/zstd_decompress.c +5 -4
  106. data/ext/zstd_dictbuilder.c +9 -4
  107. data/ext/zstd_dictbuilder_fastcover.c +3 -0
  108. data/ext/zstd_legacy_v01.c +3 -1
  109. data/ext/zstd_legacy_v02.c +3 -1
  110. data/ext/zstd_legacy_v03.c +3 -1
  111. data/ext/zstd_legacy_v04.c +3 -1
  112. data/ext/zstd_legacy_v05.c +3 -1
  113. data/ext/zstd_legacy_v06.c +3 -1
  114. data/ext/zstd_legacy_v07.c +3 -1
  115. data/gemstub.rb +10 -24
  116. data/lib/extzstd.rb +64 -179
  117. data/lib/extzstd/version.rb +6 -1
  118. data/test/test_basic.rb +9 -6
  119. metadata +113 -57
  120. data/HISTORY.ja +0 -5
  121. data/contrib/zstd/common/entropy_common.c +0 -225
  122. data/contrib/zstd/common/huf.h +0 -228
  123. data/contrib/zstd/common/zstd_common.c +0 -83
  124. data/contrib/zstd/common/zstd_errors.h +0 -60
  125. data/contrib/zstd/common/zstd_internal.h +0 -267
  126. data/contrib/zstd/compress/huf_compress.c +0 -533
  127. data/contrib/zstd/compress/zbuff_compress.c +0 -319
  128. data/contrib/zstd/compress/zstd_compress.c +0 -3264
  129. data/contrib/zstd/compress/zstd_opt.h +0 -900
  130. data/contrib/zstd/decompress/huf_decompress.c +0 -883
  131. data/contrib/zstd/decompress/zbuff_decompress.c +0 -252
  132. data/contrib/zstd/decompress/zstd_decompress.c +0 -1842
  133. data/contrib/zstd/dictBuilder/zdict.h +0 -111
  134. data/contrib/zstd/zstd.h +0 -640
@@ -0,0 +1,44 @@
1
+ Testing
2
+ =======
3
+
4
+ Zstandard CI testing is split up into three sections:
5
+ short, medium, and long tests.
6
+
7
+ Short Tests
8
+ -----------
9
+ Short tests run on CircleCI for new commits on every branch and pull request.
10
+ They consist of the following tests:
11
+ - Compilation on all supported targets (x86, x86_64, ARM, AArch64, PowerPC, and PowerPC64)
12
+ - Compilation on various versions of gcc, clang, and g++
13
+ - `tests/playTests.sh` on x86_64, without the tests on long data (CLI tests)
14
+ - Small tests (`tests/legacy.c`, `tests/longmatch.c`) on x64_64
15
+
16
+ Medium Tests
17
+ ------------
18
+ Medium tests run on every commit and pull request to `dev` branch, on TravisCI.
19
+ They consist of the following tests:
20
+ - The following tests run with UBsan and Asan on x86_64 and x86, as well as with
21
+ Msan on x86_64
22
+ - `tests/playTests.sh --test-large-data`
23
+ - Fuzzer tests: `tests/fuzzer.c`, `tests/zstreamtest.c`, and `tests/decodecorpus.c`
24
+ - `tests/zstreamtest.c` under Tsan (streaming mode, including multithreaded mode)
25
+ - Valgrind Test (`make -C tests valgrindTest`) (testing CLI and fuzzer under valgrind)
26
+ - Fuzzer tests (see above) on ARM, AArch64, PowerPC, and PowerPC64
27
+
28
+ Long Tests
29
+ ----------
30
+ Long tests run on all commits to `master` branch,
31
+ and once a day on the current version of `dev` branch,
32
+ on TravisCI.
33
+ They consist of the following tests:
34
+ - Entire test suite (including fuzzers and some other specialized tests) on:
35
+ - x86_64 and x86 with UBsan and Asan
36
+ - x86_64 with Msan
37
+ - ARM, AArch64, PowerPC, and PowerPC64
38
+ - Streaming mode fuzzer with Tsan (for the `zstdmt` testing)
39
+ - ZlibWrapper tests, including under valgrind
40
+ - Versions test (ensuring `zstd` can decode files from all previous versions)
41
+ - `pzstd` with asan and tsan, as well as in 32-bits mode
42
+ - Testing `zstd` with legacy mode off
43
+ - Testing `zbuff` (old streaming API)
44
+ - Entire test suite and make install on macOS
@@ -0,0 +1,292 @@
1
+ # Following tests are run _only_ on master branch
2
+ # To reproduce these tests, it's possible to push into a branch `appveyorTest`
3
+ # or a branch `visual*`, they will intentionnally trigger `master` tests
4
+
5
+ -
6
+ version: 1.0.{build}
7
+ branches:
8
+ only:
9
+ - master
10
+ - appveyorTest
11
+ - /visual*/
12
+ environment:
13
+ matrix:
14
+ - COMPILER: "gcc"
15
+ HOST: "mingw"
16
+ PLATFORM: "x64"
17
+ SCRIPT: "make allzstd MOREFLAGS=-static && make -C tests fullbench-lib"
18
+ ARTIFACT: "true"
19
+ BUILD: "true"
20
+ - COMPILER: "gcc"
21
+ HOST: "mingw"
22
+ PLATFORM: "x86"
23
+ SCRIPT: "make allzstd MOREFLAGS=-static"
24
+ ARTIFACT: "true"
25
+ BUILD: "true"
26
+ - COMPILER: "clang"
27
+ HOST: "mingw"
28
+ PLATFORM: "x64"
29
+ SCRIPT: "MOREFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make allzstd"
30
+ BUILD: "true"
31
+
32
+ - COMPILER: "gcc"
33
+ HOST: "mingw"
34
+ PLATFORM: "x64"
35
+ SCRIPT: ""
36
+ TEST: "cmake"
37
+
38
+ - COMPILER: "visual"
39
+ HOST: "visual"
40
+ PLATFORM: "x64"
41
+ CONFIGURATION: "Debug"
42
+ - COMPILER: "visual"
43
+ HOST: "visual"
44
+ PLATFORM: "Win32"
45
+ CONFIGURATION: "Debug"
46
+ - COMPILER: "visual"
47
+ HOST: "visual"
48
+ PLATFORM: "x64"
49
+ CONFIGURATION: "Release"
50
+ - COMPILER: "visual"
51
+ HOST: "visual"
52
+ PLATFORM: "Win32"
53
+ CONFIGURATION: "Release"
54
+
55
+ install:
56
+ - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION%
57
+ - SET PATH_ORIGINAL=%PATH%
58
+ - if [%HOST%]==[mingw] (
59
+ SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" &&
60
+ SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" &&
61
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
62
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
63
+ )
64
+ - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
65
+ SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;"
66
+ )
67
+
68
+ build_script:
69
+ - if [%HOST%]==[mingw] (
70
+ ( if [%PLATFORM%]==[x64] (
71
+ SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%"
72
+ ) else if [%PLATFORM%]==[x86] (
73
+ SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%"
74
+ ) )
75
+ )
76
+ - if [%HOST%]==[mingw] if [%BUILD%]==[true] (
77
+ make -v &&
78
+ sh -c "%COMPILER% -v" &&
79
+ ECHO Building zlib to static link &&
80
+ SET "CC=%COMPILER%" &&
81
+ sh -c "cd .. && git clone --depth 1 --branch v1.2.11 https://github.com/madler/zlib" &&
82
+ sh -c "cd ../zlib && make -f win32/Makefile.gcc libz.a"
83
+ ECHO Building zstd &&
84
+ SET "CPPFLAGS=-I../../zlib" &&
85
+ SET "LDFLAGS=../../zlib/libz.a" &&
86
+ sh -c "%SCRIPT%" &&
87
+ ( if [%COMPILER%]==[gcc] if [%ARTIFACT%]==[true]
88
+ ECHO Creating artifacts &&
89
+ ECHO %cd% &&
90
+ lib\dll\example\build_package.bat &&
91
+ make -C programs DEBUGFLAGS= clean zstd &&
92
+ cd programs\ && 7z a -tzip -mx9 zstd-win-binary-%PLATFORM%.zip zstd.exe &&
93
+ appveyor PushArtifact zstd-win-binary-%PLATFORM%.zip &&
94
+ cp zstd.exe ..\bin\zstd.exe &&
95
+ git clone --depth 1 --branch master https://github.com/facebook/zstd &&
96
+ cd zstd &&
97
+ git archive --format=tar master -o zstd-src.tar &&
98
+ ..\zstd -19 zstd-src.tar &&
99
+ appveyor PushArtifact zstd-src.tar.zst &&
100
+ certUtil -hashfile zstd-src.tar.zst SHA256 > zstd-src.tar.zst.sha256.sig &&
101
+ appveyor PushArtifact zstd-src.tar.zst.sha256.sig &&
102
+ cd ..\..\bin\ &&
103
+ 7z a -tzip -mx9 zstd-win-release-%PLATFORM%.zip * &&
104
+ appveyor PushArtifact zstd-win-release-%PLATFORM%.zip
105
+ )
106
+ )
107
+ - if [%HOST%]==[visual] (
108
+ ECHO *** &&
109
+ ECHO *** Building Visual Studio 2008 %PLATFORM%\%CONFIGURATION% in %APPVEYOR_BUILD_FOLDER% &&
110
+ ECHO *** &&
111
+ msbuild "build\VS2008\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v90 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
112
+ DIR build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\*.exe &&
113
+ MD5sum build/VS2008/bin/%PLATFORM%/%CONFIGURATION%/*.exe &&
114
+ COPY build\VS2008\bin\%PLATFORM%\%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2008_%PLATFORM%_%CONFIGURATION%.exe &&
115
+ ECHO *** &&
116
+ ECHO *** Building Visual Studio 2010 %PLATFORM%\%CONFIGURATION% &&
117
+ ECHO *** &&
118
+ msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
119
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
120
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
121
+ msbuild "build\VS2010\zstd.sln" %ADDITIONALPARAM% /m /verbosity:minimal /property:PlatformToolset=v100 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
122
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
123
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
124
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2010_%PLATFORM%_%CONFIGURATION%.exe &&
125
+ ECHO *** &&
126
+ ECHO *** Building Visual Studio 2012 %PLATFORM%\%CONFIGURATION% &&
127
+ ECHO *** &&
128
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
129
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
130
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
131
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v110 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
132
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
133
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
134
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2012_%PLATFORM%_%CONFIGURATION%.exe &&
135
+ ECHO *** &&
136
+ ECHO *** Building Visual Studio 2013 %PLATFORM%\%CONFIGURATION% &&
137
+ ECHO *** &&
138
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
139
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
140
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
141
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v120 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
142
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
143
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
144
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2013_%PLATFORM%_%CONFIGURATION%.exe &&
145
+ ECHO *** &&
146
+ ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
147
+ ECHO *** &&
148
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
149
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
150
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
151
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
152
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
153
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
154
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
155
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
156
+ )
157
+
158
+ test_script:
159
+ - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION%
160
+ - SET "CC=gcc"
161
+ - SET "CXX=g++"
162
+ - if [%TEST%]==[cmake] (
163
+ mkdir build\cmake\build &&
164
+ cd build\cmake\build &&
165
+ SET FUZZERTEST=-T2mn &&
166
+ SET ZSTREAM_TESTTIME=-T2mn &&
167
+ cmake -G "Visual Studio 14 2015 Win64" .. &&
168
+ cd ..\..\.. &&
169
+ make clean
170
+ )
171
+ - SET "FUZZERTEST=-T30s"
172
+ - if [%HOST%]==[visual] if [%CONFIGURATION%]==[Release] (
173
+ CD tests &&
174
+ SET ZSTD_BIN=./zstd.exe&&
175
+ SET DATAGEN_BIN=./datagen.exe&&
176
+ sh -e playTests.sh --test-large-data &&
177
+ fullbench.exe -i1 &&
178
+ fullbench.exe -i1 -P0 &&
179
+ fuzzer_VS2012_%PLATFORM%_Release.exe %FUZZERTEST% &&
180
+ fuzzer_VS2013_%PLATFORM%_Release.exe %FUZZERTEST% &&
181
+ fuzzer_VS2015_%PLATFORM%_Release.exe %FUZZERTEST%
182
+ )
183
+
184
+
185
+ # The following tests are for regular pushes
186
+ # into `dev` or some feature branch
187
+ # There run less tests, for shorter feedback loop
188
+
189
+ -
190
+ version: 1.0.{build}
191
+ environment:
192
+ matrix:
193
+ - COMPILER: "gcc"
194
+ HOST: "cygwin"
195
+ PLATFORM: "x64"
196
+ - COMPILER: "gcc"
197
+ HOST: "mingw"
198
+ PLATFORM: "x64"
199
+ SCRIPT: "CFLAGS=-Werror make -j allzstd DEBUGLEVEL=2"
200
+ - COMPILER: "gcc"
201
+ HOST: "mingw"
202
+ PLATFORM: "x86"
203
+ SCRIPT: "CFLAGS=-Werror make -j allzstd"
204
+ - COMPILER: "clang"
205
+ HOST: "mingw"
206
+ PLATFORM: "x64"
207
+ SCRIPT: "CFLAGS='--target=x86_64-w64-mingw32 -Werror -Wconversion -Wno-sign-conversion' make -j allzstd"
208
+
209
+ - COMPILER: "visual"
210
+ HOST: "visual"
211
+ PLATFORM: "x64"
212
+ CONFIGURATION: "Debug"
213
+ - COMPILER: "visual"
214
+ HOST: "visual"
215
+ PLATFORM: "Win32"
216
+ CONFIGURATION: "Debug"
217
+ - COMPILER: "visual"
218
+ HOST: "visual"
219
+ PLATFORM: "x64"
220
+ CONFIGURATION: "Release"
221
+ - COMPILER: "visual"
222
+ HOST: "visual"
223
+ PLATFORM: "Win32"
224
+ CONFIGURATION: "Release"
225
+
226
+ install:
227
+ - ECHO Installing %COMPILER% %PLATFORM% %CONFIGURATION%
228
+ - SET PATH_ORIGINAL=%PATH%
229
+ - if [%HOST%]==[cygwin] (
230
+ ECHO Installing Cygwin Packages &&
231
+ C:\cygwin64\setup-x86_64.exe -qnNdO -R "C:\cygwin64" -g -P ^
232
+ gcc-g++,^
233
+ gcc,^
234
+ cmake,^
235
+ make
236
+ )
237
+ - if [%HOST%]==[mingw] (
238
+ SET "PATH_MINGW32=C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin" &&
239
+ SET "PATH_MINGW64=C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin" &&
240
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\i686-6.3.0-posix-dwarf-rt_v5-rev1\mingw32\bin\make.exe &&
241
+ COPY C:\msys64\usr\bin\make.exe C:\mingw-w64\x86_64-6.3.0-posix-seh-rt_v5-rev1\mingw64\bin\make.exe
242
+ )
243
+ - IF [%HOST%]==[visual] IF [%PLATFORM%]==[x64] (
244
+ SET ADDITIONALPARAM=/p:LibraryPath="C:\Program Files\Microsoft SDKs\Windows\v7.1\lib\x64;c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\amd64;C:\Program Files (x86)\Microsoft Visual Studio 10.0\;C:\Program Files (x86)\Microsoft Visual Studio 10.0\lib\amd64;"
245
+ )
246
+
247
+ build_script:
248
+ - ECHO Building %COMPILER% %PLATFORM% %CONFIGURATION%
249
+ - if [%HOST%]==[cygwin] (
250
+ set CHERE_INVOKING=yes &&
251
+ set CC=%COMPILER% &&
252
+ C:\cygwin64\bin\bash --login -c "
253
+ set -e;
254
+ cd build/cmake;
255
+ CFLAGS='-Werror' cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Debug -DZSTD_BUILD_TESTS:BOOL=ON -DZSTD_FUZZER_FLAGS=-T30s -DZSTD_ZSTREAM_FLAGS=-T30s .;
256
+ make -j4;
257
+ ctest -V -L Medium;
258
+ "
259
+ )
260
+ - if [%HOST%]==[mingw] (
261
+ ( if [%PLATFORM%]==[x64] (
262
+ SET "PATH=%PATH_MINGW64%;%PATH_ORIGINAL%"
263
+ ) else if [%PLATFORM%]==[x86] (
264
+ SET "PATH=%PATH_MINGW32%;%PATH_ORIGINAL%"
265
+ ) ) &&
266
+ make -v &&
267
+ sh -c "%COMPILER% -v" &&
268
+ set "CC=%COMPILER%" &&
269
+ sh -c "%SCRIPT%"
270
+ )
271
+ - if [%HOST%]==[visual] (
272
+ ECHO *** &&
273
+ ECHO *** Building Visual Studio 2015 %PLATFORM%\%CONFIGURATION% &&
274
+ ECHO *** &&
275
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /p:ForceImportBeforeCppTargets=%APPVEYOR_BUILD_FOLDER%\build\VS2010\CompileAsCpp.props /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
276
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
277
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
278
+ msbuild "build\VS2010\zstd.sln" /m /verbosity:minimal /property:PlatformToolset=v140 /t:Clean,Build /p:Platform=%PLATFORM% /p:Configuration=%CONFIGURATION% /logger:"C:\Program Files\AppVeyor\BuildAgent\Appveyor.MSBuildLogger.dll" &&
279
+ DIR build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe &&
280
+ MD5sum build/VS2010/bin/%PLATFORM%_%CONFIGURATION%/*.exe &&
281
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\fuzzer.exe tests\fuzzer_VS2015_%PLATFORM%_%CONFIGURATION%.exe &&
282
+ COPY build\VS2010\bin\%PLATFORM%_%CONFIGURATION%\*.exe tests\
283
+ )
284
+
285
+
286
+ test_script:
287
+ - ECHO Testing %COMPILER% %PLATFORM% %CONFIGURATION%
288
+ - if [%HOST%]==[mingw] (
289
+ set "CC=%COMPILER%" &&
290
+ make clean &&
291
+ make check
292
+ )
@@ -0,0 +1,234 @@
1
+ cxx_library(
2
+ name='zstd',
3
+ header_namespace='',
4
+ exported_headers=['zstd.h'],
5
+ visibility=['PUBLIC'],
6
+ deps=[
7
+ ':common',
8
+ ':compress',
9
+ ':decompress',
10
+ ':deprecated',
11
+ ],
12
+ )
13
+
14
+ cxx_library(
15
+ name='compress',
16
+ header_namespace='',
17
+ visibility=['PUBLIC'],
18
+ exported_headers=subdir_glob([
19
+ ('compress', 'zstd*.h'),
20
+ ]),
21
+ srcs=glob(['compress/zstd*.c', 'compress/hist.c']),
22
+ deps=[':common'],
23
+ )
24
+
25
+ cxx_library(
26
+ name='decompress',
27
+ header_namespace='',
28
+ visibility=['PUBLIC'],
29
+ headers=subdir_glob([
30
+ ('decompress', '*_impl.h'),
31
+ ]),
32
+ srcs=glob(['decompress/zstd*.c']),
33
+ deps=[
34
+ ':common',
35
+ ':legacy',
36
+ ],
37
+ )
38
+
39
+ cxx_library(
40
+ name='deprecated',
41
+ header_namespace='',
42
+ visibility=['PUBLIC'],
43
+ exported_headers=subdir_glob([
44
+ ('deprecated', '*.h'),
45
+ ]),
46
+ srcs=glob(['deprecated/*.c']),
47
+ deps=[':common'],
48
+ )
49
+
50
+ cxx_library(
51
+ name='legacy',
52
+ header_namespace='',
53
+ visibility=['PUBLIC'],
54
+ exported_headers=subdir_glob([
55
+ ('legacy', '*.h'),
56
+ ]),
57
+ srcs=glob(['legacy/*.c']),
58
+ deps=[':common'],
59
+ exported_preprocessor_flags=[
60
+ '-DZSTD_LEGACY_SUPPORT=4',
61
+ ],
62
+ )
63
+
64
+ cxx_library(
65
+ name='zdict',
66
+ header_namespace='',
67
+ visibility=['PUBLIC'],
68
+ exported_headers=subdir_glob([
69
+ ('dictBuilder', 'zdict.h'),
70
+ ]),
71
+ headers=subdir_glob([
72
+ ('dictBuilder', 'divsufsort.h'),
73
+ ('dictBuilder', 'cover.h'),
74
+ ]),
75
+ srcs=glob(['dictBuilder/*.c']),
76
+ deps=[':common'],
77
+ )
78
+
79
+ cxx_library(
80
+ name='compiler',
81
+ header_namespace='',
82
+ visibility=['PUBLIC'],
83
+ exported_headers=subdir_glob([
84
+ ('common', 'compiler.h'),
85
+ ]),
86
+ )
87
+
88
+ cxx_library(
89
+ name='cpu',
90
+ header_namespace='',
91
+ visibility=['PUBLIC'],
92
+ exported_headers=subdir_glob([
93
+ ('common', 'cpu.h'),
94
+ ]),
95
+ )
96
+
97
+ cxx_library(
98
+ name='bitstream',
99
+ header_namespace='',
100
+ visibility=['PUBLIC'],
101
+ exported_headers=subdir_glob([
102
+ ('common', 'bitstream.h'),
103
+ ]),
104
+ )
105
+
106
+ cxx_library(
107
+ name='entropy',
108
+ header_namespace='',
109
+ visibility=['PUBLIC'],
110
+ exported_headers=subdir_glob([
111
+ ('common', 'fse.h'),
112
+ ('common', 'huf.h'),
113
+ ]),
114
+ srcs=[
115
+ 'common/entropy_common.c',
116
+ 'common/fse_decompress.c',
117
+ 'compress/fse_compress.c',
118
+ 'compress/huf_compress.c',
119
+ 'decompress/huf_decompress.c',
120
+ ],
121
+ deps=[
122
+ ':debug',
123
+ ':bitstream',
124
+ ':compiler',
125
+ ':errors',
126
+ ':mem',
127
+ ],
128
+ )
129
+
130
+ cxx_library(
131
+ name='errors',
132
+ header_namespace='',
133
+ visibility=['PUBLIC'],
134
+ exported_headers=subdir_glob([
135
+ ('common', 'error_private.h'),
136
+ ('common', 'zstd_errors.h'),
137
+ ]),
138
+ srcs=['common/error_private.c'],
139
+ )
140
+
141
+ cxx_library(
142
+ name='mem',
143
+ header_namespace='',
144
+ visibility=['PUBLIC'],
145
+ exported_headers=subdir_glob([
146
+ ('common', 'mem.h'),
147
+ ]),
148
+ )
149
+
150
+ cxx_library(
151
+ name='pool',
152
+ header_namespace='',
153
+ visibility=['PUBLIC'],
154
+ exported_headers=subdir_glob([
155
+ ('common', 'pool.h'),
156
+ ]),
157
+ srcs=['common/pool.c'],
158
+ deps=[
159
+ ':threading',
160
+ ':zstd_common',
161
+ ],
162
+ )
163
+
164
+ cxx_library(
165
+ name='threading',
166
+ header_namespace='',
167
+ visibility=['PUBLIC'],
168
+ exported_headers=subdir_glob([
169
+ ('common', 'threading.h'),
170
+ ]),
171
+ srcs=['common/threading.c'],
172
+ exported_preprocessor_flags=[
173
+ '-DZSTD_MULTITHREAD',
174
+ ],
175
+ exported_linker_flags=[
176
+ '-pthread',
177
+ ],
178
+ )
179
+
180
+ cxx_library(
181
+ name='xxhash',
182
+ header_namespace='',
183
+ visibility=['PUBLIC'],
184
+ exported_headers=subdir_glob([
185
+ ('common', 'xxhash.h'),
186
+ ]),
187
+ srcs=['common/xxhash.c'],
188
+ exported_preprocessor_flags=[
189
+ '-DXXH_NAMESPACE=ZSTD_',
190
+ ],
191
+ )
192
+
193
+ cxx_library(
194
+ name='zstd_common',
195
+ header_namespace='',
196
+ visibility=['PUBLIC'],
197
+ exported_headers=subdir_glob([
198
+ ('', 'zstd.h'),
199
+ ('common', 'zstd_internal.h'),
200
+ ]),
201
+ srcs=['common/zstd_common.c'],
202
+ deps=[
203
+ ':compiler',
204
+ ':errors',
205
+ ':mem',
206
+ ],
207
+ )
208
+
209
+ cxx_library(
210
+ name='debug',
211
+ header_namespace='',
212
+ visibility=['PUBLIC'],
213
+ exported_headers=subdir_glob([
214
+ ('common', 'debug.h'),
215
+ ]),
216
+ srcs=['common/debug.c'],
217
+ )
218
+
219
+ cxx_library(
220
+ name='common',
221
+ deps=[
222
+ ':debug',
223
+ ':bitstream',
224
+ ':compiler',
225
+ ':cpu',
226
+ ':entropy',
227
+ ':errors',
228
+ ':mem',
229
+ ':pool',
230
+ ':threading',
231
+ ':xxhash',
232
+ ':zstd_common',
233
+ ]
234
+ )