From f2df40f58bbaa4193f8eba2ec87d12bfc0c36066 Mon Sep 17 00:00:00 2001 From: Emery Hemingway Date: Thu, 29 Nov 2018 11:11:49 +0100 Subject: [PATCH] Add simple Solo5 tests to depot autopilot Add the following Solo5 tests to Autopilot: hello, fpu, globals, quiet, blk. The remaining tests require a Rtc service or IP routing. Ref #3027 --- repos/gems/run/depot_autopilot.run | 2 + repos/libports/lib/import/import-solo5.mk | 6 +- repos/libports/lib/mk/solo5.mk | 12 ++-- repos/libports/recipes/api/solo5/content.mk | 12 ++-- repos/libports/recipes/pkg/test-solo5/README | 1 + .../libports/recipes/pkg/test-solo5/archives | 6 ++ repos/libports/recipes/pkg/test-solo5/hash | 1 + repos/libports/recipes/pkg/test-solo5/runtime | 68 +++++++++++++++++++ repos/libports/recipes/src/solo5/content.mk | 3 +- repos/libports/recipes/src/solo5/used_apis | 1 + .../recipes/src/test-solo5/content.mk | 19 ++++++ repos/libports/recipes/src/test-solo5/hash | 1 + .../libports/recipes/src/test-solo5/used_apis | 2 + 13 files changed, 119 insertions(+), 15 deletions(-) create mode 100644 repos/libports/recipes/pkg/test-solo5/README create mode 100644 repos/libports/recipes/pkg/test-solo5/archives create mode 100644 repos/libports/recipes/pkg/test-solo5/hash create mode 100644 repos/libports/recipes/pkg/test-solo5/runtime create mode 100644 repos/libports/recipes/src/test-solo5/content.mk create mode 100644 repos/libports/recipes/src/test-solo5/hash create mode 100644 repos/libports/recipes/src/test-solo5/used_apis diff --git a/repos/gems/run/depot_autopilot.run b/repos/gems/run/depot_autopilot.run index fffa6628e..742a8b483 100644 --- a/repos/gems/run/depot_autopilot.run +++ b/repos/gems/run/depot_autopilot.run @@ -91,6 +91,7 @@ set avail_test_pkgs { test-sequence test-signal test-slab + test-solo5 test-stdcxx test-synced_interface test-tcp_bulk_lwip @@ -144,6 +145,7 @@ set skip_test_pkg(test-rm_fault_no_nox) [expr [have_spec linux] || !$skip_test_p set skip_test_pkg(test-lx_block) [expr ![have_spec linux]] set skip_test_pkg(test-tcp_bulk_lwip) [expr ![have_spec x86]] set skip_test_pkg(test-tcp_bulk_lxip) [expr ![have_spec x86]] +set skip_test_pkg(test-solo5) [expr ![have_spec x86_64]] # # FIXME diff --git a/repos/libports/lib/import/import-solo5.mk b/repos/libports/lib/import/import-solo5.mk index ca8264494..7c45aaf1c 100644 --- a/repos/libports/lib/import/import-solo5.mk +++ b/repos/libports/lib/import/import-solo5.mk @@ -1,4 +1,4 @@ -SOLO5_PORT_DIR := $(call select_from_ports,solo5) +REQUIRES += 64bit -INC_DIR += $(SOLO5_PORT_DIR)/include/solo5 -INC_DIR += $(call select_from_repositories,/include/solo5) +INC_DIR += $(call select_from_repositories,include/solo5) +INC_DIR += $(call select_from_ports,solo5)/include/solo5 diff --git a/repos/libports/lib/mk/solo5.mk b/repos/libports/lib/mk/solo5.mk index 43dc0cd6e..1b0648c57 100644 --- a/repos/libports/lib/mk/solo5.mk +++ b/repos/libports/lib/mk/solo5.mk @@ -2,13 +2,15 @@ REQUIRES += 64bit SHARED_LIB = yes -include $(REP_DIR)/lib/import/import-solo5.mk - -INC_DIR += $(SOLO5_PORT_DIR)/src/lib/solo5/bindings -INC_DIR += $(REP_DIR)/src/lib/solo5 - CC_OPT += -D__SOLO5_BINDINGS__ -Drestrict=__restrict__ SRC_CC = bindings.cc +SOLO5_PORT_DIR := $(call select_from_ports,solo5) + +INC_DIR += $(SOLO5_PORT_DIR)/src/lib/solo5/bindings +INC_DIR += $(SOLO5_PORT_DIR)/include/solo5 +INC_DIR += $(REP_DIR)/include/solo5 + vpath %.cc $(SOLO5_PORT_DIR)/src/lib/solo5/bindings/genode +vpath %.cc $(REP_DIR)/src/lib/solo5/bindings/genode diff --git a/repos/libports/recipes/api/solo5/content.mk b/repos/libports/recipes/api/solo5/content.mk index 9ab4bcfb5..e0161a925 100644 --- a/repos/libports/recipes/api/solo5/content.mk +++ b/repos/libports/recipes/api/solo5/content.mk @@ -1,13 +1,15 @@ -content: include lib/symbols/solo5 LICENSE +MIRROR_FROM_REP_DIR = lib/import/import-solo5.mk lib/symbols/solo5 + +content: $(MIRROR_FROM_REP_DIR) include/solo5 LICENSE PORT_DIR := $(call port_dir,$(REP_DIR)/ports/solo5)/src/lib/solo5 -include: +include/solo5: mkdir -p $@ - cp -r $(PORT_DIR)/include $@ - cp -r $(REP_DIR)/include $@ + cp -r $(PORT_DIR)/include/solo5/* $@ + cp -r $(REP_DIR)/include/solo5/* $@ -lib/symbols/solo5: +$(MIRROR_FROM_REP_DIR): $(mirror_from_rep_dir) LICENSE: diff --git a/repos/libports/recipes/pkg/test-solo5/README b/repos/libports/recipes/pkg/test-solo5/README new file mode 100644 index 000000000..e14cb9c5f --- /dev/null +++ b/repos/libports/recipes/pkg/test-solo5/README @@ -0,0 +1 @@ +Test of the Solo5 unikernel middleware. diff --git a/repos/libports/recipes/pkg/test-solo5/archives b/repos/libports/recipes/pkg/test-solo5/archives new file mode 100644 index 000000000..2343187e5 --- /dev/null +++ b/repos/libports/recipes/pkg/test-solo5/archives @@ -0,0 +1,6 @@ +_/src/init +_/src/nic_loopback +_/src/ram_blk +_/src/sequence +_/src/solo5 +_/src/test-solo5 diff --git a/repos/libports/recipes/pkg/test-solo5/hash b/repos/libports/recipes/pkg/test-solo5/hash new file mode 100644 index 000000000..39cdd0ded --- /dev/null +++ b/repos/libports/recipes/pkg/test-solo5/hash @@ -0,0 +1 @@ +- diff --git a/repos/libports/recipes/pkg/test-solo5/runtime b/repos/libports/recipes/pkg/test-solo5/runtime new file mode 100644 index 000000000..bb9d56ac9 --- /dev/null +++ b/repos/libports/recipes/pkg/test-solo5/runtime @@ -0,0 +1,68 @@ + + + + + + [init] child "test" exited with exit value 0 + + Error: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/repos/libports/recipes/src/solo5/content.mk b/repos/libports/recipes/src/solo5/content.mk index 70db88ed3..f80fed7d3 100644 --- a/repos/libports/recipes/src/solo5/content.mk +++ b/repos/libports/recipes/src/solo5/content.mk @@ -11,9 +11,8 @@ content: $(SRC_DIR) $(MIRROR_FROM_REP_DIR) $(SRC_DIR): mkdir -p $@ - cp -rH $(REP_DIR)/$@/* $@/ cp -r $(PORT_DIR_SOLO5)/$@/* $@/ - cp -r $(PORT_DIR_SOLO5)/include/solo5/solo5.h $@/ + cp -r $(PORT_DIR_SOLO5)/include/solo5/* $@/bindings cp $(PORT_DIR_SOLO5)/$@/LICENSE . echo 'LIBS=solo5' > $@/target.mk diff --git a/repos/libports/recipes/src/solo5/used_apis b/repos/libports/recipes/src/solo5/used_apis index b14db96ac..f26a4f019 100644 --- a/repos/libports/recipes/src/solo5/used_apis +++ b/repos/libports/recipes/src/solo5/used_apis @@ -4,3 +4,4 @@ block_session nic_session rtc_session timer_session +solo5 diff --git a/repos/libports/recipes/src/test-solo5/content.mk b/repos/libports/recipes/src/test-solo5/content.mk new file mode 100644 index 000000000..f2772bfc1 --- /dev/null +++ b/repos/libports/recipes/src/test-solo5/content.mk @@ -0,0 +1,19 @@ +MIRROR_FROM_REP_DIR := src/test/solo5 + +PORT_DIR := $(call port_dir,$(REP_DIR)/ports/solo5) + +content: $(MIRROR_FROM_REP_DIR) src/lib/solo5/tests src/lib/solo5/bindings LICENSE + +src/lib/solo5/bindings: $(PORT_DIR) + mkdir -p $@ + cp $(PORT_DIR)/$@/*.c $@ + +src/lib/solo5/tests: $(PORT_DIR) + mkdir -p $@ + cp -r $(PORT_DIR)/$@/test_* $@ + +$(MIRROR_FROM_REP_DIR): + $(mirror_from_rep_dir) + +LICENSE: + cp $(PORT_DIR)/src/lib/solo5/LICENSE $@ diff --git a/repos/libports/recipes/src/test-solo5/hash b/repos/libports/recipes/src/test-solo5/hash new file mode 100644 index 000000000..39cdd0ded --- /dev/null +++ b/repos/libports/recipes/src/test-solo5/hash @@ -0,0 +1 @@ +- diff --git a/repos/libports/recipes/src/test-solo5/used_apis b/repos/libports/recipes/src/test-solo5/used_apis new file mode 100644 index 000000000..e134d1f2b --- /dev/null +++ b/repos/libports/recipes/src/test-solo5/used_apis @@ -0,0 +1,2 @@ +base +solo5