Merge pull request #2432 from facebook/check32

added runtime test in CI for 32-bit binaries
This commit is contained in:
Yann Collet 2020-12-17 18:00:21 -08:00 committed by GitHub
commit 456ca2aa06
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 33 additions and 27 deletions

View File

@ -143,8 +143,9 @@ workflows:
filters: filters:
branches: branches:
only: only:
- master - release
- dev - dev
- master
jobs: jobs:
# Run daily long regression tests # Run daily long regression tests
- regression-test - regression-test

View File

@ -2,14 +2,13 @@ name: generic-dev
on: on:
pull_request: pull_request:
branches: [ dev, master, actionsTest ] branches: [ dev, release, actionsTest ]
jobs: jobs:
# Dev PR jobs that still have to be migrated from travis # Dev PR jobs that still have to be migrated from travis
# #
# icc (need self-hosted) # versionTag (only on release tags)
# versionTag
# valgrindTest (keeps failing for some reason. need investigation) # valgrindTest (keeps failing for some reason. need investigation)
# staticAnalyze (need trusty so need self-hosted) # staticAnalyze (need trusty so need self-hosted)
# pcc-fuzz: (need trusty so need self-hosted) # pcc-fuzz: (need trusty so need self-hosted)
@ -19,7 +18,7 @@ jobs:
# I need admins permissions to the repo for that it looks like # I need admins permissions to the repo for that it looks like
# So I'm tabling that for now # So I'm tabling that for now
# #
# The master branch exclusive jobs will be in a separate # The release branch exclusive jobs will be in a separate
# workflow file (the osx tests and meson build that is) # workflow file (the osx tests and meson build that is)
benchmarking: benchmarking:
@ -36,6 +35,15 @@ jobs:
- name: make test - name: make test
run: make test run: make test
check-32bit: # designed to catch https://github.com/facebook/zstd/issues/2428
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: make check on 32-bit
run: |
make libc6install
CFLAGS="-m32 -O1 -fstack-protector" make check V=1
gcc-6-7-libzstd: gcc-6-7-libzstd:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:

View File

@ -2,10 +2,10 @@ name: generic-release
on: on:
pull_request: pull_request:
# This will eventually only be for pushes to master # This will eventually only be for pushes to release
# but for dogfooding purposes, I'm running it even # but for dogfooding purposes, I'm running it even
# on dev pushes # on dev pushes
branches: [ dev, master, actionsTest ] branches: [ dev, release, actionsTest ]
jobs: jobs:
# missing jobs # missing jobs

View File

@ -2,7 +2,7 @@ name: linux-kernel
on: on:
pull_request: pull_request:
branches: [ dev, master, actionsTest ] branches: [ dev, release, actionsTest ]
jobs: jobs:
test: test:

View File

@ -8,6 +8,7 @@ git:
branches: branches:
only: only:
- dev - dev
- release
- master - master
- travisTest - travisTest
@ -162,33 +163,33 @@ matrix:
- make -C tests checkTag - make -C tests checkTag
- tests/checkTag "$TRAVIS_BRANCH" - tests/checkTag "$TRAVIS_BRANCH"
# tests for master branch and cron job only # tests for release branch and cron job only
- name: OS-X # ~13mn - name: OS-X # ~13mn
if: branch = master if: branch = release
os: osx os: osx
script: script:
- make test - make test
- make -C lib all - make -C lib all
- name: zbuff test - name: zbuff test
if: branch = master if: branch = release
script: script:
- make -C tests test-zbuff - make -C tests test-zbuff
- name: Versions Compatibility Test # 11.5mn - name: Versions Compatibility Test # 11.5mn
if: branch = master if: branch = release
script: script:
- make -C tests versionsTest - make -C tests versionsTest
- name: thread sanitizer # ~29mn - name: thread sanitizer # ~29mn
if: branch = master if: branch = release
script: script:
- make clang38install - make clang38install
- CC=clang-3.8 make tsan-test-zstream - CC=clang-3.8 make tsan-test-zstream
- CC=clang-3.8 make tsan-fuzztest - CC=clang-3.8 make tsan-fuzztest
- name: PPC64LE + Fuzz test # ~13mn - name: PPC64LE + Fuzz test # ~13mn
if: branch = master if: branch = release
arch: ppc64le arch: ppc64le
script: script:
- cat /proc/cpuinfo - cat /proc/cpuinfo
@ -196,28 +197,28 @@ matrix:
- name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?) - name: Qemu PPC64 + Fuzz test # ~13mn, presumed Big-Endian (?)
dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial dist: trusty # note : PPC64 cross-compilation for Qemu tests seems broken on Xenial
if: branch = master if: branch = release
script: script:
- make ppcinstall - make ppcinstall
- make ppc64fuzz - make ppc64fuzz
# note : we already have aarch64 tests on hardware # note : we already have aarch64 tests on hardware
- name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn - name: Qemu aarch64 + Fuzz Test (on Xenial) # ~14mn
if: branch = master if: branch = release
dist: xenial dist: xenial
script: script:
- make arminstall - make arminstall
- make aarch64fuzz - make aarch64fuzz
- name: zlib wrapper test # ~7.5mn - name: zlib wrapper test # ~7.5mn
if: branch = master if: branch = release
script: script:
- make gpp6install valgrindinstall - make gpp6install valgrindinstall
- make -C zlibWrapper test - make -C zlibWrapper test
- make -C zlibWrapper valgrindTest - make -C zlibWrapper valgrindTest
- name: LZ4, thread pool, and partial libs tests # ~4mn - name: LZ4, thread pool, and partial libs tests # ~4mn
if: branch = master if: branch = release
script: script:
- make lz4install - make lz4install
- make -C tests test-lz4 - make -C tests test-lz4
@ -229,7 +230,7 @@ matrix:
# meson dedicated test # meson dedicated test
- name: Xenial (Meson + clang) # ~15mn - name: Xenial (Meson + clang) # ~15mn
if: branch = master if: branch = release
dist: xenial dist: xenial
language: cpp language: cpp
compiler: clang compiler: clang

