test: simplify running infix tests from external

This will facilitate running infix tests from external projects:
  - eliminate the need for an external topology.dot.in file
  - eliminate the requirement to manually provide external image name

Fixes #763
This commit is contained in:
Ahmed Karic
2024-10-25 09:57:08 +02:00
parent 04c843e095
commit 3b2bdbf93c
2 changed files with 9 additions and 7 deletions
+6 -2
View File
@@ -96,14 +96,18 @@ start_topology()
done
base_img=$(get_base_img "$files")
$testdir/inject-test-mode -b "$base_img" -o "${base_img%-disk.img}-disk-test.img"
test_img="${base_img%-disk.img}-disk-test.img"
$testdir/inject-test-mode -b "$base_img" -o "$test_img"
img_name=$(basename "$test_img")
sed -i "s/qn_image=\".*\"/qn_image=\"$img_name\"/" "$envdir/qeneth/topology.dot.in"
(cd "$envdir/qeneth/" && $qeneth generate && $qeneth start)
INFAMY_ARGS="$INFAMY_ARGS $envdir/qeneth/topology.dot"
cat <<EOF >"$envdir/bin/qeneth"
#!/bin/sh
set -x
cd $envdir/qeneth && exec $testdir/qeneth/qeneth "\$@"
EOF
chmod +x "$envdir/bin/qeneth"
+3 -5
View File
@@ -13,18 +13,16 @@ GIT_PATH = $(BR2_EXTERNAL_INFIX_PATH)
endif
GIT_VERSION = $(shell git -C $(GIT_PATH) describe --dirty --always --tags)
IMAGE ?= infix
TOPOLOGY-DIR ?= $(test-dir)/virt/quad
base := -b $(base-dir)
TEST_MODE ?= qeneth
mode-qeneth := -q $(TOPOLOGY-DIR)
mode-qeneth := -q $(test-dir)/virt/quad
mode-host := -t $(or $(TOPOLOGY),/etc/infamy.dot)
mode-run := -t $(BINARIES_DIR)/qemu.dot
mode := $(mode-$(TEST_MODE))
binaries-$(ARCH) := $(addprefix $(IMAGE)-$(ARCH),.img -disk.img .pkg)
INFIX_IMAGE_ID := $(call qstrip,$(INFIX_IMAGE_ID))
binaries-$(ARCH) := $(addprefix $(INFIX_IMAGE_ID),.img -disk.img .pkg)
binaries-x86_64 += OVMF.fd
binaries := $(foreach bin,$(binaries-$(ARCH)),-f $(BINARIES_DIR)/$(bin))