Revise the RAID library Makefile

This commit is contained in:
Andrea Mazzoleni 2026-05-27 11:53:45 +02:00
parent 599a4fbb42
commit 1b8bf8dfd0

View file

@ -1,13 +1,25 @@
#
# Test programs for the RAID library
#
# selftest - Runs the same selftest and speedtest executed at the module startup.
# fulltest - Runs a more extensive test that checks all the built-in functions.
# speedtest - Runs a more complete speed test.
# invtest - Runs an extensive matrix inversion test of all the 377.342.351.231
# possible square submatrices of the Cauchy matrix used.
# covtest - Runs a coverage test.
# sdecovtest - Runs a coverage test with the sde emulator.
# Primary Targets:
# all - Builds all test and utility binaries (fulltest, speedtest, selftest, invtest, mktables).
# clean - Removes all temporary object files, build artifacts, and coverage metadata.
# distclean - Runs clean and deletes all compiled test executables.
#
# Test & Diagnostic Binaries:
# selftest - Runs the same verification and speed tests executed at module initialization.
# speedtest - Runs a comprehensive performance/throughput benchmark suite.
# fulltest - Runs an exhaustive test suite verifying all built-in RAID functions.
# invtest - Runs an extensive matrix inversion test on all 377,342,351,231
# possible square submatrices of the Cauchy matrix used.
#
# Test Automation & Emulation:
# test - Automated test runner that executes ./selftest, ./speedtest, and ./fulltest.
# covtest - Executes a code coverage test using lcov/genhtml to generate HTML reports.
# sdecovtest - Runs an extensive coverage test using the Intel SDE emulator across
# multiple CPU architectures (Prescott, Merom, Nehalem, Haswell, Skylake, Ice Lake).
# sde - Runs selftest, speedtest, and fulltest explicitly on the Ice Lake simulator.
#
#
MACHINE = $(shell uname -m)
@ -29,7 +41,7 @@ OBJS = raid.o check.o int.o intz.o x86.o x86z.o gfni.o tables.o memory.o test.o
%.o: ../%.c
$(CC) $(CFLAGS) -c -o $@ $<
all: fulltest speedtest selftest invtest mktables
all: fulltest speedtest selftest invtest mktables tables.c
fulltest: $(OBJS) fulltest.o
$(CC) $(CFLAGS) -o fulltest $^
@ -49,14 +61,20 @@ mktables: mktables.o
tables.c: mktables
./mktables > tables.c
# Use this target to run a complete test
test:
./selftest
./speedtest
./fulltest
# Use this target to run a coverage test using lcov
covtest:
$(MAKE) clean
$(MAKE) lcov_reset
$(MAKE) COVERAGE=1 all
./fulltest
./selftest
./speedtest
./fulltest
$(MAKE) lcov_capture
$(MAKE) lcov_html
@ -79,9 +97,11 @@ sdecovtest:
$(MAKE) lcov_capture
$(MAKE) lcov_html
# Use this target to run a complete test on Ice Lake simulator
sde:
$(SDE) -icl -- ./selftest
$(SDE) -icl -- ./speedtest
$(SDE) -icl -- ./fulltest
lcov_reset:
lcov --directory . -z