mirror of
https://github.com/versity/scoutfs.git
synced 2025-12-23 05:25:18 +00:00
Two test programs are added. The run time is about 1min on my el7 instance. The test script finishes up with a read/write mmap test on offline extents to verify the data wait paths in those functions. One program will perform vfs read/write and mmap read/write calls on the same file from across 5 threads (mounts) repeatedly. The goal is to assure there are no locking issues between read/write paths. The second test program performs consistency checking on a file that is repeatedly written/read using memory maps and normal reads and writes, and the content is verified after every operation. Signed-off-by: Auke Kok <auke.kok@versity.com>
61 lines
1.4 KiB
Makefile
61 lines
1.4 KiB
Makefile
CFLAGS := -Wall -O2 -Werror -D_FILE_OFFSET_BITS=64 -fno-strict-aliasing -I ../kmod/src
|
|
SHELL := /usr/bin/bash
|
|
|
|
# each binary command is built from a single .c file
|
|
BIN := src/createmany \
|
|
src/dumb_renameat2 \
|
|
src/dumb_setxattr \
|
|
src/handle_cat \
|
|
src/handle_fsetxattr \
|
|
src/bulk_create_paths \
|
|
src/stage_tmpfile \
|
|
src/find_xattrs \
|
|
src/create_xattr_loop \
|
|
src/fragmented_data_extents \
|
|
src/o_tmpfile_umask \
|
|
src/o_tmpfile_linkat \
|
|
src/mmap_stress \
|
|
src/mmap_validate
|
|
|
|
DEPS := $(wildcard src/*.d)
|
|
|
|
all: $(BIN)
|
|
|
|
ifneq ($(DEPS),)
|
|
-include $(DEPS)
|
|
endif
|
|
|
|
src/mmap_stress: LIBS+=-lpthread
|
|
|
|
$(BIN): %: %.c Makefile
|
|
gcc $(CFLAGS) -MD -MP -MF $*.d $< -o $@ $(LIBS)
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@rm -f $(BIN) $(DEPS)
|
|
|
|
#
|
|
# Make sure we only have all three items needed for each test: entry in
|
|
# sequence, test script in tests/, and output in golden/.
|
|
#
|
|
.PHONY: check-test-files
|
|
check-test-files:
|
|
@for t in $$(grep -v "^#" sequence); do \
|
|
test -e "tests/$$t" || \
|
|
echo "no test for list entry: $$t"; \
|
|
t=$${t%%.sh}; \
|
|
test -e "golden/$$t" || \
|
|
echo "no output for list entry: $$t"; \
|
|
done; \
|
|
for t in golden/*; do \
|
|
t=$$(basename "$$t"); \
|
|
grep -q "^$$t.sh$$" sequence || \
|
|
echo "output not in list: $$t"; \
|
|
done; \
|
|
for t in tests/*; do \
|
|
t=$$(basename "$$t"); \
|
|
test "$$t" == "list" && continue; \
|
|
grep -q "^$$t$$" sequence || \
|
|
echo "test not in list: $$t"; \
|
|
done
|