View File

@ -335,9 +335,10 @@ size_t FSE_buildCTable_rle (FSE_CTable* ct, unsigned char symbolValue);
/* FSE_buildCTable_wksp() : /* FSE_buildCTable_wksp() :
* Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`). * Same as FSE_buildCTable(), but using an externally allocated scratch buffer (`workSpace`).
* `wkspSize` must be >= `FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog)`. * `wkspSize` must be >= `FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog)` of `unsigned`.
*/ */
#define FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) (sizeof(unsigned) * (maxSymbolValue + 2) + (1ull << tableLog)) #define FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog) (maxSymbolValue + 2 + (1ull << (tableLog - 2)))
#define FSE_BUILD_CTABLE_WORKSPACE_SIZE(maxSymbolValue, tableLog) (sizeof(unsigned) * FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(maxSymbolValue, tableLog))
size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize); size_t FSE_buildCTable_wksp(FSE_CTable* ct, const short* normalizedCounter, unsigned maxSymbolValue, unsigned tableLog, void* workSpace, size_t wkspSize);
#define FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) (sizeof(short) * (maxSymbolValue + 1) + (1ULL << maxTableLog) + 8) #define FSE_BUILD_DTABLE_WKSP_SIZE(maxTableLog, maxSymbolValue) (sizeof(short) * (maxSymbolValue + 1) + (1ULL << maxTableLog) + 8)

View File

@ -69,7 +69,7 @@ static size_t HUF_compressWeights (void* dst, size_t dstSize, const void* weight
U32 tableLog = MAX_FSE_TABLELOG_FOR_HUFF_HEADER; U32 tableLog = MAX_FSE_TABLELOG_FOR_HUFF_HEADER;
FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)]; FSE_CTable CTable[FSE_CTABLE_SIZE_U32(MAX_FSE_TABLELOG_FOR_HUFF_HEADER, HUF_TABLELOG_MAX)];
BYTE scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE(HUF_TABLELOG_MAX, MAX_FSE_TABLELOG_FOR_HUFF_HEADER)]; U32 scratchBuffer[FSE_BUILD_CTABLE_WORKSPACE_SIZE_U32(HUF_TABLELOG_MAX, MAX_FSE_TABLELOG_FOR_HUFF_HEADER)];
unsigned count[HUF_TABLELOG_MAX+1]; unsigned count[HUF_TABLELOG_MAX+1];
S16 norm[HUF_TABLELOG_MAX+1]; S16 norm[HUF_TABLELOG_MAX+1];

View File

@ -1342,8 +1342,6 @@ optCSize19=$(datagen -g2M | zstd -19 -c | wc -c)
longCSize19=$(datagen -g2M | zstd -19 --long -c | wc -c) longCSize19=$(datagen -g2M | zstd -19 --long -c | wc -c)
optCSize19wlog23=$(datagen -g2M | zstd -19 -c --zstd=wlog=23 | wc -c) optCSize19wlog23=$(datagen -g2M | zstd -19 -c --zstd=wlog=23 | wc -c)
longCSize19wlog23=$(datagen -g2M | zstd -19 -c --long=23 | wc -c) longCSize19wlog23=$(datagen -g2M | zstd -19 -c --long=23 | wc -c)
optCSize22=$(datagen -g900K | zstd -22 --ultra -c | wc -c)
longCSize22=$(datagen -g900K | zstd -22 --ultra --long -c | wc -c)
if [ "$longCSize16" -gt "$optCSize16" ]; then if [ "$longCSize16" -gt "$optCSize16" ]; then
echo using --long on compression level 16 should not cause compressed size regression echo using --long on compression level 16 should not cause compressed size regression
exit 1 exit 1
@ -1353,9 +1351,6 @@ elif [ "$longCSize19" -gt "$optCSize19" ]; then
elif [ "$longCSize19wlog23" -gt "$optCSize19wlog23" ]; then elif [ "$longCSize19wlog23" -gt "$optCSize19wlog23" ]; then
echo using --long on compression level 19 with wLog=23 should not cause compressed size regression echo using --long on compression level 19 with wLog=23 should not cause compressed size regression
exit 1 exit 1
elif [ "$longCSize22" -gt "$optCSize22" ]; then
echo using --long on compression level 22 should not cause compressed size regression
exit 1
fi fi