Revert "Move test-features activation to Cargo.toml"

This reverts commit 0b449706f3.

Also moves the feature addition before the if/else
pull/156/head
Andre Richter 2 years ago
parent e9a3c4b489
commit 353d92b1df
No known key found for this signature in database
GPG Key ID: 2116C1AB102F615E

@ -16,7 +16,6 @@ name = "mingo"
version = "0.12.0"
dependencies = [
"cortex-a",
"mingo",
"qemu-exit",
"test-macros",
"test-types",

@ -35,13 +35,6 @@ cortex-a = { version = "7.x.x" }
[dev-dependencies]
test-macros = { path = "test-macros" }
# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
# This allows building the library part of the kernel with specialized code for testing.
#
#
# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
mingo = { path = ".", features = ["test_build"] }
# Unit tests are done in the library part of the kernel.
[lib]
name = "libkernel"

@ -277,6 +277,8 @@ gdb gdb-opt0: $(KERNEL_ELF)
##--------------------------------------------------------------------------------------------------
.PHONY: test test_boot test_unit test_integration
test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
test_boot test_unit test_integration test:

@ -324,7 +324,7 @@ pub fn qemu_exit_success() -> ! {
[Click here] in case you are interested in the implementation. Note that for the functions to work,
the `-semihosting` flag must be added to the `QEMU` invocation.
You might have also noted the `#[cfg(feature = "test_build")]`. In `Cargo.toml`, we ensure that
You might have also noted the `#[cfg(feature = "test_build")]`. In the `Makefile`, we ensure that
this feature is only enabled when `cargo test` runs. This way, it is ensured that testing-specific
code is conditionally compiled only for testing.
@ -417,7 +417,7 @@ endef
test_unit:
$(call color_header, "Compiling unit test(s) - $(BSP)")
$(call test_prepare)
@RUSTFLAGS="$(RUSTFLAGS_PEDANTIC)" $(TEST_CMD) --lib
RUSTFLAGS="$(RUSTFLAGS_PEDANTIC)" $(TEST_CMD) --lib
```
It first does the standard `objcopy` step to strip the `ELF` down to a raw binary. Just like in all
@ -910,7 +910,7 @@ diff -uNr 11_exceptions_part1_groundwork/Cargo.toml 12_integrated_testing/Cargo.
authors = ["Andre Richter <andre.o.richter@gmail.com>"]
edition = "2021"
@@ -11,20 +11,57 @@
@@ -11,20 +11,50 @@
default = []
bsp_rpi3 = ["tock-registers"]
bsp_rpi4 = ["tock-registers"]
@ -942,13 +942,6 @@ diff -uNr 11_exceptions_part1_groundwork/Cargo.toml 12_integrated_testing/Cargo.
+[dev-dependencies]
+test-macros = { path = "test-macros" }
+
+# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
+# This allows building the library part of the kernel with specialized code for testing.
+#
+#
+# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
+mingo = { path = ".", features = ["test_build"] }
+
+# Unit tests are done in the library part of the kernel.
+[lib]
+name = "libkernel"
@ -1014,12 +1007,14 @@ diff -uNr 11_exceptions_part1_groundwork/Makefile 12_integrated_testing/Makefile
OBJCOPY_CMD = rust-objcopy \
--strip-all \
-O binary
@@ -265,11 +275,11 @@
@@ -265,11 +275,13 @@
##--------------------------------------------------------------------------------------------------
## Testing targets
##--------------------------------------------------------------------------------------------------
-.PHONY: test test_boot
+.PHONY: test test_boot test_unit test_integration
+
+test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
@ -1028,7 +1023,7 @@ diff -uNr 11_exceptions_part1_groundwork/Makefile 12_integrated_testing/Makefile
$(call color_header, "$(QEMU_MISSING_STRING)")
else # QEMU is supported.
@@ -281,6 +291,43 @@
@@ -281,6 +293,43 @@
$(call color_header, "Boot test - $(BSP)")
@$(DOCKER_TEST) $(EXEC_TEST_DISPATCH) $(EXEC_QEMU) $(QEMU_RELEASE_ARGS) -kernel $(KERNEL_BIN)

@ -16,7 +16,6 @@ name = "mingo"
version = "0.13.0"
dependencies = [
"cortex-a",
"mingo",
"qemu-exit",
"test-macros",
"test-types",

@ -35,13 +35,6 @@ cortex-a = { version = "7.x.x" }
[dev-dependencies]
test-macros = { path = "test-macros" }
# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
# This allows building the library part of the kernel with specialized code for testing.
#
#
# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
mingo = { path = ".", features = ["test_build"] }
# Unit tests are done in the library part of the kernel.
[lib]
name = "libkernel"

@ -277,6 +277,8 @@ gdb gdb-opt0: $(KERNEL_ELF)
##--------------------------------------------------------------------------------------------------
.PHONY: test test_boot test_unit test_integration
test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
test_boot test_unit test_integration test:

@ -16,7 +16,6 @@ name = "mingo"
version = "0.14.0"
dependencies = [
"cortex-a",
"mingo",
"qemu-exit",
"test-macros",
"test-types",

@ -35,13 +35,6 @@ cortex-a = { version = "7.x.x" }
[dev-dependencies]
test-macros = { path = "test-macros" }
# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
# This allows building the library part of the kernel with specialized code for testing.
#
#
# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
mingo = { path = ".", features = ["test_build"] }
# Unit tests are done in the library part of the kernel.
[lib]
name = "libkernel"

@ -277,6 +277,8 @@ gdb gdb-opt0: $(KERNEL_ELF)
##--------------------------------------------------------------------------------------------------
.PHONY: test test_boot test_unit test_integration
test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
test_boot test_unit test_integration test:

@ -16,7 +16,6 @@ name = "mingo"
version = "0.15.0"
dependencies = [
"cortex-a",
"mingo",
"qemu-exit",
"test-macros",
"test-types",

@ -35,13 +35,6 @@ cortex-a = { version = "7.x.x" }
[dev-dependencies]
test-macros = { path = "test-macros" }
# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
# This allows building the library part of the kernel with specialized code for testing.
#
#
# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
mingo = { path = ".", features = ["test_build"] }
# Unit tests are done in the library part of the kernel.
[lib]
name = "libkernel"

@ -293,6 +293,8 @@ gdb gdb-opt0: $(KERNEL_ELF)
##--------------------------------------------------------------------------------------------------
.PHONY: test test_boot test_unit test_integration
test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
test_boot test_unit test_integration test:

@ -869,7 +869,7 @@ diff -uNr 14_virtual_mem_part2_mmio_remap/Makefile 15_virtual_mem_part3_precompu
$(call color_progress_prefix, "Name")
@echo $(KERNEL_BIN)
$(call color_progress_prefix, "Size")
@@ -300,6 +316,7 @@
@@ -302,6 +318,7 @@
TEST_ELF=$$(echo $$1 | sed -e 's/.*target/target/g')
TEST_BINARY=$$(echo $$1.img | sed -e 's/.*target/target/g')

@ -16,7 +16,6 @@ name = "mingo"
version = "0.16.0"
dependencies = [
"cortex-a",
"mingo",
"qemu-exit",
"test-macros",
"test-types",

@ -35,13 +35,6 @@ cortex-a = { version = "7.x.x" }
[dev-dependencies]
test-macros = { path = "test-macros" }
# The following line is a workaround, as suggested in [1], to enable a feature in test-builds only.
# This allows building the library part of the kernel with specialized code for testing.
#
#
# [1] https://github.com/rust-lang/cargo/issues/2911#issuecomment-749580481
mingo = { path = ".", features = ["test_build"] }
# Unit tests are done in the library part of the kernel.
[lib]
name = "libkernel"

@ -293,6 +293,8 @@ gdb gdb-opt0: $(KERNEL_ELF)
##--------------------------------------------------------------------------------------------------
.PHONY: test test_boot test_unit test_integration
test_unit test_integration: FEATURES += --features test_build
ifeq ($(QEMU_MACHINE_TYPE),) # QEMU is not supported for the board.
test_boot test_unit test_integration test:

Loading…
Cancel
Save