]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
[CircleCI] Fix short-tests-0 2892/head
authorNick Terrell <terrelln@fb.com>
Wed, 1 Dec 2021 19:49:58 +0000 (11:49 -0800)
committerNick Terrell <terrelln@fb.com>
Thu, 2 Dec 2021 01:43:46 +0000 (17:43 -0800)
short-tests-0 were silently failing. I think because of the && make clean construction. Switch to ; instead.

Also fix all the test failures that were exposed.

`make all` is failing on CircleCI because it is missing Docker. Move that test
to GitHub actions, and switch the pedantic CircleCI test to `make allmost`.

.circleci/config.yml
.github/workflows/dev-long-tests.yml
examples/common.h
lib/common/compiler.h
lib/compress/zstd_lazy.c
lib/decompress/huf_decompress_amd64.S
tests/zstreamtest.c

index 65bb3c2275f19c7b28fa5b3d155cb7f91d671453..f2eab6807d7c228634a48b9a9274280bf6f74dda 100644 (file)
@@ -15,12 +15,13 @@ jobs:
           name: Test
           command: |
             ./tests/test-license.py
-            cc -v; CFLAGS="-O0 -Werror -pedantic" make all && make clean
-            make c99build         && make clean
-            make c11build         && make clean
-            make -j regressiontest&& make clean
-            make shortest         && make clean
-            make cxxtest          && make clean
+            cc -v
+            CFLAGS="-O0 -Werror -pedantic" make allmost; make clean
+            make c99build; make clean
+            make c11build; make clean
+            make -j regressiontest; make clean
+            make shortest; make clean
+            make cxxtest; make clean
   # the second half of the jobs are in this test
   short-tests-1:
     docker:
index 3967d186ff54059e481117d28891a3349f4911af..7a94fb66654898dd7c0935772d29ded67c708d7f 100644 (file)
@@ -10,6 +10,13 @@ on:
     branches: [ dev, release, actionsTest ]
 
 jobs:
+  make-all:
+    runs-on: ubuntu-latest
+    steps:
+    - uses: actions/checkout@v2
+    - name: make all
+      run: make all
+
   # lasts ~24mn
   make-test:
     runs-on: ubuntu-latest
