mirror of https://github.com/openXC7/prjxray.git
pip fuzzers: enable part specific builds
Signed-off-by: Alessandro Comodi <acomodi@antmicro.com>
This commit is contained in:
parent
6e95748068
commit
913a6ece40
|
|
@ -47,17 +47,18 @@ set -ex
|
|||
MAKE=${MAKE:-make}
|
||||
echo $MAKE
|
||||
i=1
|
||||
BUILD_DIR=${BUILD_DIR:-build}
|
||||
while true; do
|
||||
${MAKE} ITER=$i cleaniter
|
||||
${MAKE} ITER=$i build/todo.txt
|
||||
if [ ! -s build/todo.txt -a $i -eq 1 ]; then
|
||||
${MAKE} ITER=$i $BUILD_DIR/todo.txt
|
||||
if [ ! -s $BUILD_DIR/todo.txt -a $i -eq 1 ]; then
|
||||
echo "Empty TODO file, assuming all the ints were already solved!"
|
||||
exit 0
|
||||
fi
|
||||
if python3 ${XRAY_DIR}/fuzzers/int_loop_check.py $check_args ; then
|
||||
break
|
||||
fi
|
||||
if [ -f build/todo/timeout ] ; then
|
||||
if [ -f $BUILD_DIR/todo/timeout ] ; then
|
||||
echo "ERROR: timeout"
|
||||
exit 1
|
||||
fi
|
||||
|
|
|
|||
|
|
@ -15,10 +15,13 @@ ITER ?= 1
|
|||
MAKETODO_FLAGS ?=--pip-type pips_int --seg-type int
|
||||
SPECIMENS_DEPS ?=
|
||||
|
||||
BUILD_DIR ?= ${FUZDIR}/build
|
||||
RUN_OK ?= run.ok
|
||||
|
||||
# See int_loop_check.py
|
||||
# rempips took 35 iters once, so set 50 as a good start point
|
||||
CHECK_ARGS ?= --zero-entries --timeout-iters 50
|
||||
SPECIMENS := $(addprefix build/$(ITER)/specimen_,$(shell seq -f '%03.0f' $(N)))
|
||||
SPECIMENS := $(addprefix $(BUILD_DIR)/$(ITER)/specimen_,$(shell seq -f '%03.0f' $(N)))
|
||||
SPECIMENS_OK := $(addsuffix /OK,$(SPECIMENS))
|
||||
# Individual fuzzer directory, such as ~/prjxray/fuzzers/010-lutinit
|
||||
export FUZDIR=$(shell pwd)
|
||||
|
|
@ -29,8 +32,8 @@ all: database
|
|||
SELF_DIR := $(dir $(lastword $(MAKEFILE_LIST)))
|
||||
include $(SELF_DIR)/pip_list.mk
|
||||
|
||||
$(SPECIMENS_OK): build/todo.txt $(SPECIMENS_DEPS)
|
||||
mkdir -p build/$(ITER)
|
||||
$(SPECIMENS_OK): $(BUILD_DIR)/todo.txt $(SPECIMENS_DEPS)
|
||||
mkdir -p $(BUILD_DIR)/$(ITER)
|
||||
+if [ -f ${FUZDIR}/generate.sh ] ; then \
|
||||
bash ${FUZDIR}/generate.sh $(subst /OK,,$@) ; \
|
||||
else \
|
||||
|
|
@ -39,37 +42,37 @@ $(SPECIMENS_OK): build/todo.txt $(SPECIMENS_DEPS)
|
|||
touch $@
|
||||
|
||||
# Used 1) to see if we are done 2) pips to try in generate.tcl
|
||||
build/todo.txt: piplist $(XRAY_DIR)/fuzzers/int_maketodo.py build/database/seeded
|
||||
XRAY_DATABASE_DIR=${FUZDIR}/build/database \
|
||||
$(BUILD_DIR)/todo.txt: piplist $(XRAY_DIR)/fuzzers/int_maketodo.py $(BUILD_DIR)/database/seeded
|
||||
XRAY_DATABASE_DIR=$(BUILD_DIR)/database \
|
||||
python3 $(XRAY_DIR)/fuzzers/int_maketodo.py \
|
||||
$(MAKETODO_FLAGS) |sort >build/todo_all.txt
|
||||
cat build/todo_all.txt | sort -R | head -n$(TODO_N) > build/todo.txt.tmp
|
||||
mv build/todo.txt.tmp build/todo.txt
|
||||
$(MAKETODO_FLAGS) |sort >$(BUILD_DIR)/todo_all.txt
|
||||
cat $(BUILD_DIR)/todo_all.txt | sort -R | head -n$(TODO_N) > $(BUILD_DIR)/todo.txt.tmp
|
||||
mv $(BUILD_DIR)/todo.txt.tmp $(BUILD_DIR)/todo.txt
|
||||
# Per iter files
|
||||
mkdir -p build/$(ITER)
|
||||
cp build/todo_all.txt build/todo.txt build/$(ITER)/
|
||||
mkdir -p $(BUILD_DIR)/$(ITER)
|
||||
cp $(BUILD_DIR)/todo_all.txt $(BUILD_DIR)/todo.txt $(BUILD_DIR)/$(ITER)/
|
||||
# All in one dir for easier trending
|
||||
mkdir -p build/todo
|
||||
cp build/todo_all.txt build/todo/$(ITER)_all.txt
|
||||
mkdir -p $(BUILD_DIR)/todo
|
||||
cp $(BUILD_DIR)/todo_all.txt $(BUILD_DIR)/todo/$(ITER)_all.txt
|
||||
|
||||
# Initial copy for first todo.txt
|
||||
# Subsequent are based on updated db
|
||||
build/database/seeded:
|
||||
mkdir -p build/database/${XRAY_DATABASE}
|
||||
cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db build/database/${XRAY_DATABASE}
|
||||
touch build/database/seeded
|
||||
$(BUILD_DIR)/database/seeded:
|
||||
mkdir -p $(BUILD_DIR)/database/${XRAY_DATABASE}
|
||||
cp ${XRAY_DATABASE_DIR}/${XRAY_DATABASE}/segbits*.db $(BUILD_DIR)/database/${XRAY_DATABASE}
|
||||
touch $(BUILD_DIR)/database/seeded
|
||||
|
||||
# FIXME: consider moving to script
|
||||
run:
|
||||
$(MAKE) clean
|
||||
+$(XRAY_DIR)/fuzzers/int_loop.sh --check-args "$(CHECK_ARGS)"
|
||||
touch run.ok
|
||||
+env BUILD_DIR=$(BUILD_DIR) $(XRAY_DIR)/fuzzers/int_loop.sh --check-args "$(CHECK_ARGS)"
|
||||
touch $(RUN_OK)
|
||||
|
||||
clean:
|
||||
rm -rf build run.ok todo
|
||||
rm -rf $(BUILD_DIR) $(RUN_OK) todo
|
||||
|
||||
# Remove iteration specific files, but keep piplist.tcl output
|
||||
cleaniter:
|
||||
rm -rf build/$(ITER) build/todo.txt
|
||||
rm -rf $(BUILD_DIR)/$(ITER) $(BUILD_DIR)/todo.txt
|
||||
|
||||
.PHONY: all database pushdb run clean cleaniter
|
||||
|
|
|
|||
Loading…
Reference in New Issue