zlib-ng/test/test_crc32.cc
yintong 10b51fa592
Some checks failed
Static Analysis / GCC (push) Has been cancelled
Static Analysis / Clang (push) Has been cancelled
CMake / ${{ matrix.name }} (${{ github.repository != 'zlib-ng/zlib-ng' && '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DZLIB_COMPAT=ON' || '-GNinja -DWITH_SANITIZER=Memory' }} -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON, ${{ github.repository == … (push) Has been cancelled
CMake / ${{ matrix.name }} (${{ github.repository != 'zlib-ng/zlib-ng' && '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake' || '' }} -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_SANITIZER=Undefined, ${{ github.repository == 'zlib-ng/zlib-ng' && … (push) Has been cancelled
CMake / ${{ matrix.name }} (-A ARM,version=10.0.22621.0, cl, Windows MSVC ARM No Test, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-A ARM64, cl, Windows MSVC ARM64 No Test, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32 -DCMAKE_SHARED_LINKER_FLAGS=-m32 -DCMAKE_EXE_LINKER_FLAGS=-m32 -DWITH_BENCHMARKS=ON, ubuntu_gcc_m32, gcc, g++, Ubuntu GCC 32-bit, ubuntu-latest, gcc-multilib g++-multilib) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_OSX_DEPLOYMENT_TARGET=10.10 -DWITH_BENCHMARKS=ON, clang, clang++, -ld_classic, macOS Clang (Target 10.10), macos-13) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_ARMV8=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_aarch64_no_armv8, aarch64-linux-gnu-gcov, Ubuntu GCC AARCH64 No ARMv8 UBSAN, ubuntu-22.04, qemu-user gcc-aarch64-linux-gnu … (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_NEON=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_aarch64_no_neon, aarch64-linux-gnu-gcov, Ubuntu GCC AARCH64 No NEON UBSAN, ubuntu-22.04, qemu-user gcc-aarch64-linux-gnu g++… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_aarch64_compat_no_opt, aarch64-linux-gnu-gcov, Ubuntu GCC AARCH64 Compat No Opt … (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_armsf_compat_no_opt, arm-linux-gnueabi-gcov, Ubuntu GCC ARM SF Compat No Opt UBSAN, … (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_armhf_compat_no_opt, arm-linux-gnueabihf-gcov, Ubuntu GCC ARM HF Compat No Opt UBS… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-i686.cmake, ubuntu_gcc_mingw_i686, i686-w64-mingw32-gcov-posix, -static, Ubuntu MinGW i686, ubuntu-22.04, wine wine32 gcc-mingw-w64-i686 g++-mingw-w64-i686 libpcre2-8-0=10.39-3ubuntu0.1 l… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mingw-x86_64.cmake -DWITH_BENCHMARKS=ON, ubuntu_gcc_mingw_x86_64, -Wno-unused-parameter, x86_64-w64-mingw32-gcov-posix, -static, Ubuntu MinGW x86_64, ubuntu-latest, wine wine64 gcc-mingw-w64 g+… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips.cmake, ubuntu_gcc_mips, mips-linux-gnu-gcov, Ubuntu GCC MIPS, ubuntu-latest, qemu-user crossbuild-essential-mips) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips64.cmake -DWITH_BENCHMARKS=ON, ubuntu_gcc_mips64, mips64-linux-gnuabi64-gcov, Ubuntu GCC MIPS64, ubuntu-latest, qemu-user crossbuild-essential-mips64) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake -DWITH_POWER8=OFF, ubuntu_gcc_ppc_no_power8, powerpc-linux-gnu-gcov, Ubuntu GCC PPC No Power8, ubuntu-latest, qemu-user crossbuild-essential-powerpc) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake, ubuntu_gcc_ppc, powerpc-linux-gnu-gcov, Ubuntu GCC PPC, ubuntu-latest, qemu-user crossbuild-essential-powerpc) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64-clang.cmake, Ubuntu Clang PPC64 Power9, ubuntu-latest, qemu-user clang binutils-powerpc64-linux-gnu libgcc-11-dev-ppc64-cross libc-dev-ppc64-cross libstdc++-11-dev-ppc64-cross) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64-power9.cmake, ubuntu_gcc_ppc64_power9, powerpc64-linux-gnu-gcov, -static, Ubuntu GCC PPC64 Power9, ubuntu-latest, qemu-user gcc-powerpc64-linux-gnu g++-powerpc64-linux-gnu libc-dev-pp… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64.cmake -DWITH_BENCHMARKS=ON, ubuntu_gcc_ppc64, powerpc64-linux-gnu-gcov, -static, Ubuntu GCC PPC64, ubuntu-latest, qemu-user gcc-powerpc64-linux-gnu g++-powerpc64-linux-gnu libc-dev-pp… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-clang.cmake, Ubuntu Clang PPC64LE Power9, ubuntu-latest, qemu-user crossbuild-essential-ppc64el) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-power9.cmake -DWITH_POWER8=OFF -DWITH_POWER9=OFF, ubuntu_gcc_ppc64le_novsx, powerpc64le-linux-gnu-gcov, Ubuntu GCC PPC64LE No VSX, ubuntu-latest, qemu-user crossbuild-essential-ppc6… (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le-power9.cmake, ubuntu_gcc_ppc64le_power9, powerpc64le-linux-gnu-gcov, Ubuntu GCC PPC64LE Power9, ubuntu-latest, qemu-user crossbuild-essential-ppc64el) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv-clang.cmake, Ubuntu Clang RISC-V, ubuntu-latest, qemu-user crossbuild-essential-riscv64) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-riscv.cmake -DWITH_BENCHMARKS=ON, ubuntu_gcc_riscv64, riscv64-linux-gnu-gcov, Ubuntu GCC RISC-V, ubuntu-latest, qemu-user crossbuild-essential-riscv64) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-sparc64.cmake, ubuntu_gcc_sparc64, sparc64-linux-gnu-gcov, -static, Ubuntu GCC SPARC64, ubuntu-latest, qemu-user gcc-sparc64-linux-gnu g++-sparc64-linux-gnu libc-dev-sparc64-cross) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DNOT_TWEAK_COMPILER, -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF -DWITH_SANITIZER=Address, ubuntu_gcc_compat_no_opt, gcc, g++, Ubuntu GCC Compat No Opt ASAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DUSE_MMAP, ubuntu_clang_mmap, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang Memory Map, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_sse42, gcc, g++, Ubuntu GCC SSE4.2 UBSAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_CHORBA=OFF, ubuntu_gcc_no_chorba, gcc, g++, Ubuntu GCC No Chorba, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_INFLATE_ALLOW_INVALID_DIST=ON, ubuntu_clang_inflate_allow_invalid_dist, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang Inflate Allow Invalid Dist, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_INFLATE_STRICT=ON, ubuntu_clang_inflate_strict, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang Inflate Strict, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul", ubuntu_gcc_native_inst_avx, gcc, g++, Ubuntu GCC Native Instructions (AVX), ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_NATIVE_INSTRUCTIONS=ON, clang, clang++, macOS Clang Native Instructions (ARM64), macos-14) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_NATIVE_INSTRUCTIONS=ON, ubuntu_gcc_native_inst, gcc, g++, Ubuntu GCC Native Instructions, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_OPTIM=OFF -DHAVE_BUILTIN_CTZLL=OFF -DHAVE_BUILTIN_CTZ=OFF, ubuntu_gcc_no_ctz, gcc, g++, Ubuntu GCC No CTZ, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_OPTIM=OFF -DHAVE_BUILTIN_CTZLL=OFF, ubuntu_gcc_no_ctzll, gcc, g++, Ubuntu GCC No CTZLL, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_PCLMULQDQ=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_no_pclmulqdq, gcc, g++, Ubuntu GCC No PCLMULQDQ UBSAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_REDUCED_MEM=ON, ubuntu_clang_reduced_mem, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang Reduced Memory, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON, ubuntu_gcc, gcc, g++, -Wno-maybe-uninitialized, Ubuntu GCC ASAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SANITIZER=Address, macos_clang, clang, clang++, macOS Clang ASAN, macos-13) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SANITIZER=Address, macos_clang_arm64, clang, clang++, macOS Clang ASAN (ARM64), macos-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SANITIZER=Undefined, macos_gcc, gcc-10, g++-10, gcov-10, -ld_classic, macOS GCC UBSAN, macos-13, gcc@10) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SANITIZER=Undefined, macos_gcc_arm64, gcc-13, g++-13, gcov-13, macOS GCC UBSAN (ARM64), macos-latest, gcc@13) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SSE42=OFF -DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_ssse3, gcc, g++, Ubuntu GCC SSSE3 UBSAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DWITH_SSSE3=OFF -DWITH_SSE42=OFF -DWITH_AVX2=OFF -DWITH_AVX512=OFF -DWITH_SANITIZER=Undefined, ubuntu_gcc_sse2, gcc, g++, Ubuntu GCC SSE2 UBSAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DZLIB_COMPAT=ON -DZLIB_SYMBOL_PREFIX=zTest_, ubuntu_gcc_compat_sprefix, gcc, g++, Ubuntu GCC Compat Symbol Prefix, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-DZLIB_SYMBOL_PREFIX=zTest_, ubuntu_gcc_sprefix, gcc, g++, Ubuntu GCC Symbol Prefix, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 16 2019" -A Win32 -T v140, cl, Windows MSVC 2019 v140 Win32, windows-2019) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 16 2019" -A Win32 -T v141, cl, Windows MSVC 2019 v141 Win32, windows-2019) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 16 2019" -A x64 -T v140, cl, Windows MSVC 2019 v140 Win64, windows-2019) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 16 2019" -A x64 -T v141, cl, Windows MSVC 2019 v141 Win64, windows-2019) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 17 2022" -A Win32 -T v142, cl, Windows MSVC 2022 v142 Win32, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 17 2022" -A Win32 -T v143, cl, Windows MSVC 2022 v143 Win32, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 17 2022" -A x64 -T v142, cl, Windows MSVC 2022 v142 Win64, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 17 2022" -A x64 -T v143 -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE=/arch:AVX, cl, Windows MSVC 2022 v143 Win64 Native Instructions (AVX), windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G "Visual Studio 17 2022" -A x64 -T v143, cl, Windows MSVC 2022 v143 Win64, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G Ninja -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul", gcc, g++, Windows GCC Native Instructions (AVX), windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G Ninja -DZLIB_COMPAT=ON -DWITH_NEW_STRATEGIES=OFF -DWITH_OPTIM=OFF, win64_gcc_compat_no_opt, gcc, g++, Windows GCC Compat No Opt, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-G Ninja, win64_gcc, gcc, g++, Windows GCC, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-GNinja -DWITH_SANITIZER=Memory, clang-15, clang++-15, llvm-cov-15 gcov, use_sigaltstack=0, Ubuntu Clang MSAN, ubuntu-latest, ninja-build clang-15 llvm-15-tools libclang-rt-15-dev) (push) Has been cancelled
CMake / ${{ matrix.name }} (-O1, -DWITH_SANITIZER=Undefined, ubuntu_gcc_o1, gcc, g++, Ubuntu GCC -O1 UBSAN, ubuntu-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-T ClangCl -A Win32, Windows ClangCl Win32, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-T ClangCl -A x64 -DWITH_NATIVE_INSTRUCTIONS=ON -DNATIVE_ARCH_OVERRIDE="-mavx -mpclmul", Windows ClangCl Win64 Native Instructions (AVX), windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-T ClangCl -A x64, Windows ClangCl Win64, windows-latest) (push) Has been cancelled
CMake / ${{ matrix.name }} (-mcpu=power8, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake -DWITH_GTEST=OFF, ubuntu_gcc_ppc64le, -mcpu=power8, powerpc64le-linux-gnu-gcov, Ubuntu GCC PPC64LE, ubuntu-latest, qemu-user crossbuild-essential-ppc64el) (push) Has been cancelled
CMake / ${{ matrix.name }} (../build, ../zlib-ng, -O3, ubuntu_gcc_osb, gcc, g++, Ubuntu GCC -O3 OSB, ubuntu-latest, true) (push) Has been cancelled
CMake / ${{ matrix.name }} (../build, ../zlib-ng/test/add-subdirectory-project, gcc, g++, Ubuntu GCC -O3 OSB add_subdirectory, ubuntu-latest, true) (push) Has been cancelled
CMake / ${{ matrix.name }} (Debug, ubuntu_clang_debug, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang Debug, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (ON, -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld -Wl,--no-undefined-version" -DZLIBNG_ENABLE_TESTS=OFF -DZLIB_COMPAT=ON, clang-15, clang++-15, Ubuntu Clang Undefined Symbols Compat, ubuntu-latest, clang-15 llvm-15 lld) (push) Has been cancelled
CMake / ${{ matrix.name }} (ON, -DCMAKE_SHARED_LINKER_FLAGS="-fuse-ld=lld -Wl,--no-undefined-version" -DZLIBNG_ENABLE_TESTS=OFF, clang-15, clang++-15, Ubuntu Clang Undefined Symbols, ubuntu-latest, clang-15 llvm-15 lld) (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, ${{ github.repository != 'zlib-ng/zlib-ng' && '-DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake' || '' }} -DWITH_DFLTCC_DEFLATE=ON -DWITH_DFLTCC_INFLATE=ON -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON, ${{ github.… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON, ubuntu_gcc_aarch64, aarch64-linux-gnu-gcov, Ubuntu GCC AARCH64 ASAN, ubuntu-22.04, qemu-user gcc-aarch64-linux-gnu g… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-arm.cmake -DWITH_SANITIZER=Address, ubuntu_gcc_armsf, arm-linux-gnueabi-gcov, Ubuntu GCC ARM SF ASAN, ubuntu-latest, qemu-user crossbuild-essential-armel) (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_ARMV8=OFF -DWITH_SANITIZER=Address, ubuntu_gcc_armhf_no_armv8, arm-linux-gnueabihf-gcov, Ubuntu GCC ARM HF No ARMv8 ASAN, ubuntu-latest, qemu-user crossbuild-… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_NEON=OFF -DWITH_SANITIZER=Address, ubuntu_gcc_armhf_no_neon, arm-linux-gnueabihf-gcov, Ubuntu GCC ARM HF No NEON ASAN, ubuntu-latest, qemu-user crossbuild-ess… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON, ubuntu_gcc_armhf, -Wno-psabi -Wno-maybe-uninitialized, arm-linux-gnueabihf-gcov, Ubuntu GCC ARM HF ASAN, ubuntu-latest… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_CRC32_VX=OFF -DWITH_SANITIZER=Address, ubuntu_gcc_s390x_no_crc32, s390x-linux-gnu-gcov, -static, Ubuntu GCC S390X No vectorized CRC32 ASAN, ubuntu-latest, qem… (push) Has been cancelled
CMake / ${{ matrix.name }} (detect_leaks=0, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-s390x.cmake -DWITH_SANITIZER=Address -DWITH_BENCHMARKS=ON, ubuntu_gcc_s390x, s390x-linux-gnu-gcov, -static, Ubuntu GCC S390X ASAN, ubuntu-latest, qemu-user crossbuild-essential-… (push) Has been cancelled
CMake / ${{ matrix.name }} (ubuntu_clang, clang-15, clang++-15, llvm-cov-15 gcov, Ubuntu Clang, ubuntu-latest, clang-15 llvm-15 llvm-15-tools) (push) Has been cancelled
CMake / ${{ matrix.name }} (wasm32, -DCMAKE_TOOLCHAIN_FILE=${EMSDK}/upstream/emscripten/cmake/Modules/Platform/Emscripten.cmake -DCMAKE_C_COMPILER_TARGET=wasm32 -DCMAKE_CROSSCOMPILING_EMULATOR=${EMSDK_NODE} -DZLIB_COMPAT=ON, Ubuntu Emscripten WASM32, ubuntu-la… (push) Has been cancelled
CodeQL / Analyze (cpp) (push) Has been cancelled
Configure / ${{ matrix.name }} (${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}, ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }}, ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }}, --warn --s… (push) Has been cancelled
Configure / ${{ matrix.name }} (${{ github.repository != 'zlib-ng/zlib-ng' && '-static' || '' }}, ${{ github.repository != 'zlib-ng/zlib-ng' && 's390x-linux-gnu' || '' }}, ${{ github.repository == 'zlib-ng/zlib-ng' && 'gcc' || 's390x-linux-gnu-gcc' }}, --warn --z… (push) Has been cancelled
Configure / ${{ matrix.name }} (-static, powerpc-linux-gnu, powerpc-linux-gnu-gcc, --warn --static, -static, Ubuntu GCC PPC, ubuntu-latest, qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (-static, powerpc-linux-gnu, powerpc64-linux-gnu-gcc, --warn --static, -static, Ubuntu GCC PPC64, ubuntu-latest, qemu-user gcc-powerpc64-linux-gnu libc-dev-ppc64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (-static, s390x-linux-gnu, s390x-linux-gnu-gcc, --warn --static --without-crc32-vx, -static, Ubuntu GCC S390X No vectorized CRC32, ubuntu-latest, qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (-static, s390x-linux-gnu, s390x-linux-gnu-gcc, --warn --static, -static, Ubuntu GCC S390X, ubuntu-latest, qemu-user gcc-s390x-linux-gnu libc-dev-s390x-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (-static, wasm32, --warn --zlib-compat --static, emconfigure, node, -static, Ubuntu Emscripten WASM32, ubuntu-latest) (push) Has been cancelled
Configure / ${{ matrix.name }} (-std=gnu11, gcc-11, --sprefix=zTest_, macOS GCC Symbol Prefix (ARM64), macos-latest, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (-std=gnu11, gcc-11, --warn, macOS GCC (ARM64), macos-latest, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (-std=gnu11, gcc-11, --zlib-compat --sprefix=zTest_, macOS GCC Symbol Prefix & Compat (ARM64), macos-latest, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (../build, ../zlib-ng, gcc, --warn, Ubuntu GCC OSB, ubuntu-latest) (push) Has been cancelled
Configure / ${{ matrix.name }} (aarch64-linux-gnu, aarch64-linux-gnu-gcc, --warn --without-armv8, Ubuntu GCC AARCH64 No ARMv8, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (aarch64-linux-gnu, aarch64-linux-gnu-gcc, --warn --without-neon, Ubuntu GCC AARCH64 No NEON, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (aarch64-linux-gnu, aarch64-linux-gnu-gcc, --warn --zlib-compat --without-optimizations --without-new-strategies, Ubuntu GCC AARCH64 Compat No Opt, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (aarch64-linux-gnu, aarch64-linux-gnu-gcc, --warn, Ubuntu GCC AARCH64, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabi, arm-linux-gnueabi-gcc, --warn --zlib-compat --without-optimizations --without-new-strategies, Ubuntu GCC ARM SF Compat No Opt, ubuntu-latest, qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabi, arm-linux-gnueabi-gcc, --warn, Ubuntu GCC ARM SF, ubuntu-latest, qemu-user gcc-arm-linux-gnueabi libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabihf, arm-linux-gnueabihf-gcc, --warn --without-armv8, Ubuntu GCC ARM HF No ARMv8, ubuntu-latest, qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabihf, arm-linux-gnueabihf-gcc, --warn --without-neon, Ubuntu GCC ARM HF No NEON, ubuntu-latest, qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabihf, arm-linux-gnueabihf-gcc, --warn --zlib-compat --without-optimizations --without-new-strategies, Ubuntu GCC ARM HF Compat No Opt, ubuntu-latest, qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (arm-linux-gnueabihf, arm-linux-gnueabihf-gcc, --warn, Ubuntu GCC ARM HF, ubuntu-latest, qemu-user gcc-arm-linux-gnueabihf libc-dev-armel-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (gcc, --warn --zlib-compat --without-optimizations --without-new-strategies, Ubuntu GCC Compat No Opt, ubuntu-latest) (push) Has been cancelled
Configure / ${{ matrix.name }} (gcc, --warn, Ubuntu GCC, ubuntu-latest) (push) Has been cancelled
Configure / ${{ matrix.name }} (gcc-11, --sprefix=zTest_, macOS GCC Symbol Prefix, macos-13, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (gcc-11, --warn, macOS GCC, macos-13, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (gcc-11, --zlib-compat --sprefix=zTest_, macOS GCC Symbol Prefix & Compat, macos-13, gcc@11) (push) Has been cancelled
Configure / ${{ matrix.name }} (mips-linux-gnu, mips-linux-gnu-gcc, --warn, Ubuntu GCC MIPS, ubuntu-latest, qemu-user gcc-mips-linux-gnu libc-dev-mips-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (mips64-linux-gnuabi64, mips64-linux-gnuabi64-gcc, --warn, Ubuntu GCC MIPS64, ubuntu-latest, qemu-user gcc-mips64-linux-gnuabi64 libc-dev-mips64-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (powerpc-linux-gnu, powerpc-linux-gnu-gcc, --warn --without-power8, Ubuntu GCC PPC No Power8, ubuntu-latest, qemu-user gcc-powerpc-linux-gnu libc-dev-powerpc-cross) (push) Has been cancelled
Configure / ${{ matrix.name }} (powerpc64le-linux-gnu, powerpc64le-linux-gnu-gcc, --warn, Ubuntu GCC PPC64LE, ubuntu-latest, qemu-user gcc-powerpc64le-linux-gnu libc-dev-ppc64el-cross) (push) Has been cancelled
OSS-Fuzz / Fuzzing (push) Has been cancelled
Libpng / Ubuntu Clang (push) Has been cancelled
Link / Link zlib (push) Has been cancelled
Link / Link zlib-ng compat (push) Has been cancelled
Pigz / ${{ matrix.name }} (-DCMAKE_TOOLCHAIN_FILE=../../cmake/toolchain-aarch64.cmake, ubuntu_gcc_pigz_aarch64, Ubuntu GCC AARCH64, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu libc-dev-arm64-cross) (push) Has been cancelled
Pigz / ${{ matrix.name }} (-DWITH_OPTIM=OFF, ubuntu_clang_pigz_no_optim, clang, llvm-cov-15 gcov, Ubuntu Clang No Optim, ubuntu-latest, llvm-15 llvm-15-tools) (push) Has been cancelled
Pigz / ${{ matrix.name }} (-DWITH_THREADS=OFF -DPIGZ_VERSION=v2.6, ubuntu_clang_pigz_no_threads, clang, llvm-cov-15 gcov, Ubuntu Clang No Threads, ubuntu-latest, llvm-15 llvm-15-tools) (push) Has been cancelled
Pigz / ${{ matrix.name }} (-DZLIB_SYMBOL_PREFIX=zTest_, ubuntu_gcc_pigz, gcc, Ubuntu GCC Symbol Prefix, ubuntu-latest) (push) Has been cancelled
Pigz / ${{ matrix.name }} (ubuntu_clang_pigz, clang, llvm-cov-15 gcov, Ubuntu Clang, ubuntu-latest, llvm-15 llvm-15-tools) (push) Has been cancelled
Pigz / ${{ matrix.name }} (ubuntu_gcc_pigz, gcc, Ubuntu GCC, ubuntu-latest) (push) Has been cancelled
Package Check / ${{ matrix.name }} (-DZLIB_SYMBOL_PREFIX=zTest_, clang, --sprefix=zTest_, clang++, macOS Clang Symbol Prefix, macOS-latest) (push) Has been cancelled
Package Check / ${{ matrix.name }} (-m32, -DCMAKE_C_FLAGS=-m32 -DCMAKE_CXX_FLAGS=-m32, gcc, g++, -m32, -m32, Ubuntu GCC -m32, ubuntu-latest, gcc-multilib g++-multilib) (push) Has been cancelled
Package Check / ${{ matrix.name }} (aarch64-linux-gnu, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-aarch64.cmake, aarch64-linux-gnu-gcc, aarch64-linux-gnu-g++, Ubuntu GCC AARCH64, ubuntu-latest, qemu-user gcc-aarch64-linux-gnu g++-aarch64-linux-gnu libc6-dev-arm64-cross) (push) Has been cancelled
Package Check / ${{ matrix.name }} (arm-linux-gnueabihf, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-armhf.cmake, arm-linux-gnueabihf-gcc, arm-linux-gnueabihf-g++, Ubuntu GCC ARM HF, ubuntu-latest, qemu-user gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf libc6-dev-armhf-c… (push) Has been cancelled
Package Check / ${{ matrix.name }} (clang, clang++, macOS Clang, macOS-latest) (push) Has been cancelled
Package Check / ${{ matrix.name }} (gcc, g++, Ubuntu GCC, ubuntu-latest) (push) Has been cancelled
Package Check / ${{ matrix.name }} (mips-linux-gnu, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips.cmake, mips-linux-gnu-gcc, mips-linux-gnu-g++, Ubuntu GCC MIPS, ubuntu-latest, qemu-user gcc-mips-linux-gnu g++-mips-linux-gnu libc6-dev-mips-cross) (push) Has been cancelled
Package Check / ${{ matrix.name }} (mips64-linux-gnuabi64, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-mips64.cmake, mips64-linux-gnuabi64-gcc, mips64-linux-gnuabi64-g++, Ubuntu GCC MIPS64, ubuntu-latest, qemu-user gcc-mips64-linux-gnuabi64 g++-mips64-linux-gnuabi64 libc6-… (push) Has been cancelled
Package Check / ${{ matrix.name }} (powerpc-linux-gnu, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc.cmake, powerpc-linux-gnu-gcc, powerpc-linux-gnu-g++, Ubuntu GCC PPC, ubuntu-latest, qemu-user gcc-powerpc-linux-gnu g++-powerpc-linux-gnu libc6-dev-powerpc-cross) (push) Has been cancelled
Package Check / ${{ matrix.name }} (powerpc64le-linux-gnu, -DCMAKE_TOOLCHAIN_FILE=cmake/toolchain-powerpc64le.cmake, powerpc64le-linux-gnu-gcc, powerpc64le-linux-gnu-g++, Ubuntu GCC PPC64LE, ubuntu-latest, qemu-user gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu … (push) Has been cancelled
CMake / Upload Coverage Reports (push) Has been cancelled
Pigz / Upload Coverage Reports (push) Has been cancelled
riscv: add crc32 optimization using zbc extension
2025-04-27 18:23:50 +02:00

296 lines
14 KiB
C++

/* test_crc32.cc -- crc32 unit test
* Copyright (C) 2019-2021 IBM Corporation
* Authors: Rogerio Alves <rogealve@br.ibm.com>
* Matheus Castanho <msc@linux.ibm.com>
* For conditions of distribution and use, see copyright notice in zlib.h
*/
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "zutil.h"
#include "zutil_p.h"
extern "C" {
# include "zbuild.h"
# include "arch_functions.h"
# include "test_cpu_features.h"
}
#include <gtest/gtest.h>
typedef struct {
unsigned long crc;
const uint8_t *buf;
size_t len;
unsigned long expect;
} crc32_test;
ALIGNED_(16) uint8_t fullwin_buf[32768];
uint8_t* setup_buf() {
for (int i = 0; i < 32768; ++i) {
unsigned char ic = (unsigned char)(i % 256);
fullwin_buf[i] = ic;
}
return fullwin_buf;
}
static uint8_t *buf32k = setup_buf();
static const crc32_test tests[] = {
{0x0, (const uint8_t *)0x0, 0, 0x0},
{0xffffffff, (const uint8_t *)0x0, 0, 0x0},
{0x0, (const uint8_t *)0x0, 255, 0x0}, /* BZ 174799. */
{0x0, (const uint8_t *)0x0, 256, 0x0},
{0x0, (const uint8_t *)0x0, 257, 0x0},
{0x0, (const uint8_t *)0x0, 32767, 0x0},
{0x0, (const uint8_t *)0x0, 32768, 0x0},
{0x0, (const uint8_t *)0x0, 32769, 0x0},
{0x0, (const uint8_t *)"", 0, 0x0},
{0xffffffff, (const uint8_t *)"", 0, 0xffffffff},
{0x0, (const uint8_t *)"abacus", 6, 0xc3d7115b},
{0x0, (const uint8_t *)"backlog", 7, 0x269205},
{0x0, (const uint8_t *)"campfire", 8, 0x22a515f8},
{0x0, (const uint8_t *)"delta", 5, 0x9643fed9},
{0x0, (const uint8_t *)"executable", 10, 0xd68eda01},
{0x0, (const uint8_t *)"file", 4, 0x8c9f3610},
{0x0, (const uint8_t *)"greatest", 8, 0xc1abd6cd},
{0x0, (const uint8_t *)"hello", 5, 0x3610a686},
{0x0, (const uint8_t *)"inverter", 8, 0xc9e962c9},
{0x0, (const uint8_t *)"jigsaw", 6, 0xce4e3f69},
{0x0, (const uint8_t *)"karate", 6, 0x890be0e2},
{0x0, (const uint8_t *)"landscape", 9, 0xc4e0330b},
{0x0, (const uint8_t *)"machine", 7, 0x1505df84},
{0x0, (const uint8_t *)"nanometer", 9, 0xd4e19f39},
{0x0, (const uint8_t *)"oblivion", 8, 0xdae9de77},
{0x0, (const uint8_t *)"panama", 6, 0x66b8979c},
{0x0, (const uint8_t *)"quest", 5, 0x4317f817},
{0x0, (const uint8_t *)"resource", 8, 0xbc91f416},
{0x0, (const uint8_t *)"secret", 6, 0x5ca2e8e5},
{0x0, (const uint8_t *)"test", 4, 0xd87f7e0c},
{0x0, (const uint8_t *)"ultimate", 8, 0x3fc79b0b},
{0x0, (const uint8_t *)"vector", 6, 0x1b6e485b},
{0x0, (const uint8_t *)"walrus", 6, 0xbe769b97},
{0x0, (const uint8_t *)"xeno", 4, 0xe7a06444},
{0x0, (const uint8_t *)"yelling", 7, 0xfe3944e5},
{0x0, (const uint8_t *)"zlib", 4, 0x73887d3a},
{0x0, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0xd487a5a1},
{0x0, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0x61a0132e},
{0x0, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdf02f76},
{0x0, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x579b2b0a},
{0x0, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xf7d16e2d},
{0x0, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0x731788f5},
{0x0, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0x7112bb11},
{0x0, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xf32a0dac},
{0x0, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0x625437bb},
{0x0, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0x896930f9},
{0x0, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0x8579a37},
{0x0, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0x632aa8e0},
{0x0, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0xc829af29},
{0x0, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x1b08b7e8},
{0x0, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x4e33b192},
{0x0, (const uint8_t *)"70684206568419061514", 20, 0x59a179f0},
{0x0, (const uint8_t *)"42015093765128581010", 20, 0xcd1013d7},
{0x0, (const uint8_t *)"88214814356148806939", 20, 0xab927546},
{0x0, (const uint8_t *)"43472694284527343838", 20, 0x11f3b20c},
{0x0, (const uint8_t *)"49769333513942933689", 20, 0xd562d4ca},
{0x0, (const uint8_t *)"54979784887993251199", 20, 0x233395f7},
{0x0, (const uint8_t *)"58360544869206793220", 20, 0x2d167fd5},
{0x0, (const uint8_t *)"27347953487840714234", 20, 0x8b5108ba},
{0x0, (const uint8_t *)"07650690295365319082", 20, 0xc46b3cd8},
{0x0, (const uint8_t *)"42655507906821911703", 20, 0xc10b2662},
{0x0, (const uint8_t *)"29977409200786225655", 20, 0xc9a0f9d2},
{0x0, (const uint8_t *)"85181542907229116674", 20, 0x9341357b},
{0x0, (const uint8_t *)"87963594337989416799", 20, 0xf0424937},
{0x0, (const uint8_t *)"21395988329504168551", 20, 0xd7c4c31f},
{0x0, (const uint8_t *)"51991013580943379423", 20, 0xf11edcc4},
{0x0, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x40795df4},
{0x0, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0xdd61a631},
{0x0, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xca907a99},
{0x0, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0xf652deac},
{0x0, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0xaf39a5a9},
{0x0, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x6bebb4cf},
{0x0, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0x76430bac},
{0x0, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x6c80c388},
{0x0, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xd54d977d},
{0x0, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0xe3966ad5},
{0x0, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xe7c71db9},
{0x0, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xeaa52777},
{0x0, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xcd472048},
{0x7a30360d, (const uint8_t *)"abacus", 6, 0xf8655a84},
{0x6fd767ee, (const uint8_t *)"backlog", 7, 0x1ed834b1},
{0xefeb7589, (const uint8_t *)"campfire", 8, 0x686cfca},
{0x61cf7e6b, (const uint8_t *)"delta", 5, 0x1554e4b1},
{0xdc712e2, (const uint8_t *)"executable", 10, 0x761b4254},
{0xad23c7fd, (const uint8_t *)"file", 4, 0x7abdd09b},
{0x85cb2317, (const uint8_t *)"greatest", 8, 0x4ba91c6b},
{0x9eed31b0, (const uint8_t *)"inverter", 8, 0xd5e78ba5},
{0xb94f34ca, (const uint8_t *)"jigsaw", 6, 0x23649109},
{0xab058a2, (const uint8_t *)"karate", 6, 0xc5591f41},
{0x5bff2b7a, (const uint8_t *)"landscape", 9, 0xf10eb644},
{0x605c9a5f, (const uint8_t *)"machine", 7, 0xbaa0a636},
{0x51bdeea5, (const uint8_t *)"nanometer", 9, 0x6af89afb},
{0x85c21c79, (const uint8_t *)"oblivion", 8, 0xecae222b},
{0x97216f56, (const uint8_t *)"panama", 6, 0x47dffac4},
{0x18444af2, (const uint8_t *)"quest", 5, 0x70c2fe36},
{0xbe6ce359, (const uint8_t *)"resource", 8, 0x1471d925},
{0x843071f1, (const uint8_t *)"secret", 6, 0x50c9a0db},
{0xf2480c60, (const uint8_t *)"ultimate", 8, 0xf973daf8},
{0x2d2feb3d, (const uint8_t *)"vector", 6, 0x344ac03d},
{0x7490310a, (const uint8_t *)"walrus", 6, 0x6d1408ef},
{0x97d247d4, (const uint8_t *)"xeno", 4, 0xe62670b5},
{0x93cf7599, (const uint8_t *)"yelling", 7, 0x1b36da38},
{0x73c84278, (const uint8_t *)"zlib", 4, 0x6432d127},
{0x228a87d1, (const uint8_t *)"4BJD7PocN1VqX0jXVpWB", 20, 0x997107d0},
{0xa7a048d0, (const uint8_t *)"F1rPWI7XvDs6nAIRx41l", 20, 0xdc567274},
{0x1f0ded40, (const uint8_t *)"ldhKlsVkPFOveXgkGtC2", 20, 0xdcc63870},
{0xa804a62f, (const uint8_t *)"5KKnGOOrs8BvJ35iKTOS", 20, 0x6926cffd},
{0x508fae6a, (const uint8_t *)"0l1tw7GOcem06Ddu7yn4", 20, 0xb52b38bc},
{0xe5adaf4f, (const uint8_t *)"MCr47CjPIn9R1IvE1Tm5", 20, 0xf83b8178},
{0x67136a40, (const uint8_t *)"UcixbzPKTIv0SvILHVdO", 20, 0xc5213070},
{0xb00c4a10, (const uint8_t *)"dGnAyAhRQDsWw0ESou24", 20, 0xbc7648b0},
{0x2e0c84b5, (const uint8_t *)"di0nvmY9UYMYDh0r45XT", 20, 0xd8123a72},
{0x81238d44, (const uint8_t *)"2XKDwHfAhFsV0RhbqtvH", 20, 0xd5ac5620},
{0xf853aa92, (const uint8_t *)"ZhrANFIiIvRnqClIVyeD", 20, 0xceae099d},
{0x5a692325, (const uint8_t *)"v7Q9ehzioTOVeDIZioT1", 20, 0xb07d2b24},
{0x3275b9f, (const uint8_t *)"Yod5hEeKcYqyhfXbhxj2", 20, 0x24ce91df},
{0x38371feb, (const uint8_t *)"GehSWY2ay4uUKhehXYb0", 20, 0x707b3b30},
{0xafc8bf62, (const uint8_t *)"kwytJmq6UqpflV8Y8GoE", 20, 0x16abc6a9},
{0x9b07db73, (const uint8_t *)"70684206568419061514", 20, 0xae1fb7b7},
{0xe75b214, (const uint8_t *)"42015093765128581010", 20, 0xd4eecd2d},
{0x72d0fe6f, (const uint8_t *)"88214814356148806939", 20, 0x4660ec7},
{0xf857a4b1, (const uint8_t *)"43472694284527343838", 20, 0xfd8afdf7},
{0x54b8e14, (const uint8_t *)"49769333513942933689", 20, 0xc6d1b5f2},
{0xd6aa5616, (const uint8_t *)"54979784887993251199", 20, 0x32476461},
{0x11e63098, (const uint8_t *)"58360544869206793220", 20, 0xd917cf1a},
{0xbe92385, (const uint8_t *)"27347953487840714234", 20, 0x4ad14a12},
{0x49511de0, (const uint8_t *)"07650690295365319082", 20, 0xe37b5c6c},
{0x3db13bc1, (const uint8_t *)"42655507906821911703", 20, 0x7cc497f1},
{0xbb899bea, (const uint8_t *)"29977409200786225655", 20, 0x99781bb2},
{0xf6cd9436, (const uint8_t *)"85181542907229116674", 20, 0x132256a1},
{0x9109e6c3, (const uint8_t *)"87963594337989416799", 20, 0xbfdb2c83},
{0x75770fc, (const uint8_t *)"21395988329504168551", 20, 0x8d9d1e81},
{0x69b1d19b, (const uint8_t *)"51991013580943379423", 20, 0x7b6d4404},
{0xc6132975, (const uint8_t *)"*]+@!);({_$;}[_},?{?;(_?,=-][@", 30, 0x8619f010},
{0xd58cb00c, (const uint8_t *)"_@:_).&(#.[:[{[:)$++-($_;@[)}+", 30, 0x15746ac3},
{0xb63b8caa, (const uint8_t *)"&[!,[$_==}+.]@!;*(+},[;:)$;)-@", 30, 0xaccf812f},
{0x8a45a2b8, (const uint8_t *)"]{.[.+?+[[=;[?}_#&;[=)__$$:+=_", 30, 0x78af45de},
{0xcbe95b78, (const uint8_t *)"-%.)=/[@].:.(:,()$;=%@-$?]{%+%", 30, 0x25b06b59},
{0x4ef8a54b, (const uint8_t *)"+]#$(@&.=:,*];/.!]%/{:){:@(;)$", 30, 0x4ba0d08f},
{0x76ad267a, (const uint8_t *)")-._.:?[&:.=+}(*$/=!.${;(=$@!}", 30, 0xe26b6aac},
{0x569e613c, (const uint8_t *)":(_*&%/[[}+,?#$&*+#[([*-/#;%(]", 30, 0x7e2b0a66},
{0x36aa61da, (const uint8_t *)"{[#-;:$/{)(+[}#]/{&!%(@)%:@-$:", 30, 0xb3430dc7},
{0xf67222df, (const uint8_t *)"_{$*,}(&,@.)):=!/%(&(,,-?$}}}!", 30, 0x626c17a},
{0x74b34fd3, (const uint8_t *)"e$98KNzqaV)Y:2X?]77].{gKRD4G5{mHZk,Z)SpU%L3FSgv!Wb8MLAFdi{+fp)c,@8m6v)yXg@]HBDFk?.4&}g5_udE*JHCiH=aL", 100, 0xccf98060},
{0x351fd770, (const uint8_t *)"r*Fd}ef+5RJQ;+W=4jTR9)R*p!B;]Ed7tkrLi;88U7g@3v!5pk2X6D)vt,.@N8c]@yyEcKi[vwUu@.Ppm@C6%Mv*3Nw}Y,58_aH)", 100, 0xd8b95312},
{0xc45aef77, (const uint8_t *)"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 100, 0xbb1c9912},
{0xc45aef77, (const uint8_t *)
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&"
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&"
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&"
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&"
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&"
"h{bcmdC+a;t+Cf{6Y_dFq-{X4Yu&7uNfVDh?q&_u.UWJU],-GiH7ADzb7-V.Q%4=+v!$L9W+T=bP]$_:]Vyg}A.ygD.r;h-D]m%&", 600, 0x888AFA5B},
{0x0, buf32k, 32768, 0x217726B2},
{0x0, buf32k, 16384, 0xE81722F0}
};
class crc32_variant : public ::testing::TestWithParam<crc32_test> {
public:
void hash(crc32_test param, crc32_func crc32) {
uint32_t crc = 0;
if (param.buf != NULL) {
if (param.len) {
crc = crc32(param.crc, param.buf, param.len);
} else {
crc = param.crc;
}
}
EXPECT_EQ(crc, param.expect);
}
};
/* Specifically to test where we had dodgy alignment in the ARMv8 CRC32
* function. All others are either byte level access or use intrinsics
* that work with unaligned access */
class crc32_align : public ::testing::TestWithParam<int> {
public:
void hash(int param, crc32_func crc32) {
uint8_t *buf = (uint8_t*)zng_alloc(sizeof(uint8_t) * (128 + param));
if (buf != NULL) {
(void)crc32(0, buf + param, 128);
} else {
FAIL();
}
zng_free(buf);
}
};
INSTANTIATE_TEST_SUITE_P(crc32, crc32_variant, testing::ValuesIn(tests));
#define TEST_CRC32(name, func, support_flag) \
TEST_P(crc32_variant, name) { \
if (!(support_flag)) { \
GTEST_SKIP(); \
return; \
} \
hash(GetParam(), func); \
}
#ifndef WITHOUT_CHORBA
TEST_CRC32(generic_chorba, crc32_c, 1)
#else
TEST_CRC32(generic, crc32_c, 1)
#endif
TEST_CRC32(braid, crc32_braid, 1)
#ifdef DISABLE_RUNTIME_CPU_DETECTION
TEST_CRC32(native, native_crc32, 1)
#else
#ifdef ARM_CRC32
static const int align_offsets[] = {
1, 2, 3, 4, 5, 6, 7
};
#define TEST_CRC32_ALIGN(name, func, support_flag) \
TEST_P(crc32_align, name) { \
if (!(support_flag)) { \
GTEST_SKIP(); \
return; \
} \
hash(GetParam(), func); \
}
INSTANTIATE_TEST_SUITE_P(crc32_alignment, crc32_align, testing::ValuesIn(align_offsets));
TEST_CRC32(armv8, crc32_armv8, test_cpu_features.arm.has_crc32)
TEST_CRC32_ALIGN(armv8_align, crc32_armv8, test_cpu_features.arm.has_crc32)
#endif
#ifdef RISCV_CRC32_ZBC
TEST_CRC32(riscv, crc32_riscv64_zbc, test_cpu_features.riscv.has_zbc)
#endif
#ifdef POWER8_VSX_CRC32
TEST_CRC32(power8, crc32_power8, test_cpu_features.power.has_arch_2_07)
#endif
#ifdef S390_CRC32_VX
TEST_CRC32(vx, crc32_s390_vx, test_cpu_features.s390.has_vx)
#endif
#ifdef X86_PCLMULQDQ_CRC
TEST_CRC32(pclmulqdq, crc32_pclmulqdq, test_cpu_features.x86.has_pclmulqdq)
#endif
#ifdef X86_VPCLMULQDQ_CRC
TEST_CRC32(vpclmulqdq, crc32_vpclmulqdq, (test_cpu_features.x86.has_pclmulqdq && test_cpu_features.x86.has_avx512_common && test_cpu_features.x86.has_vpclmulqdq))
#endif
#if !defined(WITHOUT_CHORBA) && defined(X86_SSE2) && !defined(NO_CHORBA_SSE)
TEST_CRC32(chorba_sse2, crc32_chorba_sse2, test_cpu_features.x86.has_sse2)
#endif
#if !defined(WITHOUT_CHORBA) && defined(X86_SSE41) && !defined(NO_CHORBA_SSE)
TEST_CRC32(chorba_sse41, crc32_chorba_sse41, test_cpu_features.x86.has_sse41)
#endif
#endif