Merge "Add kelvin SW test target"
diff --git a/platforms/nexus/kelvin.mk b/platforms/nexus/kelvin.mk
index 61c2399..f5dc1be 100644
--- a/platforms/nexus/kelvin.mk
+++ b/platforms/nexus/kelvin.mk
@@ -3,6 +3,7 @@
KELVIN_SW_SRC_DIR := $(ROOTDIR)/sw/kelvin
KELVIN_SW_OUT_DIR := $(OUT)/kelvin/sw
KELVIN_SW_BAZEL_OUT_DIR := $(KELVIN_SW_OUT_DIR)/bazel_out
+KELVIN_SW_TESTLOG_DIR := $(KELVIN_SW_OUT_DIR)/bazel_testlog
KELVIN_SIM_SRC_DIR := $(ROOTDIR)/sim/kelvin
KELVIN_SIM_OUT_DIR := $(OUT)/kelvin/sim
@@ -12,6 +13,9 @@
mkdir -p "$(KELVIN_SW_OUT_DIR)"
mkdir -p "$(KELVIN_SW_BAZEL_OUT_DIR)"
+$(KELVIN_SW_TESTLOG_DIR):
+ mkdir -p "$(KELVIN_SW_TESTLOG_DIR)"
+
## Build Kelvin SW artifacts
#
# Some of the artifacts are built with bazel, and need to be copied to out/
@@ -24,8 +28,16 @@
-wholename "*ST-*/*.bin" \) \
-exec cp -f {} "$(KELVIN_SW_BAZEL_OUT_DIR)/" \;
+## Test Kelvin SW artifacts
+#
+# Test Kelvin SW artifacts with kelvin ISS simulation
+kelvin_sw_test: kelvin_sim | $(KELVIN_SW_TESTLOG_DIR)
+ cd "$(KELVIN_SW_SRC_DIR)"; \
+ bazel test --test_env=ROOTDIR=$(ROOTDIR) //... ; \
+ cp -rf bazel-testlogs/tests "$(KELVIN_SW_TESTLOG_DIR)"
+
## Clean Kelvin SW artifacts
-kelvin_clean:
+kelvin_sw_clean:
rm -rf "$(KELVIN_SW_OUT_DIR)"
cd "$(KELVIN_SW_SRC_DIR)" && bazel clean --expunge
@@ -42,6 +54,13 @@
cd "$(KELVIN_SIM_SRC_DIR)/bazel-bin" && \
cp -f sim/kelvin_sim "$(KELVIN_SIM_OUT_DIR)"
+## Clean Kelvin ISS
+#
+# Clean the Kelvin ISS
+kelvin_sim_clean:
+ cd "$(KELVIN_SIM_SRC_DIR)" && \
+ bazel clean --expunge
+ rm -rf $(KELVIN_SIM_OUT_DIR)
-PHONY:: kelvin_sw kelvin_clean
-PHONY:: kelvin_sim
+PHONY:: kelvin_sw kelvin_sw_clean kelvin_sw_test
+PHONY:: kelvin_sim kelvin_sim_clean
diff --git a/platforms/shodan/kelvin.mk b/platforms/shodan/kelvin.mk
index 61c2399..f5dc1be 100644
--- a/platforms/shodan/kelvin.mk
+++ b/platforms/shodan/kelvin.mk
@@ -3,6 +3,7 @@
KELVIN_SW_SRC_DIR := $(ROOTDIR)/sw/kelvin
KELVIN_SW_OUT_DIR := $(OUT)/kelvin/sw
KELVIN_SW_BAZEL_OUT_DIR := $(KELVIN_SW_OUT_DIR)/bazel_out
+KELVIN_SW_TESTLOG_DIR := $(KELVIN_SW_OUT_DIR)/bazel_testlog
KELVIN_SIM_SRC_DIR := $(ROOTDIR)/sim/kelvin
KELVIN_SIM_OUT_DIR := $(OUT)/kelvin/sim
@@ -12,6 +13,9 @@
mkdir -p "$(KELVIN_SW_OUT_DIR)"
mkdir -p "$(KELVIN_SW_BAZEL_OUT_DIR)"
+$(KELVIN_SW_TESTLOG_DIR):
+ mkdir -p "$(KELVIN_SW_TESTLOG_DIR)"
+
## Build Kelvin SW artifacts
#
# Some of the artifacts are built with bazel, and need to be copied to out/
@@ -24,8 +28,16 @@
-wholename "*ST-*/*.bin" \) \
-exec cp -f {} "$(KELVIN_SW_BAZEL_OUT_DIR)/" \;
+## Test Kelvin SW artifacts
+#
+# Test Kelvin SW artifacts with kelvin ISS simulation
+kelvin_sw_test: kelvin_sim | $(KELVIN_SW_TESTLOG_DIR)
+ cd "$(KELVIN_SW_SRC_DIR)"; \
+ bazel test --test_env=ROOTDIR=$(ROOTDIR) //... ; \
+ cp -rf bazel-testlogs/tests "$(KELVIN_SW_TESTLOG_DIR)"
+
## Clean Kelvin SW artifacts
-kelvin_clean:
+kelvin_sw_clean:
rm -rf "$(KELVIN_SW_OUT_DIR)"
cd "$(KELVIN_SW_SRC_DIR)" && bazel clean --expunge
@@ -42,6 +54,13 @@
cd "$(KELVIN_SIM_SRC_DIR)/bazel-bin" && \
cp -f sim/kelvin_sim "$(KELVIN_SIM_OUT_DIR)"
+## Clean Kelvin ISS
+#
+# Clean the Kelvin ISS
+kelvin_sim_clean:
+ cd "$(KELVIN_SIM_SRC_DIR)" && \
+ bazel clean --expunge
+ rm -rf $(KELVIN_SIM_OUT_DIR)
-PHONY:: kelvin_sw kelvin_clean
-PHONY:: kelvin_sim
+PHONY:: kelvin_sw kelvin_sw_clean kelvin_sw_test
+PHONY:: kelvin_sim kelvin_sim_clean