Spdk/test/common/skipped_build_files.txt

58 lines
1.6 KiB
Plaintext
Raw Normal View History

# Not configured to test vtune.
lib/bdev/vtune
# Not configured to test rocksdb env file
lib/rocksdb/env_spdk.cc
# Not configured to test FC
lib/nvmf/fc
lib/nvmf/fc_ls
test/unit/lib/nvmf/fc.c/fc_ut
test/unit/lib/nvmf/fc_ls.c/fc_ls_ut
# Not configured for Neon testing
lib/util/base64_neon
# Not configured for ARM SVE testing
lib/util/base64_sve
# Not configured for mlx5 dv testing
lib/rdma/rdma_mlx5_dv
# Not configured for kernel idxd
lib/idxd/idxd_kernel
# These files all represent c files that are only compiled by direct inclusion in other files.
test/common/lib/test_env
test/common/lib/test_sock
test/common/lib/ut_multithread
test/common/lib/test_rdma
test/unit/lib/blob/bs_dev_common
test/unit/lib/blob/bs_scheduler
test/unit/lib/ftl/common/utils
test/unit/lib/iscsi/common
test/unit/lib/json_mock
test/unit/lib/sock/uring.c/uring_ut
test/unit/lib/idxd/idxd_kernel.c/idxd_kernel_ut
# These files are in the external_code directory which doesn't get compiled with SPDK.
test/external_code/hello_world/hello_bdev
test/external_code/passthru/vbdev_passthru
test/external_code/passthru/vbdev_passthru_rpc
test/external_code/nvme/nvme
test/external_code/nvme/identify
test/nvmf: fuzz nvmf target using LLVM's libFuzzer LLVM provides libFuzzer which does coverage-guided fuzzing of a library or application under test. For SPDK, we can use this as a new and better way to generate random commands to the SPDK nvmf target. By default, libFuzzer provides the main() and your source file just provides the function called by LLVM for each iteration of random data. But this doesn't really work for SPDK since we need to start the app framework and the nvmf target. So we specify -fsanitizer=fuzzer-no-link, explicitly specify the location of the fuzzer_no_main library and then call LLVMFuzzerRunDriver to start the fuzzing process once we are ready. Since this is all coverage-guided, we invoke the fuzzer inside the nvmf target application. So this patch creates a new target application called 'llvm_nvme_fuzz'. One core is needed to run the nvmf target, then we spawn a pthread to run the fuzzer against it. Currently there are two fuzzers defined. Fuzzer 0 does random testing of admin commands. Fuzzer 1 is focused solely on GET_LOG_PAGE and fuzzes a smaller subset of the bytes in the spdk_nvme_cmd. Additional fuzzers can be added in the future for other commands, testing I/O queues, data payloads, etc. You do need to specify CC and CXX when running configure, as well as specify the location of the special clang_rt.fuzz_no_main library. The path of that library is dependent on your clang version and architecture. If using clang-12 on x86_64 platform, it will look like: CC=clang-12 CXX=clang++-12 ./configure --with-fuzzer= \ /usr/lib/llvm-12/lib/clang/12.0.0/lib/linux/libclang_rt.fuzzer_no_main-x86_64.a Then just do the following to demonstrate the fuzzer tool. make test/nvmf/target/llvm_nvme_fuzz.sh --time=60 --fuzzer=0 Signed-off-by: Jim Harris <james.r.harris@intel.com> Change-Id: Iee0997501893ac284a3947a1db7a155c5ceb7849 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10038 Reviewed-by: Changpeng Liu <changpeng.liu@intel.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com> Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-10-15 21:54:52 +00:00
# This file requires some additional work in CI and test scripts before it can
# be part of autotest.
test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz
test/app/fuzz/llvm_vfio_fuzz/llvm_vfio_fuzz
# Disable DAOS. Development libraries are not available for Fedora which is
# used for the main build and scanbuild tests.
module/bdev/daos/bdev_daos
module/bdev/daos/bdev_daos_rpc
# Not configured to test xNVMe bdev
module/bdev/xnvme/bdev_xnvme
module/bdev/xnvme/bdev_xnvme_rpc