index 181f6b39814c60db11e6102782c01180a2e02fad..5f45b340666796e41933d5630c59b432f2040234 100644 (file)
@@ -57,7 +57,7 @@ typedef enum {
  * Check the zstd error code and die if an error occurred after printing a
  * message.
  */
-#define CHECK_ZSTD(fn, ...)                                      \
+#define CHECK_ZSTD(fn)                                           \
     do {                                                         \
         size_t const err = (fn);                                 \
         CHECK(!ZSTD_isError(err), "%s", ZSTD_getErrorName(err)); \
index ea5fe2f472d0273ffe82e1cde4468ee895f3a545..27632ab06fd667098310da4161dbcae01f55ca2d 100644 (file)
 # elif ZSTD_HAS_CPP_ATTRIBUTE(fallthrough)
 #  define ZSTD_FALLTHROUGH [[fallthrough]]
 # elif __has_attribute(__fallthrough__)
-#  define ZSTD_FALLTHROUGH __attribute__((__fallthrough__))
+/* Leading semicolon is to satisfy gcc-11 with -pedantic. Without the semicolon
+ * gcc complains about: a label can only be part of a statement and a declaration is not a statement.
+ */
+#  define ZSTD_FALLTHROUGH ; __attribute__((__fallthrough__))
 # else
 #  define ZSTD_FALLTHROUGH
 # endif
index d6354be7f275a71beeffc50b0937654b6094686d..5326ec5f329e2bfc2e9ed55506b10f3fa5cbe966 100644 (file)
@@ -1333,7 +1333,7 @@ typedef struct {
     searchMax_f searchMax;
 } ZSTD_LazyVTable;
 
-#define GEN_ZSTD_BT_VTABLE(dictMode, mls, ...)                                        \
+#define GEN_ZSTD_BT_VTABLE(dictMode, mls)                                             \
     static size_t ZSTD_BtFindBestMatch_##dictMode##_##mls(                            \
             ZSTD_matchState_t* ms,                                                    \
             const BYTE* ip, const BYTE* const iLimit,                                 \
@@ -1346,7 +1346,7 @@ typedef struct {
         ZSTD_BtFindBestMatch_##dictMode##_##mls                                       \
     };
 
-#define GEN_ZSTD_HC_VTABLE(dictMode, mls, ...)                                        \
+#define GEN_ZSTD_HC_VTABLE(dictMode, mls)                                             \
     static size_t ZSTD_HcFindBestMatch_##dictMode##_##mls(                            \
             ZSTD_matchState_t* ms,                                                    \
             const BYTE* ip, const BYTE* const iLimit,                                 \
index cebe2f32145d1a89aa190be8f01368a18f15c725..bb517d7aa4360fdd6d77a46c2050c3bc659c34a9 100644 (file)
 #define vard2  r10d
 #define vard3  r11d
 
-/* Helper macro: args if idx != 4. */
-#define IF_NOT_4_0(...) __VA_ARGS__
-#define IF_NOT_4_1(...) __VA_ARGS__
-#define IF_NOT_4_2(...) __VA_ARGS__
-#define IF_NOT_4_3(...) __VA_ARGS__
-#define IF_NOT_4_4(...)
-#define IF_NOT_4_(idx, ...) IF_NOT_4_##idx(__VA_ARGS__)
-#define IF_NOT_4(idx, ...) IF_NOT_4_(idx, __VA_ARGS__)
-
 /* Calls X(N) for each stream 0, 1, 2, 3. */
 #define FOR_EACH_STREAM(X) \
     X(0);                  \
@@ -211,11 +202,11 @@ HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop:
     movb %ah, idx(%op##n)
 
 /* Assumes GET_NEXT_DELT has been called.
- * Calls DECODE_FROM_DELT then GET_NEXT_DELT if n < 4
+ * Calls DECODE_FROM_DELT then GET_NEXT_DELT
  */
-#define DECODE(n, idx)              \
+#define DECODE_AND_GET_NEXT(n, idx) \
     DECODE_FROM_DELT(n, idx);       \
-    IF_NOT_4(idx, GET_NEXT_DELT(n))
+    GET_NEXT_DELT(n)                \
 
 /* // ctz & nbBytes is stored in bits[n]
  * // nbBits is stored in %rax
@@ -254,11 +245,11 @@ HUF_decompress4X1_usingDTable_internal_bmi2_asm_loop:
     /* Decode 5 symbols in each of the 4 streams (20 total)
      * Must have called GET_NEXT_DELT for each stream
      */
-    FOR_EACH_STREAM_WITH_INDEX(DECODE, 0)
-    FOR_EACH_STREAM_WITH_INDEX(DECODE, 1)
-    FOR_EACH_STREAM_WITH_INDEX(DECODE, 2)
-    FOR_EACH_STREAM_WITH_INDEX(DECODE, 3)
-    FOR_EACH_STREAM_WITH_INDEX(DECODE, 4)
+    FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 0)
+    FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 1)
+    FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 2)
+    FOR_EACH_STREAM_WITH_INDEX(DECODE_AND_GET_NEXT, 3)
+    FOR_EACH_STREAM_WITH_INDEX(DECODE_FROM_DELT, 4)
 
     /* Load ip[1,2,3] from stack (var[] aliases them)
      * ip[] is needed for RELOAD_BITS
index 6eb107f9d09ace968f141df1e825d19150b0c736..72fd72ea36804c950651157330b243fd109e9b69 100644 (file)
@@ -1855,7 +1855,7 @@ static int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double co
             && oldTestLog /* at least one test happened */ && resetAllowed) {
             maxTestSize = FUZ_randomLength(&lseed, oldTestLog+2);
             maxTestSize = MIN(maxTestSize, srcBufferSize-16);
-            {   U64 const pledgedSrcSize = (FUZ_rand(&lseed) & 3) ? ZSTD_CONTENTSIZE_UNKNOWN : maxTestSize; 
+            {   U64 const pledgedSrcSize = (FUZ_rand(&lseed) & 3) ? ZSTD_CONTENTSIZE_UNKNOWN : maxTestSize;
                 CHECK_Z( ZSTD_CCtx_reset(zc, ZSTD_reset_session_only) );
                 CHECK_Z( ZSTD_CCtx_setPledgedSrcSize(zc, pledgedSrcSize) );
             }
@@ -2357,7 +2357,7 @@ static int fuzzerTests_newAPI(U32 seed, int nbTests, int startTest,
 
         /* multi - fragments decompression test */
         if (!dictSize /* don't reset if dictionary : could be different */ && (FUZ_rand(&lseed) & 1)) {
-            DISPLAYLEVEL(5, "resetting DCtx (dict:%p) \n", dict);
+            DISPLAYLEVEL(5, "resetting DCtx (dict:%p) \n", (void const*)dict);
             CHECK_Z( ZSTD_resetDStream(zd) );
         } else {
             if (dictSize)