fuzzers: Add 000-init-db fuzzer.

Creates the .db files via make rather than via sourcing settings.sh
allowing pip fuzzers to interact correctly with `make clean`.

Fixes #604.

Signed-off-by: Tim 'mithro' Ansell <me@mith.ro>
This commit is contained in:
Tim 'mithro' Ansell 2019-02-04 16:29:48 +11:00
parent 68c2797f5b
commit 2eb1bf3bfe
6 changed files with 77 additions and 42 deletions

View File

@ -0,0 +1,74 @@
MASKS=\
bram \
clbll \
clblm \
dsp \
hclk \
PPIPS=\
bram \
bram_int_interface \
clbll \
clblm \
dsp \
hclk \
int \
SEGBITS=\
bram \
clbll \
clblm \
dsp \
hclk \
int \
DB_SIMPLE=$(addprefix mask_,$(MASKS)) $(addprefix ppips_,$(PPIPS)) $(addprefix segbits_,$(SEGBITS))
# Extra (segbits|mask)_bram_(l|r).block_ram.db files
# FIXME: Are these things also needed for the DSP blocks?
BLOCK_RAM_EXTRA_FOR=mask_bram segbits_bram
BLOCK_RAM_EXTRA_DB_FILES=$(addsuffix .block_ram.db,$(addsuffix _l,$(BLOCK_RAM_EXTRA_FOR)) $(addsuffix _r,$(BLOCK_RAM_EXTRA_FOR)))
DB_FILES=$(sort $(addsuffix _l.db,$(DB_SIMPLE)) $(addsuffix _r.db,$(DB_SIMPLE)) $(BLOCK_RAM_EXTRA_DB_FILES))
DB_FILES_PATH=$(addprefix $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/,$(DB_FILES))
check:
@mkdir -p build
@rm -f build/existing.txt
@for DB_FILE in $(sort $(notdir $(wildcard $(XRAY_DATABASE_DIR)/$(XRAY_DATABASE)/*.db))); do \
echo $$DB_FILE >> build/existing.txt; \
done
@rm -f build/tocreate.txt
@for DB_FILE in $(sort $(DB_FILES)); do \
echo $$DB_FILE >> build/tocreate.txt; \
done
diff -u build/existing.txt build/tocreate.txt
status:
@echo $(DB_FILES_PATH)
@for DB_FILE in $(DB_FILES_PATH); do \
echo -n "$$(basename $$DB_FILE) "; \
if [ -e "$$DB_FILE" ]; then \
echo -n "Exists! - "; \
else \
echo -n "Missing! - "; \
fi; \
echo "$$DB_FILE"; \
done
$(DB_FILES_PATH):
touch $@
pushdb: $(DB_FILES_PATH)
@true
run:
$(MAKE) clean
$(MAKE) pushdb
touch run.ok
clean:
rm -rf build run.ok
.PHONY: pushdb clean run

View File

@ -18,8 +18,10 @@ $(1)/run.ok: $(addsuffix /run.ok,$(2))
$$(MAKE) -C $(1) run
endef
$(eval $(call fuzzer,000-init-db,))
ifneq ($(FUZZONLY),Y)
$(eval $(call fuzzer,001-part-yaml,))
$(eval $(call fuzzer,001-part-yaml,000-init-db))
$(eval $(call fuzzer,005-tilegrid,001-part-yaml))
else
all:: 005-tilegrid/run.ok

View File

@ -24,4 +24,3 @@ export XRAY_PIN_05="G22"
export XRAY_PIN_06="F21"
source $(dirname ${BASH_SOURCE[0]})/../utils/environment.sh
init_db

View File

@ -24,4 +24,3 @@ export XRAY_PIN_05="M20"
export XRAY_PIN_06="M21"
source $(dirname ${BASH_SOURCE[0]})/../utils/environment.sh
init_db

View File

@ -24,4 +24,3 @@ export XRAY_PIN_05="J16"
export XRAY_PIN_06="J15"
source $(dirname ${BASH_SOURCE[0]})/../utils/environment.sh
init_db

View File

@ -45,41 +45,3 @@ if [ $(${XRAY_VIVADO} -h |grep Vivado |cut -d\ -f 2) != "v2017.2" ] ; then
export XRAY_DIR="/bad/vivado/version"
return
fi
function init_db
{
# Check if database files exist. If don't, create empty ones
db_files="mask_clbll_l.db \
mask_clbll_r.db \
mask_clblm_l.db \
mask_clblm_r.db \
mask_hclk_l.db \
mask_hclk_r.db \
ppips_clbll_l.db \
ppips_clbll_r.db \
ppips_clblm_l.db \
ppips_clblm_r.db \
ppips_hclk_l.db \
ppips_hclk_r.db \
ppips_int_l.db \
ppips_int_r.db \
segbits_bram_l.block_ram.db \
segbits_bram_l.db \
segbits_bram_r.block_ram.db \
segbits_bram_r.db \
segbits_clbll_l.db \
segbits_clbll_r.db \
segbits_clblm_l.db \
segbits_clblm_r.db \
segbits_hclk_l.db \
segbits_hclk_r.db \
segbits_int_l.db \
segbits_int_r.db"
for db in $db_files
do
if [ ! -f ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/$db ]; then
touch ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/$db
fi
done
}