mirror of
https://github.com/facebook/zstd.git
synced 2025-07-29 11:21:22 +03:00
[linux-kernel] Add test that checks the ifdef hardwiring
This commit is contained in:
@ -33,7 +33,7 @@ libzstd:
|
||||
-DXXH_STATIC_LINKING_ONLY \
|
||||
-DMEM_FORCE_MEMORY_ACCESS=0 \
|
||||
-D__GNUC__ \
|
||||
-USTATIC_BMI2 \
|
||||
-DSTATIC_BMI2=0 \
|
||||
-UZSTD_NO_INLINE \
|
||||
-UNO_PREFETCH \
|
||||
-U__cplusplus \
|
||||
|
@ -19,6 +19,7 @@ test: test.c liblinuxzstd.a
|
||||
$(CC) $(LDFLAGS) $(CPPFLAGS) $(CFLAGS) $^ -o $@
|
||||
|
||||
run-test: test
|
||||
./macro-test.sh
|
||||
./test
|
||||
|
||||
.PHONY:
|
||||
|
44
contrib/linux-kernel/test/macro-test.sh
Executable file
44
contrib/linux-kernel/test/macro-test.sh
Executable file
@ -0,0 +1,44 @@
|
||||
#!/usr/bin/env sh
|
||||
|
||||
set -e
|
||||
|
||||
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
|
||||
INCLUDE_DIR="$SCRIPT_DIR/../linux/include"
|
||||
LIB_DIR="$SCRIPT_DIR/../linux/lib"
|
||||
|
||||
|
||||
print() {
|
||||
printf '%b' "${*}"
|
||||
}
|
||||
|
||||
println() {
|
||||
printf '%b\n' "${*}"
|
||||
}
|
||||
|
||||
die() {
|
||||
println "$@" 1>&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
test_not_present() {
|
||||
print "Testing that '$1' is not present... "
|
||||
grep -r $1 "$INCLUDE_DIR" "$LIB_DIR" && die "Fail!"
|
||||
println "Okay"
|
||||
}
|
||||
|
||||
println "This test checks that the macro removal process worked as expected"
|
||||
println "If this test fails, then freestanding.py wasn't able to remove one of these"
|
||||
println "macros from the source code completely. You'll either need to rewrite the check"
|
||||
println "or improve freestanding.py."
|
||||
println ""
|
||||
|
||||
test_not_present "ZSTD_NO_INTRINSICS"
|
||||
test_not_present "ZSTD_NO_UNUSED_FUNCTIONS"
|
||||
test_not_present "ZSTD_LEGACY_SUPPORT"
|
||||
test_not_present "STATIC_BMI2"
|
||||
test_not_present "ZSTD_NO_INLINE"
|
||||
test_not_present "ZSTD_DLL_EXPORT"
|
||||
test_not_present "ZSTD_DLL_IMPORT"
|
||||
test_not_present "__ICCARM__"
|
||||
test_not_present "_MSC_VER"
|
||||
test_not_present "_WIN32"
|
@ -337,7 +337,7 @@ MEM_STATIC FORCE_INLINE_ATTR size_t BIT_getMiddleBits(size_t bitContainer, U32 c
|
||||
|
||||
MEM_STATIC FORCE_INLINE_ATTR size_t BIT_getLowerBits(size_t bitContainer, U32 const nbBits)
|
||||
{
|
||||
#if STATIC_BMI2
|
||||
#if defined(STATIC_BMI2) && STATIC_BMI2 == 1
|
||||
return _bzhi_u64(bitContainer, nbBits);
|
||||
#else
|
||||
assert(nbBits < BIT_MASK_SIZE);
|
||||
|
Reference in New Issue
Block a user