diff --git a/README.md b/README.md
index 2c3bb61f91..da86c42abe 100755
--- a/README.md
+++ b/README.md
@@ -81,30 +81,32 @@ It's not always practical to rebuild the whole kernel during development. You ca
$ nix-shell ./develop.nix
```
-From here, you will be put in a shell suited for development. If your editor has LSP support with clangd (e.g. neovim, emacs, VSCode, Zed), you will get proper goto-declarations and warnings. You can quickly rebuild the kernel library from here with `cmake -B build && (cd build; make)`, with all build dependencies handled by the shell. You can also build and run a unikernel from the shell with this oneliner: `(cd ./example && cmake -B build && (cd build && make) && boot ./build/hello_includeos.elf.bin)` after building IncludeOS. It might be convenient to use one terminal (or tab) for your editor, a second for building IncludeOS, and a third for building a unikernel.
+From here, you will be put in a shell suited for development. If your editor has LSP support with clangd (e.g. neovim, emacs, VSCode, Zed), you will get proper goto-declarations and warnings. You can quickly rebuild the kernel library from here with `cmake -B build && cmake --build build`, with all build dependencies handled by the shell.
+
+You can also build and run a unikernel from the shell with this oneliner: `nix-build unikernel.nix && boot ./result/hello_includeos.elf.bin)` after building IncludeOS. It might be convenient to use one terminal (or tab) for your editor, a second for building IncludeOS, and a third for building a unikernel.
In summary:
```bash
~/repos/IncludeOS $ nix-shell ./develop.nix
-[nix-shell:~/repos/IncludeOS]$ cmake -B build && (cd build; make) # rebuilds IncludeOS
-[nix-shell:~/repos/IncludeOS]$ cd example
-[nix-shell:~/repos/IncludeOS/example]$ cmake -B build && (cd build; make) # rebuilds a bootable unikernel
-[nix-shell:~/repos/IncludeOS/example]$ boot ./build/hello_includeos.elf.bin # runs the unikernel image with qemu through vmrunner
+[nix-shell:~/repos/IncludeOS]$ cmake -B build && cmake --build build # rebuilds IncludeOS
+[nix-shell:~/repos/IncludeOS]$ nix-build ./unikernel.nix # rebuilds the example unikernel
+[nix-shell:~/repos/IncludeOS]$ boot ./result/hello_includeos.elf.bin # runs the unikernel image with qemu through vmrunner
```
Alternatively, you may want to use `nix-shell` by itself (or nested inside the development shell), which handles both building the unikernel found under `./example/` and puts you in a convenient shell for testing out a unikernel.
```bash
-~/repos/IncludeOS $ nix-shell --run 'boot hello_includeos.elf.bin'
+# both these require vmrunner's booth on path
+~/repos/IncludeOS $ nix-shell unikernel.nix --run 'boot hello_includeos.elf.bin'
# or
-~/repos/IncludeOS $ nix-shell # updating IncludeOS after entering this shell won't rebuild the os library automatically!
-[nix-shell:~/repos/IncludeOS]$ boot hello_includeos.elf.bin
+~/repos/IncludeOS $ nix-shell unikernel.nix
+[nix-shell:~/repos/IncludeOS/result]$ boot hello_includeos.elf.bin
```
If you want to build a different unikernel than the example, this can be specified with the `--argstr unikernel [path]` parameter. This is primarily used for integration tests. For example, to build and run the stacktrace-test:
```bash
-$ nix-shell --argstr unikernel ./test/kernel/integration/stacktrace
+$ nix-build unikernel.nix --argstr unikernel ./test/integration/kernel/stacktrace --doCheck true
[...]
nix$ ls -l kernel*
kernel_stacktrace
@@ -122,14 +124,14 @@ We reached the end.
To build and run the test VM as a single command:
```bash
-$ nix-shell --argstr unikernel ./test/kernel/integration/stacktrace --run ./test.py
+$ nix-build unikernel.nix --argstr unikernel ./test/integration/kernel/stacktrace --doCheck true
```
### Running tests
-You can run all the integration tests using the script `./test.sh`. The tests will run locally in the nix environment. We recommend manually verifying that all the tests pass locally before submitting a new PR to IncludeOS to save review time.
+You can run all the integration tests using the script `./test/test.sh`. The tests will run locally in the nix environment. We recommend manually verifying that all the tests pass locally before submitting a new PR to IncludeOS to save review time.
-Individual tests can be run with `nix-shell` directly. See `test.sh` for more details.
+Most individual tests can be run with `nix-build` directly, while some require `nix-shell` due to sandboxing constraints. See `./test/test.sh` for more details.
## Contributing to IncludeOS
diff --git a/etc/set_traps.sh b/etc/set_traps.sh
deleted file mode 100644
index 5dc1efe2c0..0000000000
--- a/etc/set_traps.sh
+++ /dev/null
@@ -1,7 +0,0 @@
-set -e # Exit immediately on error (we're trapping the exit signal)
-trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG
-trap 'echo -e "\nINSTALL FAILED ON COMMAND: $previous_command\n"' EXIT
-
-
-# NOTE: script should end with
-# trap - EXIT
diff --git a/etc/debug/service.gdb b/misc/debug/service.gdb
similarity index 100%
rename from etc/debug/service.gdb
rename to misc/debug/service.gdb
diff --git a/etc/linux/lxp-callgraph b/misc/linux/lxp-callgraph
similarity index 100%
rename from etc/linux/lxp-callgraph
rename to misc/linux/lxp-callgraph
diff --git a/etc/linux/lxp-debug b/misc/linux/lxp-debug
similarity index 100%
rename from etc/linux/lxp-debug
rename to misc/linux/lxp-debug
diff --git a/etc/linux/lxp-gprof b/misc/linux/lxp-gprof
similarity index 100%
rename from etc/linux/lxp-gprof
rename to misc/linux/lxp-gprof
diff --git a/etc/linux/lxp-pgo b/misc/linux/lxp-pgo
similarity index 100%
rename from etc/linux/lxp-pgo
rename to misc/linux/lxp-pgo
diff --git a/etc/linux/lxp-run b/misc/linux/lxp-run
similarity index 100%
rename from etc/linux/lxp-run
rename to misc/linux/lxp-run
diff --git a/etc/logo.png b/misc/logo.png
similarity index 100%
rename from etc/logo.png
rename to misc/logo.png
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index b26c2a6aa9..16b072d3ac 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -1,4 +1,7 @@
cmake_minimum_required(VERSION 3.31.6)
+#
+# builds unit tests
+#
project(unittests C CXX)
set(CMAKE_CXX_STANDARD 20)
@@ -48,115 +51,119 @@ endif()
set(CMAKE_CXX_FLAGS "-g -O0 -std=c++20 -Wall -Wextra -Wno-frame-address -Wno-unused-function -Wno-int-to-pointer-cast -D__id_t_defined -DUNITTESTS -DURI_THROW_ON_ERROR ${NO_INFO} ${NO_DEBUG} -DGSL_THROW_ON_CONTRACT_VIOLATION -Dlest_FEATURE_AUTO_REGISTER=1 -DHAVE_LEST_MAIN -DPAGE_SIZE=4096")
-set(TEST ${CMAKE_CURRENT_SOURCE_DIR})
+set(TESTS_ROOT ${CMAKE_CURRENT_SOURCE_DIR})
+set(TESTS_DEPS ${TESTS_ROOT}/misc)
+set(UNIT_TESTS ${TESTS_ROOT}/unit)
+set(INCLUDEOS ${TESTS_ROOT}/..)
include_directories(
- ${TEST}/lest_util
- ${TEST}/../api
- ${TEST}/../src/include
+ ${TESTS_DEPS}/lest_util
+ ${INCLUDEOS}/api
+ ${INCLUDEOS}/src/include
#TODO move to the right place
- ${TEST}/../lib/LiveUpdate/include
+ ${INCLUDEOS}/lib/LiveUpdate/include
)
set(LEST_UTIL
- ${TEST}/lest_util/lestmain.cxx
- ${TEST}/lest_util/os_mock.cpp
- ${TEST}/lest_util/mock_fs.cpp
- ${TEST}/lest_util/random.cpp
+ ${TESTS_DEPS}/lest_util/lestmain.cxx
+ ${TESTS_DEPS}/lest_util/os_mock.cpp
+ ${TESTS_DEPS}/lest_util/mock_fs.cpp
+ ${TESTS_DEPS}/lest_util/random.cpp
)
+# TODO: maybe just use `*.cpp *.hpp` globs here?
set(TEST_SOURCES
- ${TEST}/fs/unit/memdisk_test.cpp
- ${TEST}/fs/unit/path_test.cpp
- ${TEST}/fs/unit/vfs_test.cpp
- ${TEST}/fs/unit/unit_fs.cpp
- ${TEST}/fs/unit/unit_fat.cpp
- #${TEST}/hw/unit/cpu_test.cpp
- ${TEST}/hw/unit/mac_addr_test.cpp
- ${TEST}/hw/unit/usernet.cpp
- ${TEST}/hw/unit/virtio_queue.cpp
- ${TEST}/kernel/unit/arch.cpp
- ${TEST}/kernel/unit/block.cpp
- ${TEST}/kernel/unit/cpuid.cpp
- ${TEST}/kernel/unit/memmap_test.cpp
- ${TEST}/kernel/unit/test_memory.cpp
- ${TEST}/kernel/unit/os_test.cpp
- ${TEST}/kernel/unit/rng.cpp
- ${TEST}/kernel/unit/service_stub_test.cpp
- ${TEST}/kernel/unit/test_hal.cpp
- ${TEST}/kernel/unit/unit_events.cpp
- ${TEST}/kernel/unit/unit_liveupdate.cpp
- ${TEST}/kernel/unit/unit_timers.cpp
- ${TEST}/kernel/unit/x86_paging.cpp
- ${TEST}/kernel/unit/spinlocks.cpp
- ${TEST}/net/unit/addr_test.cpp
- ${TEST}/net/unit/bufstore.cpp
- ${TEST}/net/unit/checksum.cpp
- ${TEST}/net/unit/cidr.cpp
- ${TEST}/net/unit/conntrack_test.cpp
- ${TEST}/net/unit/cookie_test.cpp
- ${TEST}/net/unit/dhcp.cpp
- ${TEST}/net/unit/dhcp_message_test.cpp
- ${TEST}/net/unit/error.cpp
- ${TEST}/net/unit/http_header_test.cpp
- ${TEST}/net/unit/http_status_codes_test.cpp
- ${TEST}/net/unit/http_method_test.cpp
- ${TEST}/net/unit/http_mime_types_test.cpp
-# ${TEST}/net/unit/http_request_test.cpp
-# ${TEST}/net/unit/http_response_test.cpp
- ${TEST}/net/unit/http_time_test.cpp
- ${TEST}/net/unit/http_version_test.cpp
- ${TEST}/net/unit/interfaces_test.cpp
- ${TEST}/net/unit/ip4_addr.cpp
- ${TEST}/net/unit/ip4.cpp
- ${TEST}/net/unit/ip4_packet_test.cpp
- ${TEST}/net/unit/ip6.cpp
- ${TEST}/net/unit/ip6_addr.cpp
- ${TEST}/net/unit/ip6_addr_list_test.cpp
- ${TEST}/net/unit/ip6_packet_test.cpp
- ${TEST}/net/unit/nat_test.cpp
- ${TEST}/net/unit/napt_test.cpp
- ${TEST}/net/unit/packets.cpp
- ${TEST}/net/unit/path_mtu_discovery.cpp
- ${TEST}/net/unit/port_util_test.cpp
- ${TEST}/net/unit/router_test.cpp
- ${TEST}/net/unit/socket.cpp
- ${TEST}/net/unit/stateful_addr_test.cpp
- ${TEST}/net/unit/tcp_benchmark.cpp
- ${TEST}/net/unit/tcp_packet_test.cpp
- ${TEST}/net/unit/tcp_read_buffer_test.cpp
- ${TEST}/net/unit/tcp_read_request_test.cpp
- ${TEST}/net/unit/tcp_write_queue.cpp
-# ${TEST}/net/unit/websocket.cpp
- ${TEST}/posix/unit/fd_map_test.cpp
- ${TEST}/posix/unit/inet_test.cpp
- ${TEST}/posix/unit/unit_fd.cpp
- ${TEST}/util/unit/base64.cpp
- ${TEST}/util/unit/bitops.cpp
- ${TEST}/util/unit/buddy_alloc_test.cpp
- ${TEST}/util/unit/config.cpp
- ${TEST}/util/unit/crc32.cpp
- ${TEST}/util/unit/delegate.cpp
- ${TEST}/util/unit/fixed_list_alloc_test.cpp
- ${TEST}/util/unit/fixed_queue.cpp
- ${TEST}/util/unit/fixed_vector.cpp
- ${TEST}/util/unit/isotime.cpp
- ${TEST}/util/unit/logger_test.cpp
- ${TEST}/util/unit/membitmap.cpp
- #${TEST}/util/unit/path_to_regex_no_options.cpp
- ${TEST}/util/unit/path_to_regex_parse.cpp
- ${TEST}/util/unit/path_to_regex_options.cpp
- ${TEST}/util/unit/percent_encoding_test.cpp
- ${TEST}/util/unit/pmr_alloc_test.cpp
- ${TEST}/util/unit/ringbuffer.cpp
- ${TEST}/util/unit/sha1.cpp
- ${TEST}/util/unit/statman.cpp
- ${TEST}/util/unit/syslogd_test.cpp
- ${TEST}/util/unit/syslog_facility_test.cpp
-# ${TEST}/util/unit/uri_test.cpp
- ${TEST}/util/unit/lstack/test_lstack_nodes.cpp
- ${TEST}/util/unit/lstack/test_lstack_merging.cpp
- ${TEST}/util/unit/lstack/test_lstack_nomerge.cpp
+ ${UNIT_TESTS}/fs/memdisk_test.cpp
+ ${UNIT_TESTS}/fs/path_test.cpp
+ ${UNIT_TESTS}/fs/vfs_test.cpp
+ ${UNIT_TESTS}/fs/unit_fs.cpp
+ ${UNIT_TESTS}/fs/unit_fat.cpp
+# ${UNIT_TESTS}/hw/cpu_test.cpp
+ ${UNIT_TESTS}/hw/mac_addr_test.cpp
+ ${UNIT_TESTS}/hw/usernet.cpp
+ ${UNIT_TESTS}/hw/virtio_queue.cpp
+ ${UNIT_TESTS}/kernel/arch.cpp
+ ${UNIT_TESTS}/kernel/blocking.cpp
+ ${UNIT_TESTS}/kernel/cpuid.cpp
+ ${UNIT_TESTS}/memory/mapping/memmap_test.cpp
+ ${UNIT_TESTS}/memory/generic/test_memory.cpp
+ ${UNIT_TESTS}/kernel/os_test.cpp
+ ${UNIT_TESTS}/kernel/rng.cpp
+ ${UNIT_TESTS}/kernel/service_stub_test.cpp
+ ${UNIT_TESTS}/kernel/test_hal.cpp
+ ${UNIT_TESTS}/kernel/unit_events.cpp
+ ${UNIT_TESTS}/kernel/unit_timers.cpp
+ ${UNIT_TESTS}/memory/paging/unit_liveupdate.cpp
+ ${UNIT_TESTS}/memory/paging/x86_paging.cpp
+ ${UNIT_TESTS}/kernel/spinlocks.cpp
+ ${UNIT_TESTS}/net/addr_test.cpp
+ ${UNIT_TESTS}/net/bufstore.cpp
+ ${UNIT_TESTS}/net/checksum.cpp
+ ${UNIT_TESTS}/net/cidr.cpp
+ ${UNIT_TESTS}/net/conntrack_test.cpp
+ ${UNIT_TESTS}/net/cookie_test.cpp
+ ${UNIT_TESTS}/net/dhcp.cpp
+ ${UNIT_TESTS}/net/dhcp_message_test.cpp
+ ${UNIT_TESTS}/net/error.cpp
+ ${UNIT_TESTS}/net/http_header_test.cpp
+ ${UNIT_TESTS}/net/http_status_codes_test.cpp
+ ${UNIT_TESTS}/net/http_method_test.cpp
+ ${UNIT_TESTS}/net/http_mime_types_test.cpp
+# ${UNIT_TESTS}/net/http_request_test.cpp
+# ${UNIT_TESTS}/net/http_response_test.cpp
+ ${UNIT_TESTS}/net/http_time_test.cpp
+ ${UNIT_TESTS}/net/http_version_test.cpp
+ ${UNIT_TESTS}/net/interfaces_test.cpp
+ ${UNIT_TESTS}/net/ip4_addr.cpp
+ ${UNIT_TESTS}/net/ip4.cpp
+ ${UNIT_TESTS}/net/ip4_packet_test.cpp
+ ${UNIT_TESTS}/net/ip6.cpp
+ ${UNIT_TESTS}/net/ip6_addr.cpp
+ ${UNIT_TESTS}/net/ip6_addr_list_test.cpp
+ ${UNIT_TESTS}/net/ip6_packet_test.cpp
+ ${UNIT_TESTS}/net/nat_test.cpp
+ ${UNIT_TESTS}/net/napt_test.cpp
+ ${UNIT_TESTS}/net/packets.cpp
+ ${UNIT_TESTS}/net/path_mtu_discovery.cpp
+ ${UNIT_TESTS}/net/port_util_test.cpp
+ ${UNIT_TESTS}/net/router_test.cpp
+ ${UNIT_TESTS}/net/socket.cpp
+ ${UNIT_TESTS}/net/stateful_addr_test.cpp
+ ${UNIT_TESTS}/net/tcp_benchmark.cpp
+ ${UNIT_TESTS}/net/tcp_packet_test.cpp
+ ${UNIT_TESTS}/net/tcp_read_buffer_test.cpp
+ ${UNIT_TESTS}/net/tcp_read_request_test.cpp
+ ${UNIT_TESTS}/net/tcp_write_queue.cpp
+# ${UNIT_TESTS}/net/websocket.cpp
+ ${UNIT_TESTS}/posix/fd_map_test.cpp
+ ${UNIT_TESTS}/posix/inet_test.cpp
+ ${UNIT_TESTS}/posix/unit_fd.cpp
+ ${UNIT_TESTS}/util/base64.cpp
+ ${UNIT_TESTS}/util/bitops.cpp
+ ${UNIT_TESTS}/memory/alloc/buddy_alloc_test.cpp
+ ${UNIT_TESTS}/memory/alloc/fixed_list_alloc_test.cpp
+ ${UNIT_TESTS}/memory/alloc/pmr_alloc_test.cpp
+ ${UNIT_TESTS}/memory/generic/membitmap.cpp
+ ${UNIT_TESTS}/memory/lstack/test_lstack_nodes.cpp
+ ${UNIT_TESTS}/memory/lstack/test_lstack_merging.cpp
+ ${UNIT_TESTS}/memory/lstack/test_lstack_nomerge.cpp
+ ${UNIT_TESTS}/util/config.cpp
+ ${UNIT_TESTS}/util/crc32.cpp
+ ${UNIT_TESTS}/util/delegate.cpp
+ ${UNIT_TESTS}/util/fixed_queue.cpp
+ ${UNIT_TESTS}/util/fixed_vector.cpp
+ ${UNIT_TESTS}/util/isotime.cpp
+ ${UNIT_TESTS}/util/logger_test.cpp
+# ${UNIT_TESTS}/util/path_to_regex_no_options.cpp
+ ${UNIT_TESTS}/util/path_to_regex_parse.cpp
+ ${UNIT_TESTS}/util/path_to_regex_options.cpp
+ ${UNIT_TESTS}/util/percent_encoding_test.cpp
+ ${UNIT_TESTS}/util/ringbuffer.cpp
+ ${UNIT_TESTS}/util/sha1.cpp
+ ${UNIT_TESTS}/util/statman.cpp
+ ${UNIT_TESTS}/util/syslogd_test.cpp
+ ${UNIT_TESTS}/util/syslog_facility_test.cpp
+# ${UNIT_TESTS}/util/uri_test.cpp
)
if(EXTRA_TESTS)
@@ -187,7 +194,7 @@ add_subdirectory(../src os)
add_subdirectory(../lib/LiveUpdate liveupdate)
add_library(lest_util ${LEST_UTIL})
-file(COPY memdisk.fat DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
+file(COPY ${UNIT_TESTS}/fs/memdisk.fat DESTINATION ${CMAKE_CURRENT_BINARY_DIR}) # TODO: handle special files within each unit test
find_program( VALGRIND valgrind )
@@ -255,7 +262,7 @@ if (GENERATE_SUPPORT_FILES)
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_BINARY_DIR}/test-invalid.tar
COMMAND ${CMAKE_COMMAND} -E tar czf ${CMAKE_CURRENT_BINARY_DIR}/test.tar.gz ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
COMMAND ${CMAKE_COMMAND} -E tar czf ${CMAKE_CURRENT_BINARY_DIR}/test-corrupt.gz ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt
- COMMAND bash ${TEST}/util/unit/corrupt-tar-gz.sh ${CMAKE_CURRENT_BINARY_DIR}/test.tar.gz ${CMAKE_CURRENT_BINARY_DIR}/test-corrupt.gz
+ COMMAND bash ${UNIT_TESTS}/util/corrupt-tar-gz.sh ${CMAKE_CURRENT_BINARY_DIR}/test.tar.gz ${CMAKE_CURRENT_BINARY_DIR}/test-corrupt.gz
COMMAND ${CMAKE_COMMAND} -E tar cf ${CMAKE_CURRENT_BINARY_DIR}/test-tar-gz-inside.tar ${CMAKE_CURRENT_BINARY_DIR}/test.tar.gz
)
endif()
diff --git a/test/fs/integration/fat16/CMakeLists.txt b/test/integration/fs/fat16/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/fat16/CMakeLists.txt
rename to test/integration/fs/fat16/CMakeLists.txt
diff --git a/test/fs/integration/fat16/README.md b/test/integration/fs/fat16/README.md
similarity index 100%
rename from test/fs/integration/fat16/README.md
rename to test/integration/fs/fat16/README.md
diff --git a/test/fs/integration/fat16/banana.ascii b/test/integration/fs/fat16/banana.ascii
similarity index 100%
rename from test/fs/integration/fat16/banana.ascii
rename to test/integration/fs/fat16/banana.ascii
diff --git a/test/fs/integration/fat16/disk/banana.txt b/test/integration/fs/fat16/disk/banana.txt
similarity index 100%
rename from test/fs/integration/fat16/disk/banana.txt
rename to test/integration/fs/fat16/disk/banana.txt
diff --git a/test/fs/integration/fat16/fat16.cpp b/test/integration/fs/fat16/fat16.cpp
similarity index 100%
rename from test/fs/integration/fat16/fat16.cpp
rename to test/integration/fs/fat16/fat16.cpp
diff --git a/test/fs/integration/fat16/test.py b/test/integration/fs/fat16/test.py
similarity index 100%
rename from test/fs/integration/fat16/test.py
rename to test/integration/fs/fat16/test.py
diff --git a/test/fs/integration/fat16/vm.json b/test/integration/fs/fat16/vm.json
similarity index 100%
rename from test/fs/integration/fat16/vm.json
rename to test/integration/fs/fat16/vm.json
diff --git a/test/fs/integration/fat32/CMakeLists.txt b/test/integration/fs/fat32/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/fat32/CMakeLists.txt
rename to test/integration/fs/fat32/CMakeLists.txt
diff --git a/test/fs/integration/fat32/README.md b/test/integration/fs/fat32/README.md
similarity index 100%
rename from test/fs/integration/fat32/README.md
rename to test/integration/fs/fat32/README.md
diff --git a/test/fs/integration/fat32/banana.ascii b/test/integration/fs/fat32/banana.ascii
similarity index 100%
rename from test/fs/integration/fat32/banana.ascii
rename to test/integration/fs/fat32/banana.ascii
diff --git a/test/fs/integration/fat32/banana.txt b/test/integration/fs/fat32/banana.txt
similarity index 100%
rename from test/fs/integration/fat32/banana.txt
rename to test/integration/fs/fat32/banana.txt
diff --git a/test/fs/integration/fat32/fat32.cpp b/test/integration/fs/fat32/fat32.cpp
similarity index 100%
rename from test/fs/integration/fat32/fat32.cpp
rename to test/integration/fs/fat32/fat32.cpp
diff --git a/test/fs/integration/fat32/fat32_disk.sh b/test/integration/fs/fat32/fat32_disk.sh
similarity index 100%
rename from test/fs/integration/fat32/fat32_disk.sh
rename to test/integration/fs/fat32/fat32_disk.sh
diff --git a/test/fs/integration/fat32/test.py b/test/integration/fs/fat32/test.py
similarity index 100%
rename from test/fs/integration/fat32/test.py
rename to test/integration/fs/fat32/test.py
diff --git a/test/fs/integration/fat32/vm.json b/test/integration/fs/fat32/vm.json
similarity index 100%
rename from test/fs/integration/fat32/vm.json
rename to test/integration/fs/fat32/vm.json
diff --git a/test/fs/integration/ide/CMakeLists.txt b/test/integration/fs/ide/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/ide/CMakeLists.txt
rename to test/integration/fs/ide/CMakeLists.txt
diff --git a/test/fs/integration/ide/README.md b/test/integration/fs/ide/README.md
similarity index 100%
rename from test/fs/integration/ide/README.md
rename to test/integration/fs/ide/README.md
diff --git a/test/fs/integration/ide/banana.ascii b/test/integration/fs/ide/banana.ascii
similarity index 100%
rename from test/fs/integration/ide/banana.ascii
rename to test/integration/fs/ide/banana.ascii
diff --git a/test/fs/integration/ide/banana.txt b/test/integration/fs/ide/banana.txt
similarity index 100%
rename from test/fs/integration/ide/banana.txt
rename to test/integration/fs/ide/banana.txt
diff --git a/test/fs/integration/ide/fat32_disk.sh b/test/integration/fs/ide/fat32_disk.sh
similarity index 100%
rename from test/fs/integration/ide/fat32_disk.sh
rename to test/integration/fs/ide/fat32_disk.sh
diff --git a/test/fs/integration/ide/service.cpp b/test/integration/fs/ide/service.cpp
similarity index 100%
rename from test/fs/integration/ide/service.cpp
rename to test/integration/fs/ide/service.cpp
diff --git a/test/fs/integration/ide/test.py b/test/integration/fs/ide/test.py
similarity index 100%
rename from test/fs/integration/ide/test.py
rename to test/integration/fs/ide/test.py
diff --git a/test/fs/integration/ide/vm.json b/test/integration/fs/ide/vm.json
similarity index 100%
rename from test/fs/integration/ide/vm.json
rename to test/integration/fs/ide/vm.json
diff --git a/test/fs/integration/ide_write/CMakeLists.txt b/test/integration/fs/ide_write/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/ide_write/CMakeLists.txt
rename to test/integration/fs/ide_write/CMakeLists.txt
diff --git a/test/fs/integration/ide_write/README.md b/test/integration/fs/ide_write/README.md
similarity index 100%
rename from test/fs/integration/ide_write/README.md
rename to test/integration/fs/ide_write/README.md
diff --git a/test/fs/integration/ide_write/banana.ascii b/test/integration/fs/ide_write/banana.ascii
similarity index 100%
rename from test/fs/integration/ide_write/banana.ascii
rename to test/integration/fs/ide_write/banana.ascii
diff --git a/test/fs/integration/ide_write/banana.txt b/test/integration/fs/ide_write/banana.txt
similarity index 100%
rename from test/fs/integration/ide_write/banana.txt
rename to test/integration/fs/ide_write/banana.txt
diff --git a/test/fs/integration/ide_write/fat32_disk.sh b/test/integration/fs/ide_write/fat32_disk.sh
similarity index 100%
rename from test/fs/integration/ide_write/fat32_disk.sh
rename to test/integration/fs/ide_write/fat32_disk.sh
diff --git a/test/fs/integration/ide_write/service.cpp b/test/integration/fs/ide_write/service.cpp
similarity index 100%
rename from test/fs/integration/ide_write/service.cpp
rename to test/integration/fs/ide_write/service.cpp
diff --git a/test/fs/integration/ide_write/test.py b/test/integration/fs/ide_write/test.py
similarity index 100%
rename from test/fs/integration/ide_write/test.py
rename to test/integration/fs/ide_write/test.py
diff --git a/test/fs/integration/ide_write/vm.json b/test/integration/fs/ide_write/vm.json
similarity index 100%
rename from test/fs/integration/ide_write/vm.json
rename to test/integration/fs/ide_write/vm.json
diff --git a/test/fs/integration/memdisk/CMakeLists.txt b/test/integration/fs/memdisk/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/memdisk/CMakeLists.txt
rename to test/integration/fs/memdisk/CMakeLists.txt
diff --git a/test/fs/integration/memdisk/README.md b/test/integration/fs/memdisk/README.md
similarity index 100%
rename from test/fs/integration/memdisk/README.md
rename to test/integration/fs/memdisk/README.md
diff --git a/test/fs/integration/memdisk/bigdisk.cpp b/test/integration/fs/memdisk/bigdisk.cpp
similarity index 100%
rename from test/fs/integration/memdisk/bigdisk.cpp
rename to test/integration/fs/memdisk/bigdisk.cpp
diff --git a/test/fs/integration/memdisk/bigdisk.sh b/test/integration/fs/memdisk/bigdisk.sh
similarity index 100%
rename from test/fs/integration/memdisk/bigdisk.sh
rename to test/integration/fs/memdisk/bigdisk.sh
diff --git a/test/fs/integration/memdisk/nosector.cpp b/test/integration/fs/memdisk/nosector.cpp
similarity index 100%
rename from test/fs/integration/memdisk/nosector.cpp
rename to test/integration/fs/memdisk/nosector.cpp
diff --git a/test/fs/integration/memdisk/sector0.disk b/test/integration/fs/memdisk/sector0.disk
similarity index 100%
rename from test/fs/integration/memdisk/sector0.disk
rename to test/integration/fs/memdisk/sector0.disk
diff --git a/test/fs/integration/memdisk/sector2.disk b/test/integration/fs/memdisk/sector2.disk
similarity index 100%
rename from test/fs/integration/memdisk/sector2.disk
rename to test/integration/fs/memdisk/sector2.disk
diff --git a/test/fs/integration/memdisk/test.py b/test/integration/fs/memdisk/test.py
similarity index 100%
rename from test/fs/integration/memdisk/test.py
rename to test/integration/fs/memdisk/test.py
diff --git a/test/fs/integration/memdisk/twosector.cpp b/test/integration/fs/memdisk/twosector.cpp
similarity index 100%
rename from test/fs/integration/memdisk/twosector.cpp
rename to test/integration/fs/memdisk/twosector.cpp
diff --git a/test/fs/integration/memdisk/vm.json b/test/integration/fs/memdisk/vm.json
similarity index 100%
rename from test/fs/integration/memdisk/vm.json
rename to test/integration/fs/memdisk/vm.json
diff --git a/test/fs/integration/vfs/CMakeLists.txt b/test/integration/fs/vfs/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/vfs/CMakeLists.txt
rename to test/integration/fs/vfs/CMakeLists.txt
diff --git a/test/fs/integration/vfs/README.md b/test/integration/fs/vfs/README.md
similarity index 100%
rename from test/fs/integration/vfs/README.md
rename to test/integration/fs/vfs/README.md
diff --git a/test/fs/integration/vfs/create_disk.sh b/test/integration/fs/vfs/create_disk.sh
similarity index 100%
rename from test/fs/integration/vfs/create_disk.sh
rename to test/integration/fs/vfs/create_disk.sh
diff --git a/test/fs/integration/vfs/memdisk/README.md b/test/integration/fs/vfs/memdisk/README.md
similarity index 100%
rename from test/fs/integration/vfs/memdisk/README.md
rename to test/integration/fs/vfs/memdisk/README.md
diff --git a/test/fs/integration/vfs/memdisk/users/alfred/etc/ip4/config.txt b/test/integration/fs/vfs/memdisk/users/alfred/etc/ip4/config.txt
similarity index 100%
rename from test/fs/integration/vfs/memdisk/users/alfred/etc/ip4/config.txt
rename to test/integration/fs/vfs/memdisk/users/alfred/etc/ip4/config.txt
diff --git a/test/fs/integration/vfs/memdisk/users/alfred/etc/ip6/config.txt b/test/integration/fs/vfs/memdisk/users/alfred/etc/ip6/config.txt
similarity index 100%
rename from test/fs/integration/vfs/memdisk/users/alfred/etc/ip6/config.txt
rename to test/integration/fs/vfs/memdisk/users/alfred/etc/ip6/config.txt
diff --git a/test/fs/integration/vfs/memdisk/users/alfred/private/secret_plan_step1.txt b/test/integration/fs/vfs/memdisk/users/alfred/private/secret_plan_step1.txt
similarity index 100%
rename from test/fs/integration/vfs/memdisk/users/alfred/private/secret_plan_step1.txt
rename to test/integration/fs/vfs/memdisk/users/alfred/private/secret_plan_step1.txt
diff --git a/test/fs/integration/vfs/memdisk/users/alfred/private/secret_plan_step2.txt b/test/integration/fs/vfs/memdisk/users/alfred/private/secret_plan_step2.txt
similarity index 100%
rename from test/fs/integration/vfs/memdisk/users/alfred/private/secret_plan_step2.txt
rename to test/integration/fs/vfs/memdisk/users/alfred/private/secret_plan_step2.txt
diff --git a/test/fs/integration/vfs/memdisk/users/ingve/etc/ip4/config.txt b/test/integration/fs/vfs/memdisk/users/ingve/etc/ip4/config.txt
similarity index 100%
rename from test/fs/integration/vfs/memdisk/users/ingve/etc/ip4/config.txt
rename to test/integration/fs/vfs/memdisk/users/ingve/etc/ip4/config.txt
diff --git a/test/fs/integration/vfs/service.cpp b/test/integration/fs/vfs/service.cpp
similarity index 100%
rename from test/fs/integration/vfs/service.cpp
rename to test/integration/fs/vfs/service.cpp
diff --git a/test/fs/integration/vfs/test.py b/test/integration/fs/vfs/test.py
similarity index 100%
rename from test/fs/integration/vfs/test.py
rename to test/integration/fs/vfs/test.py
diff --git a/test/fs/integration/vfs/virtio1/pictures/profile.txt b/test/integration/fs/vfs/virtio1/pictures/profile.txt
similarity index 100%
rename from test/fs/integration/vfs/virtio1/pictures/profile.txt
rename to test/integration/fs/vfs/virtio1/pictures/profile.txt
diff --git a/test/fs/integration/vfs/virtio1/txt/quote.txt b/test/integration/fs/vfs/virtio1/txt/quote.txt
similarity index 100%
rename from test/fs/integration/vfs/virtio1/txt/quote.txt
rename to test/integration/fs/vfs/virtio1/txt/quote.txt
diff --git a/test/fs/integration/vfs/virtio2/pictures/profile.txt b/test/integration/fs/vfs/virtio2/pictures/profile.txt
similarity index 100%
rename from test/fs/integration/vfs/virtio2/pictures/profile.txt
rename to test/integration/fs/vfs/virtio2/pictures/profile.txt
diff --git a/test/fs/integration/vfs/virtio2/txt/quote.txt b/test/integration/fs/vfs/virtio2/txt/quote.txt
similarity index 100%
rename from test/fs/integration/vfs/virtio2/txt/quote.txt
rename to test/integration/fs/vfs/virtio2/txt/quote.txt
diff --git a/test/fs/integration/vfs/vm.json b/test/integration/fs/vfs/vm.json
similarity index 100%
rename from test/fs/integration/vfs/vm.json
rename to test/integration/fs/vfs/vm.json
diff --git a/test/fs/integration/virtio_block/CMakeLists.txt b/test/integration/fs/virtio_block/CMakeLists.txt
similarity index 100%
rename from test/fs/integration/virtio_block/CMakeLists.txt
rename to test/integration/fs/virtio_block/CMakeLists.txt
diff --git a/test/fs/integration/virtio_block/README.md b/test/integration/fs/virtio_block/README.md
similarity index 100%
rename from test/fs/integration/virtio_block/README.md
rename to test/integration/fs/virtio_block/README.md
diff --git a/test/fs/integration/virtio_block/cleanup.sh b/test/integration/fs/virtio_block/cleanup.sh
similarity index 100%
rename from test/fs/integration/virtio_block/cleanup.sh
rename to test/integration/fs/virtio_block/cleanup.sh
diff --git a/test/fs/integration/virtio_block/image.sh b/test/integration/fs/virtio_block/image.sh
similarity index 100%
rename from test/fs/integration/virtio_block/image.sh
rename to test/integration/fs/virtio_block/image.sh
diff --git a/test/fs/integration/virtio_block/service.cpp b/test/integration/fs/virtio_block/service.cpp
similarity index 100%
rename from test/fs/integration/virtio_block/service.cpp
rename to test/integration/fs/virtio_block/service.cpp
diff --git a/test/fs/integration/virtio_block/test.py b/test/integration/fs/virtio_block/test.py
similarity index 100%
rename from test/fs/integration/virtio_block/test.py
rename to test/integration/fs/virtio_block/test.py
diff --git a/test/fs/integration/virtio_block/test.txt b/test/integration/fs/virtio_block/test.txt
similarity index 100%
rename from test/fs/integration/virtio_block/test.txt
rename to test/integration/fs/virtio_block/test.txt
diff --git a/test/fs/integration/virtio_block/vm.json b/test/integration/fs/virtio_block/vm.json
similarity index 100%
rename from test/fs/integration/virtio_block/vm.json
rename to test/integration/fs/virtio_block/vm.json
diff --git a/test/hw/integration/serial/Makefile b/test/integration/hw/serial/Makefile
similarity index 100%
rename from test/hw/integration/serial/Makefile
rename to test/integration/hw/serial/Makefile
diff --git a/test/hw/integration/serial/README.md b/test/integration/hw/serial/README.md
similarity index 100%
rename from test/hw/integration/serial/README.md
rename to test/integration/hw/serial/README.md
diff --git a/test/hw/integration/serial/run.sh b/test/integration/hw/serial/run.sh
similarity index 100%
rename from test/hw/integration/serial/run.sh
rename to test/integration/hw/serial/run.sh
diff --git a/test/hw/integration/serial/service.cpp b/test/integration/hw/serial/service.cpp
similarity index 100%
rename from test/hw/integration/serial/service.cpp
rename to test/integration/hw/serial/service.cpp
diff --git a/test/hw/integration/serial/test.py b/test/integration/hw/serial/test.py
similarity index 100%
rename from test/hw/integration/serial/test.py
rename to test/integration/hw/serial/test.py
diff --git a/test/hw/integration/serial/vm.json b/test/integration/hw/serial/vm.json
similarity index 100%
rename from test/hw/integration/serial/vm.json
rename to test/integration/hw/serial/vm.json
diff --git a/test/hw/integration/vga/Makefile b/test/integration/hw/vga/Makefile
similarity index 100%
rename from test/hw/integration/vga/Makefile
rename to test/integration/hw/vga/Makefile
diff --git a/test/hw/integration/vga/debug.sh b/test/integration/hw/vga/debug.sh
similarity index 100%
rename from test/hw/integration/vga/debug.sh
rename to test/integration/hw/vga/debug.sh
diff --git a/test/hw/integration/vga/run.sh b/test/integration/hw/vga/run.sh
similarity index 100%
rename from test/hw/integration/vga/run.sh
rename to test/integration/hw/vga/run.sh
diff --git a/test/hw/integration/vga/service.gdb b/test/integration/hw/vga/service.gdb
similarity index 100%
rename from test/hw/integration/vga/service.gdb
rename to test/integration/hw/vga/service.gdb
diff --git a/test/hw/integration/vga/test.sh b/test/integration/hw/vga/test.sh
similarity index 100%
rename from test/hw/integration/vga/test.sh
rename to test/integration/hw/vga/test.sh
diff --git a/test/hw/integration/vga/vbox.sh b/test/integration/hw/vga/vbox.sh
similarity index 100%
rename from test/hw/integration/vga/vbox.sh
rename to test/integration/hw/vga/vbox.sh
diff --git a/test/hw/integration/vga/vga.cpp b/test/integration/hw/vga/vga.cpp
similarity index 100%
rename from test/hw/integration/vga/vga.cpp
rename to test/integration/hw/vga/vga.cpp
diff --git a/test/hw/integration/virtio_queue/Makefile b/test/integration/hw/virtio_queue/Makefile
similarity index 100%
rename from test/hw/integration/virtio_queue/Makefile
rename to test/integration/hw/virtio_queue/Makefile
diff --git a/test/hw/integration/virtio_queue/README.md b/test/integration/hw/virtio_queue/README.md
similarity index 100%
rename from test/hw/integration/virtio_queue/README.md
rename to test/integration/hw/virtio_queue/README.md
diff --git a/test/hw/integration/virtio_queue/run.sh b/test/integration/hw/virtio_queue/run.sh
similarity index 100%
rename from test/hw/integration/virtio_queue/run.sh
rename to test/integration/hw/virtio_queue/run.sh
diff --git a/test/hw/integration/virtio_queue/service.cpp b/test/integration/hw/virtio_queue/service.cpp
similarity index 100%
rename from test/hw/integration/virtio_queue/service.cpp
rename to test/integration/hw/virtio_queue/service.cpp
diff --git a/test/hw/integration/virtio_queue/test.sh b/test/integration/hw/virtio_queue/test.sh
similarity index 100%
rename from test/hw/integration/virtio_queue/test.sh
rename to test/integration/hw/virtio_queue/test.sh
diff --git a/test/kernel/integration/LiveUpdate/CMakeLists.txt b/test/integration/kernel/LiveUpdate/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/LiveUpdate/CMakeLists.txt
rename to test/integration/kernel/LiveUpdate/CMakeLists.txt
diff --git a/test/kernel/integration/LiveUpdate/liu.hpp b/test/integration/kernel/LiveUpdate/liu.hpp
similarity index 100%
rename from test/kernel/integration/LiveUpdate/liu.hpp
rename to test/integration/kernel/LiveUpdate/liu.hpp
diff --git a/test/kernel/integration/LiveUpdate/manual.sh b/test/integration/kernel/LiveUpdate/manual.sh
similarity index 100%
rename from test/kernel/integration/LiveUpdate/manual.sh
rename to test/integration/kernel/LiveUpdate/manual.sh
diff --git a/test/kernel/integration/LiveUpdate/server.hpp b/test/integration/kernel/LiveUpdate/server.hpp
similarity index 100%
rename from test/kernel/integration/LiveUpdate/server.hpp
rename to test/integration/kernel/LiveUpdate/server.hpp
diff --git a/test/kernel/integration/LiveUpdate/service.cpp b/test/integration/kernel/LiveUpdate/service.cpp
similarity index 100%
rename from test/kernel/integration/LiveUpdate/service.cpp
rename to test/integration/kernel/LiveUpdate/service.cpp
diff --git a/test/kernel/integration/LiveUpdate/test.py b/test/integration/kernel/LiveUpdate/test.py
similarity index 100%
rename from test/kernel/integration/LiveUpdate/test.py
rename to test/integration/kernel/LiveUpdate/test.py
diff --git a/test/kernel/integration/LiveUpdate/test_boot.cpp b/test/integration/kernel/LiveUpdate/test_boot.cpp
similarity index 100%
rename from test/kernel/integration/LiveUpdate/test_boot.cpp
rename to test/integration/kernel/LiveUpdate/test_boot.cpp
diff --git a/test/kernel/integration/LiveUpdate/vm.json b/test/integration/kernel/LiveUpdate/vm.json
similarity index 100%
rename from test/kernel/integration/LiveUpdate/vm.json
rename to test/integration/kernel/LiveUpdate/vm.json
diff --git a/test/kernel/integration/block/CMakeLists.txt b/test/integration/kernel/block/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/block/CMakeLists.txt
rename to test/integration/kernel/block/CMakeLists.txt
diff --git a/test/kernel/integration/block/README.md b/test/integration/kernel/block/README.md
similarity index 100%
rename from test/kernel/integration/block/README.md
rename to test/integration/kernel/block/README.md
diff --git a/test/kernel/integration/block/service.cpp b/test/integration/kernel/block/service.cpp
similarity index 100%
rename from test/kernel/integration/block/service.cpp
rename to test/integration/kernel/block/service.cpp
diff --git a/test/kernel/integration/block/test.py b/test/integration/kernel/block/test.py
similarity index 100%
rename from test/kernel/integration/block/test.py
rename to test/integration/kernel/block/test.py
diff --git a/test/kernel/integration/block/vm.json b/test/integration/kernel/block/vm.json
similarity index 100%
rename from test/kernel/integration/block/vm.json
rename to test/integration/kernel/block/vm.json
diff --git a/test/kernel/integration/context/CMakeLists.txt b/test/integration/kernel/context/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/context/CMakeLists.txt
rename to test/integration/kernel/context/CMakeLists.txt
diff --git a/test/kernel/integration/context/README.md b/test/integration/kernel/context/README.md
similarity index 100%
rename from test/kernel/integration/context/README.md
rename to test/integration/kernel/context/README.md
diff --git a/test/kernel/integration/context/service.cpp b/test/integration/kernel/context/service.cpp
similarity index 100%
rename from test/kernel/integration/context/service.cpp
rename to test/integration/kernel/context/service.cpp
diff --git a/test/kernel/integration/context/test.py b/test/integration/kernel/context/test.py
similarity index 100%
rename from test/kernel/integration/context/test.py
rename to test/integration/kernel/context/test.py
diff --git a/test/kernel/integration/context/vm.json b/test/integration/kernel/context/vm.json
similarity index 100%
rename from test/kernel/integration/context/vm.json
rename to test/integration/kernel/context/vm.json
diff --git a/test/kernel/integration/exception/CMakeLists.txt b/test/integration/kernel/exception/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/exception/CMakeLists.txt
rename to test/integration/kernel/exception/CMakeLists.txt
diff --git a/test/kernel/integration/exception/service.cpp b/test/integration/kernel/exception/service.cpp
similarity index 100%
rename from test/kernel/integration/exception/service.cpp
rename to test/integration/kernel/exception/service.cpp
diff --git a/test/kernel/integration/exception/test.py b/test/integration/kernel/exception/test.py
similarity index 100%
rename from test/kernel/integration/exception/test.py
rename to test/integration/kernel/exception/test.py
diff --git a/test/kernel/integration/exception/vm.json b/test/integration/kernel/exception/vm.json
similarity index 100%
rename from test/kernel/integration/exception/vm.json
rename to test/integration/kernel/exception/vm.json
diff --git a/test/kernel/integration/fiber/CMakeLists.txt b/test/integration/kernel/fiber/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/fiber/CMakeLists.txt
rename to test/integration/kernel/fiber/CMakeLists.txt
diff --git a/test/kernel/integration/fiber/README.md b/test/integration/kernel/fiber/README.md
similarity index 100%
rename from test/kernel/integration/fiber/README.md
rename to test/integration/kernel/fiber/README.md
diff --git a/test/kernel/integration/fiber/fiber_smp.cpp b/test/integration/kernel/fiber/fiber_smp.cpp
similarity index 100%
rename from test/kernel/integration/fiber/fiber_smp.cpp
rename to test/integration/kernel/fiber/fiber_smp.cpp
diff --git a/test/kernel/integration/fiber/service.cpp b/test/integration/kernel/fiber/service.cpp
similarity index 100%
rename from test/kernel/integration/fiber/service.cpp
rename to test/integration/kernel/fiber/service.cpp
diff --git a/test/kernel/integration/fiber/test.py b/test/integration/kernel/fiber/test.py
similarity index 100%
rename from test/kernel/integration/fiber/test.py
rename to test/integration/kernel/fiber/test.py
diff --git a/test/kernel/integration/fiber/vm.json b/test/integration/kernel/fiber/vm.json
similarity index 100%
rename from test/kernel/integration/fiber/vm.json
rename to test/integration/kernel/fiber/vm.json
diff --git a/test/kernel/integration/grub/.gitignore b/test/integration/kernel/grub/.gitignore
similarity index 100%
rename from test/kernel/integration/grub/.gitignore
rename to test/integration/kernel/grub/.gitignore
diff --git a/test/kernel/integration/grub/CMakeLists.txt b/test/integration/kernel/grub/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/grub/CMakeLists.txt
rename to test/integration/kernel/grub/CMakeLists.txt
diff --git a/test/kernel/integration/grub/README.md b/test/integration/kernel/grub/README.md
similarity index 100%
rename from test/kernel/integration/grub/README.md
rename to test/integration/kernel/grub/README.md
diff --git a/test/kernel/integration/grub/grub.cfg b/test/integration/kernel/grub/grub.cfg
similarity index 100%
rename from test/kernel/integration/grub/grub.cfg
rename to test/integration/kernel/grub/grub.cfg
diff --git a/test/kernel/integration/grub/grubiso.sh b/test/integration/kernel/grub/grubiso.sh
similarity index 100%
rename from test/kernel/integration/grub/grubiso.sh
rename to test/integration/kernel/grub/grubiso.sh
diff --git a/test/kernel/integration/grub/service.cpp b/test/integration/kernel/grub/service.cpp
similarity index 100%
rename from test/kernel/integration/grub/service.cpp
rename to test/integration/kernel/grub/service.cpp
diff --git a/test/kernel/integration/grub/setup.sh b/test/integration/kernel/grub/setup.sh
similarity index 100%
rename from test/kernel/integration/grub/setup.sh
rename to test/integration/kernel/grub/setup.sh
diff --git a/test/kernel/integration/grub/test.py b/test/integration/kernel/grub/test.py
similarity index 100%
rename from test/kernel/integration/grub/test.py
rename to test/integration/kernel/grub/test.py
diff --git a/test/kernel/integration/grub/vm.json b/test/integration/kernel/grub/vm.json
similarity index 100%
rename from test/kernel/integration/grub/vm.json
rename to test/integration/kernel/grub/vm.json
diff --git a/test/kernel/integration/kprint/CMakeLists.txt b/test/integration/kernel/kprint/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/kprint/CMakeLists.txt
rename to test/integration/kernel/kprint/CMakeLists.txt
diff --git a/test/kernel/integration/kprint/README.md b/test/integration/kernel/kprint/README.md
similarity index 100%
rename from test/kernel/integration/kprint/README.md
rename to test/integration/kernel/kprint/README.md
diff --git a/test/kernel/integration/kprint/service.cpp b/test/integration/kernel/kprint/service.cpp
similarity index 100%
rename from test/kernel/integration/kprint/service.cpp
rename to test/integration/kernel/kprint/service.cpp
diff --git a/test/kernel/integration/kprint/test.py b/test/integration/kernel/kprint/test.py
similarity index 100%
rename from test/kernel/integration/kprint/test.py
rename to test/integration/kernel/kprint/test.py
diff --git a/test/kernel/integration/memmap/CMakeLists.txt b/test/integration/kernel/memmap/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/memmap/CMakeLists.txt
rename to test/integration/kernel/memmap/CMakeLists.txt
diff --git a/test/kernel/integration/memmap/README.md b/test/integration/kernel/memmap/README.md
similarity index 100%
rename from test/kernel/integration/memmap/README.md
rename to test/integration/kernel/memmap/README.md
diff --git a/test/kernel/integration/memmap/service.cpp b/test/integration/kernel/memmap/service.cpp
similarity index 100%
rename from test/kernel/integration/memmap/service.cpp
rename to test/integration/kernel/memmap/service.cpp
diff --git a/test/kernel/integration/memmap/test.py b/test/integration/kernel/memmap/test.py
similarity index 100%
rename from test/kernel/integration/memmap/test.py
rename to test/integration/kernel/memmap/test.py
diff --git a/test/kernel/integration/memmap/vm1.json b/test/integration/kernel/memmap/vm1.json
similarity index 100%
rename from test/kernel/integration/memmap/vm1.json
rename to test/integration/kernel/memmap/vm1.json
diff --git a/test/kernel/integration/memmap/vm2.json b/test/integration/kernel/memmap/vm2.json
similarity index 100%
rename from test/kernel/integration/memmap/vm2.json
rename to test/integration/kernel/memmap/vm2.json
diff --git a/test/kernel/integration/modules/CMakeLists.txt b/test/integration/kernel/modules/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/modules/CMakeLists.txt
rename to test/integration/kernel/modules/CMakeLists.txt
diff --git a/test/kernel/integration/modules/README.md b/test/integration/kernel/modules/README.md
similarity index 100%
rename from test/kernel/integration/modules/README.md
rename to test/integration/kernel/modules/README.md
diff --git a/test/kernel/integration/modules/service.cpp b/test/integration/kernel/modules/service.cpp
similarity index 100%
rename from test/kernel/integration/modules/service.cpp
rename to test/integration/kernel/modules/service.cpp
diff --git a/test/kernel/integration/modules/test.py b/test/integration/kernel/modules/test.py
similarity index 100%
rename from test/kernel/integration/modules/test.py
rename to test/integration/kernel/modules/test.py
diff --git a/test/kernel/integration/modules/vm.json b/test/integration/kernel/modules/vm.json
similarity index 100%
rename from test/kernel/integration/modules/vm.json
rename to test/integration/kernel/modules/vm.json
diff --git a/test/kernel/integration/osinit/CMakeLists.txt b/test/integration/kernel/osinit/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/osinit/CMakeLists.txt
rename to test/integration/kernel/osinit/CMakeLists.txt
diff --git a/test/kernel/integration/osinit/service.cpp b/test/integration/kernel/osinit/service.cpp
similarity index 100%
rename from test/kernel/integration/osinit/service.cpp
rename to test/integration/kernel/osinit/service.cpp
diff --git a/test/kernel/integration/osinit/test.py b/test/integration/kernel/osinit/test.py
similarity index 100%
rename from test/kernel/integration/osinit/test.py
rename to test/integration/kernel/osinit/test.py
diff --git a/test/kernel/integration/plugin_init/CMakeLists.txt b/test/integration/kernel/plugin_init/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/plugin_init/CMakeLists.txt
rename to test/integration/kernel/plugin_init/CMakeLists.txt
diff --git a/test/kernel/integration/plugin_init/README.md b/test/integration/kernel/plugin_init/README.md
similarity index 100%
rename from test/kernel/integration/plugin_init/README.md
rename to test/integration/kernel/plugin_init/README.md
diff --git a/test/kernel/integration/plugin_init/plugin1.cpp b/test/integration/kernel/plugin_init/plugin1.cpp
similarity index 100%
rename from test/kernel/integration/plugin_init/plugin1.cpp
rename to test/integration/kernel/plugin_init/plugin1.cpp
diff --git a/test/kernel/integration/plugin_init/plugin2.cpp b/test/integration/kernel/plugin_init/plugin2.cpp
similarity index 100%
rename from test/kernel/integration/plugin_init/plugin2.cpp
rename to test/integration/kernel/plugin_init/plugin2.cpp
diff --git a/test/kernel/integration/plugin_init/plugin3.cpp b/test/integration/kernel/plugin_init/plugin3.cpp
similarity index 100%
rename from test/kernel/integration/plugin_init/plugin3.cpp
rename to test/integration/kernel/plugin_init/plugin3.cpp
diff --git a/test/kernel/integration/plugin_init/service.cpp b/test/integration/kernel/plugin_init/service.cpp
similarity index 100%
rename from test/kernel/integration/plugin_init/service.cpp
rename to test/integration/kernel/plugin_init/service.cpp
diff --git a/test/kernel/integration/plugin_init/test.py b/test/integration/kernel/plugin_init/test.py
similarity index 100%
rename from test/kernel/integration/plugin_init/test.py
rename to test/integration/kernel/plugin_init/test.py
diff --git a/test/kernel/integration/plugin_init/vm.json b/test/integration/kernel/plugin_init/vm.json
similarity index 100%
rename from test/kernel/integration/plugin_init/vm.json
rename to test/integration/kernel/plugin_init/vm.json
diff --git a/test/kernel/integration/rng/CMakeLists.txt b/test/integration/kernel/rng/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/rng/CMakeLists.txt
rename to test/integration/kernel/rng/CMakeLists.txt
diff --git a/test/kernel/integration/rng/README.md b/test/integration/kernel/rng/README.md
similarity index 100%
rename from test/kernel/integration/rng/README.md
rename to test/integration/kernel/rng/README.md
diff --git a/test/kernel/integration/rng/service.cpp b/test/integration/kernel/rng/service.cpp
similarity index 100%
rename from test/kernel/integration/rng/service.cpp
rename to test/integration/kernel/rng/service.cpp
diff --git a/test/kernel/integration/rng/test.py b/test/integration/kernel/rng/test.py
similarity index 100%
rename from test/kernel/integration/rng/test.py
rename to test/integration/kernel/rng/test.py
diff --git a/test/kernel/integration/rng/vm.json b/test/integration/kernel/rng/vm.json
similarity index 100%
rename from test/kernel/integration/rng/vm.json
rename to test/integration/kernel/rng/vm.json
diff --git a/test/kernel/integration/smp/CMakeLists.txt b/test/integration/kernel/smp/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/smp/CMakeLists.txt
rename to test/integration/kernel/smp/CMakeLists.txt
diff --git a/test/kernel/integration/smp/README.md b/test/integration/kernel/smp/README.md
similarity index 100%
rename from test/kernel/integration/smp/README.md
rename to test/integration/kernel/smp/README.md
diff --git a/test/kernel/integration/smp/service.cpp b/test/integration/kernel/smp/service.cpp
similarity index 100%
rename from test/kernel/integration/smp/service.cpp
rename to test/integration/kernel/smp/service.cpp
diff --git a/test/kernel/integration/smp/test.py b/test/integration/kernel/smp/test.py
similarity index 100%
rename from test/kernel/integration/smp/test.py
rename to test/integration/kernel/smp/test.py
diff --git a/test/kernel/integration/smp/vm.json b/test/integration/kernel/smp/vm.json
similarity index 100%
rename from test/kernel/integration/smp/vm.json
rename to test/integration/kernel/smp/vm.json
diff --git a/test/kernel/integration/spinlocks/CMakeLists.txt b/test/integration/kernel/spinlocks/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/spinlocks/CMakeLists.txt
rename to test/integration/kernel/spinlocks/CMakeLists.txt
diff --git a/test/kernel/integration/spinlocks/service.cpp b/test/integration/kernel/spinlocks/service.cpp
similarity index 100%
rename from test/kernel/integration/spinlocks/service.cpp
rename to test/integration/kernel/spinlocks/service.cpp
diff --git a/test/kernel/integration/spinlocks/test.py b/test/integration/kernel/spinlocks/test.py
similarity index 100%
rename from test/kernel/integration/spinlocks/test.py
rename to test/integration/kernel/spinlocks/test.py
diff --git a/test/kernel/integration/stacktrace/CMakeLists.txt b/test/integration/kernel/stacktrace/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/stacktrace/CMakeLists.txt
rename to test/integration/kernel/stacktrace/CMakeLists.txt
diff --git a/test/kernel/integration/stacktrace/service.cpp b/test/integration/kernel/stacktrace/service.cpp
similarity index 100%
rename from test/kernel/integration/stacktrace/service.cpp
rename to test/integration/kernel/stacktrace/service.cpp
diff --git a/test/kernel/integration/stacktrace/test.py b/test/integration/kernel/stacktrace/test.py
similarity index 100%
rename from test/kernel/integration/stacktrace/test.py
rename to test/integration/kernel/stacktrace/test.py
diff --git a/test/kernel/integration/stacktrace/vm.json b/test/integration/kernel/stacktrace/vm.json
similarity index 100%
rename from test/kernel/integration/stacktrace/vm.json
rename to test/integration/kernel/stacktrace/vm.json
diff --git a/test/kernel/integration/term/CMakeLists.txt b/test/integration/kernel/term/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/term/CMakeLists.txt
rename to test/integration/kernel/term/CMakeLists.txt
diff --git a/test/kernel/integration/term/service.cpp b/test/integration/kernel/term/service.cpp
similarity index 100%
rename from test/kernel/integration/term/service.cpp
rename to test/integration/kernel/term/service.cpp
diff --git a/test/kernel/integration/term/test.py b/test/integration/kernel/term/test.py
similarity index 100%
rename from test/kernel/integration/term/test.py
rename to test/integration/kernel/term/test.py
diff --git a/test/kernel/integration/term/vm.json b/test/integration/kernel/term/vm.json
similarity index 100%
rename from test/kernel/integration/term/vm.json
rename to test/integration/kernel/term/vm.json
diff --git a/test/kernel/integration/timers/CMakeLists.txt b/test/integration/kernel/timers/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/timers/CMakeLists.txt
rename to test/integration/kernel/timers/CMakeLists.txt
diff --git a/test/kernel/integration/timers/README.md b/test/integration/kernel/timers/README.md
similarity index 100%
rename from test/kernel/integration/timers/README.md
rename to test/integration/kernel/timers/README.md
diff --git a/test/kernel/integration/timers/service.cpp b/test/integration/kernel/timers/service.cpp
similarity index 100%
rename from test/kernel/integration/timers/service.cpp
rename to test/integration/kernel/timers/service.cpp
diff --git a/test/kernel/integration/timers/test.py b/test/integration/kernel/timers/test.py
similarity index 100%
rename from test/kernel/integration/timers/test.py
rename to test/integration/kernel/timers/test.py
diff --git a/test/kernel/integration/timers/timers.cpp b/test/integration/kernel/timers/timers.cpp
similarity index 100%
rename from test/kernel/integration/timers/timers.cpp
rename to test/integration/kernel/timers/timers.cpp
diff --git a/test/kernel/integration/timers/vm.json b/test/integration/kernel/timers/vm.json
similarity index 100%
rename from test/kernel/integration/timers/vm.json
rename to test/integration/kernel/timers/vm.json
diff --git a/test/kernel/integration/tls/CMakeLists.txt b/test/integration/kernel/tls/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/tls/CMakeLists.txt
rename to test/integration/kernel/tls/CMakeLists.txt
diff --git a/test/kernel/integration/tls/README.md b/test/integration/kernel/tls/README.md
similarity index 100%
rename from test/kernel/integration/tls/README.md
rename to test/integration/kernel/tls/README.md
diff --git a/test/kernel/integration/tls/service.cpp b/test/integration/kernel/tls/service.cpp
similarity index 100%
rename from test/kernel/integration/tls/service.cpp
rename to test/integration/kernel/tls/service.cpp
diff --git a/test/kernel/integration/tls/test.py b/test/integration/kernel/tls/test.py
similarity index 100%
rename from test/kernel/integration/tls/test.py
rename to test/integration/kernel/tls/test.py
diff --git a/test/kernel/integration/tls/vm.json b/test/integration/kernel/tls/vm.json
similarity index 100%
rename from test/kernel/integration/tls/vm.json
rename to test/integration/kernel/tls/vm.json
diff --git a/test/kernel/integration/paging/CMakeLists.txt b/test/integration/memory/paging/CMakeLists.txt
similarity index 100%
rename from test/kernel/integration/paging/CMakeLists.txt
rename to test/integration/memory/paging/CMakeLists.txt
diff --git a/test/kernel/integration/paging/service.cpp b/test/integration/memory/paging/service.cpp
similarity index 100%
rename from test/kernel/integration/paging/service.cpp
rename to test/integration/memory/paging/service.cpp
diff --git a/test/kernel/integration/paging/test.py b/test/integration/memory/paging/test.py
similarity index 100%
rename from test/kernel/integration/paging/test.py
rename to test/integration/memory/paging/test.py
diff --git a/test/kernel/integration/paging/vm.json b/test/integration/memory/paging/vm.json
similarity index 100%
rename from test/kernel/integration/paging/vm.json
rename to test/integration/memory/paging/vm.json
diff --git a/test/mod/integration/gsl/CMakeLists.txt b/test/integration/mod/gsl/CMakeLists.txt
similarity index 100%
rename from test/mod/integration/gsl/CMakeLists.txt
rename to test/integration/mod/gsl/CMakeLists.txt
diff --git a/test/mod/integration/gsl/README.md b/test/integration/mod/gsl/README.md
similarity index 100%
rename from test/mod/integration/gsl/README.md
rename to test/integration/mod/gsl/README.md
diff --git a/test/mod/integration/gsl/service.cpp b/test/integration/mod/gsl/service.cpp
similarity index 100%
rename from test/mod/integration/gsl/service.cpp
rename to test/integration/mod/gsl/service.cpp
diff --git a/test/mod/integration/gsl/test.py b/test/integration/mod/gsl/test.py
similarity index 100%
rename from test/mod/integration/gsl/test.py
rename to test/integration/mod/gsl/test.py
diff --git a/test/net/integration/bufstore/CMakeLists.txt b/test/integration/net/bufstore/CMakeLists.txt
similarity index 100%
rename from test/net/integration/bufstore/CMakeLists.txt
rename to test/integration/net/bufstore/CMakeLists.txt
diff --git a/test/net/integration/bufstore/README.md b/test/integration/net/bufstore/README.md
similarity index 100%
rename from test/net/integration/bufstore/README.md
rename to test/integration/net/bufstore/README.md
diff --git a/test/net/integration/bufstore/service.cpp b/test/integration/net/bufstore/service.cpp
similarity index 100%
rename from test/net/integration/bufstore/service.cpp
rename to test/integration/net/bufstore/service.cpp
diff --git a/test/net/integration/bufstore/test.py b/test/integration/net/bufstore/test.py
similarity index 100%
rename from test/net/integration/bufstore/test.py
rename to test/integration/net/bufstore/test.py
diff --git a/test/net/integration/configure/CMakeLists.txt b/test/integration/net/configure/CMakeLists.txt
similarity index 100%
rename from test/net/integration/configure/CMakeLists.txt
rename to test/integration/net/configure/CMakeLists.txt
diff --git a/test/net/integration/configure/README.md b/test/integration/net/configure/README.md
similarity index 100%
rename from test/net/integration/configure/README.md
rename to test/integration/net/configure/README.md
diff --git a/test/net/integration/configure/config.json b/test/integration/net/configure/config.json
similarity index 100%
rename from test/net/integration/configure/config.json
rename to test/integration/net/configure/config.json
diff --git a/test/net/integration/configure/service.cpp b/test/integration/net/configure/service.cpp
similarity index 100%
rename from test/net/integration/configure/service.cpp
rename to test/integration/net/configure/service.cpp
diff --git a/test/net/integration/configure/test.py b/test/integration/net/configure/test.py
similarity index 100%
rename from test/net/integration/configure/test.py
rename to test/integration/net/configure/test.py
diff --git a/test/net/integration/configure/vm.json b/test/integration/net/configure/vm.json
similarity index 100%
rename from test/net/integration/configure/vm.json
rename to test/integration/net/configure/vm.json
diff --git a/test/net/integration/dhclient/CMakeLists.txt b/test/integration/net/dhclient/CMakeLists.txt
similarity index 100%
rename from test/net/integration/dhclient/CMakeLists.txt
rename to test/integration/net/dhclient/CMakeLists.txt
diff --git a/test/net/integration/dhclient/README.md b/test/integration/net/dhclient/README.md
similarity index 100%
rename from test/net/integration/dhclient/README.md
rename to test/integration/net/dhclient/README.md
diff --git a/test/net/integration/dhclient/service.cpp b/test/integration/net/dhclient/service.cpp
similarity index 100%
rename from test/net/integration/dhclient/service.cpp
rename to test/integration/net/dhclient/service.cpp
diff --git a/test/net/integration/dhclient/test.py b/test/integration/net/dhclient/test.py
similarity index 100%
rename from test/net/integration/dhclient/test.py
rename to test/integration/net/dhclient/test.py
diff --git a/test/net/integration/dhclient/vm.json b/test/integration/net/dhclient/vm.json
similarity index 100%
rename from test/net/integration/dhclient/vm.json
rename to test/integration/net/dhclient/vm.json
diff --git a/test/net/integration/dhcpd/CMakeLists.txt b/test/integration/net/dhcpd/CMakeLists.txt
similarity index 100%
rename from test/net/integration/dhcpd/CMakeLists.txt
rename to test/integration/net/dhcpd/CMakeLists.txt
diff --git a/test/net/integration/dhcpd/README.md b/test/integration/net/dhcpd/README.md
similarity index 100%
rename from test/net/integration/dhcpd/README.md
rename to test/integration/net/dhcpd/README.md
diff --git a/test/net/integration/dhcpd/service.cpp b/test/integration/net/dhcpd/service.cpp
similarity index 100%
rename from test/net/integration/dhcpd/service.cpp
rename to test/integration/net/dhcpd/service.cpp
diff --git a/test/net/integration/dhcpd/setup.sh b/test/integration/net/dhcpd/setup.sh
similarity index 100%
rename from test/net/integration/dhcpd/setup.sh
rename to test/integration/net/dhcpd/setup.sh
diff --git a/test/net/integration/dhcpd/test.py b/test/integration/net/dhcpd/test.py
similarity index 100%
rename from test/net/integration/dhcpd/test.py
rename to test/integration/net/dhcpd/test.py
diff --git a/test/net/integration/dhcpd/vm.json b/test/integration/net/dhcpd/vm.json
similarity index 100%
rename from test/net/integration/dhcpd/vm.json
rename to test/integration/net/dhcpd/vm.json
diff --git a/test/net/integration/dhcpd_dhclient_linux/CMakeLists.txt b/test/integration/net/dhcpd_dhclient_linux/CMakeLists.txt
similarity index 100%
rename from test/net/integration/dhcpd_dhclient_linux/CMakeLists.txt
rename to test/integration/net/dhcpd_dhclient_linux/CMakeLists.txt
diff --git a/test/net/integration/dhcpd_dhclient_linux/README.md b/test/integration/net/dhcpd_dhclient_linux/README.md
similarity index 100%
rename from test/net/integration/dhcpd_dhclient_linux/README.md
rename to test/integration/net/dhcpd_dhclient_linux/README.md
diff --git a/test/net/integration/dhcpd_dhclient_linux/service.cpp b/test/integration/net/dhcpd_dhclient_linux/service.cpp
similarity index 100%
rename from test/net/integration/dhcpd_dhclient_linux/service.cpp
rename to test/integration/net/dhcpd_dhclient_linux/service.cpp
diff --git a/test/net/integration/dhcpd_dhclient_linux/test.py b/test/integration/net/dhcpd_dhclient_linux/test.py
similarity index 100%
rename from test/net/integration/dhcpd_dhclient_linux/test.py
rename to test/integration/net/dhcpd_dhclient_linux/test.py
diff --git a/test/net/integration/dhcpd_dhclient_linux/vm.json b/test/integration/net/dhcpd_dhclient_linux/vm.json
similarity index 100%
rename from test/net/integration/dhcpd_dhclient_linux/vm.json
rename to test/integration/net/dhcpd_dhclient_linux/vm.json
diff --git a/test/net/integration/dns/CMakeLists.txt b/test/integration/net/dns/CMakeLists.txt
similarity index 100%
rename from test/net/integration/dns/CMakeLists.txt
rename to test/integration/net/dns/CMakeLists.txt
diff --git a/test/net/integration/dns/README.md b/test/integration/net/dns/README.md
similarity index 100%
rename from test/net/integration/dns/README.md
rename to test/integration/net/dns/README.md
diff --git a/test/net/integration/dns/service.cpp b/test/integration/net/dns/service.cpp
similarity index 100%
rename from test/net/integration/dns/service.cpp
rename to test/integration/net/dns/service.cpp
diff --git a/test/net/integration/dns/test.py b/test/integration/net/dns/test.py
similarity index 100%
rename from test/net/integration/dns/test.py
rename to test/integration/net/dns/test.py
diff --git a/test/net/integration/dns/vm.json b/test/integration/net/dns/vm.json
similarity index 100%
rename from test/net/integration/dns/vm.json
rename to test/integration/net/dns/vm.json
diff --git a/test/net/integration/gateway/CMakeLists.txt b/test/integration/net/gateway/CMakeLists.txt
similarity index 100%
rename from test/net/integration/gateway/CMakeLists.txt
rename to test/integration/net/gateway/CMakeLists.txt
diff --git a/test/net/integration/gateway/README.md b/test/integration/net/gateway/README.md
similarity index 100%
rename from test/net/integration/gateway/README.md
rename to test/integration/net/gateway/README.md
diff --git a/test/net/integration/gateway/nacl.txt b/test/integration/net/gateway/nacl.txt
similarity index 100%
rename from test/net/integration/gateway/nacl.txt
rename to test/integration/net/gateway/nacl.txt
diff --git a/test/net/integration/gateway/service.cpp b/test/integration/net/gateway/service.cpp
similarity index 100%
rename from test/net/integration/gateway/service.cpp
rename to test/integration/net/gateway/service.cpp
diff --git a/test/net/integration/gateway/test.py b/test/integration/net/gateway/test.py
similarity index 100%
rename from test/net/integration/gateway/test.py
rename to test/integration/net/gateway/test.py
diff --git a/test/net/integration/gateway/vm.json b/test/integration/net/gateway/vm.json
similarity index 100%
rename from test/net/integration/gateway/vm.json
rename to test/integration/net/gateway/vm.json
diff --git a/test/net/integration/http/CMakeLists.txt b/test/integration/net/http/CMakeLists.txt
similarity index 100%
rename from test/net/integration/http/CMakeLists.txt
rename to test/integration/net/http/CMakeLists.txt
diff --git a/test/net/integration/http/README.md b/test/integration/net/http/README.md
similarity index 100%
rename from test/net/integration/http/README.md
rename to test/integration/net/http/README.md
diff --git a/test/net/integration/http/run.sh b/test/integration/net/http/run.sh
similarity index 100%
rename from test/net/integration/http/run.sh
rename to test/integration/net/http/run.sh
diff --git a/test/net/integration/http/service.cpp b/test/integration/net/http/service.cpp
similarity index 100%
rename from test/net/integration/http/service.cpp
rename to test/integration/net/http/service.cpp
diff --git a/test/net/integration/http/test.py b/test/integration/net/http/test.py
similarity index 100%
rename from test/net/integration/http/test.py
rename to test/integration/net/http/test.py
diff --git a/test/net/integration/http/vm.json b/test/integration/net/http/vm.json
similarity index 100%
rename from test/net/integration/http/vm.json
rename to test/integration/net/http/vm.json
diff --git a/test/net/integration/icmp/CMakeLists.txt b/test/integration/net/icmp/CMakeLists.txt
similarity index 100%
rename from test/net/integration/icmp/CMakeLists.txt
rename to test/integration/net/icmp/CMakeLists.txt
diff --git a/test/net/integration/icmp/README.md b/test/integration/net/icmp/README.md
similarity index 100%
rename from test/net/integration/icmp/README.md
rename to test/integration/net/icmp/README.md
diff --git a/test/net/integration/icmp/service.cpp b/test/integration/net/icmp/service.cpp
similarity index 100%
rename from test/net/integration/icmp/service.cpp
rename to test/integration/net/icmp/service.cpp
diff --git a/test/net/integration/icmp/test.py b/test/integration/net/icmp/test.py
similarity index 100%
rename from test/net/integration/icmp/test.py
rename to test/integration/net/icmp/test.py
diff --git a/test/net/integration/icmp/vm.json b/test/integration/net/icmp/vm.json
similarity index 100%
rename from test/net/integration/icmp/vm.json
rename to test/integration/net/icmp/vm.json
diff --git a/test/net/integration/icmp6/CMakeLists.txt b/test/integration/net/icmp6/CMakeLists.txt
similarity index 100%
rename from test/net/integration/icmp6/CMakeLists.txt
rename to test/integration/net/icmp6/CMakeLists.txt
diff --git a/test/net/integration/icmp6/linux/CMakeLists.txt b/test/integration/net/icmp6/linux/CMakeLists.txt
similarity index 100%
rename from test/net/integration/icmp6/linux/CMakeLists.txt
rename to test/integration/net/icmp6/linux/CMakeLists.txt
diff --git a/test/net/integration/icmp6/linux/run.sh b/test/integration/net/icmp6/linux/run.sh
similarity index 100%
rename from test/net/integration/icmp6/linux/run.sh
rename to test/integration/net/icmp6/linux/run.sh
diff --git a/test/net/integration/icmp6/service.cpp b/test/integration/net/icmp6/service.cpp
similarity index 100%
rename from test/net/integration/icmp6/service.cpp
rename to test/integration/net/icmp6/service.cpp
diff --git a/test/net/integration/icmp6/setup.sh b/test/integration/net/icmp6/setup.sh
similarity index 100%
rename from test/net/integration/icmp6/setup.sh
rename to test/integration/net/icmp6/setup.sh
diff --git a/test/net/integration/icmp6/test.py b/test/integration/net/icmp6/test.py
similarity index 100%
rename from test/net/integration/icmp6/test.py
rename to test/integration/net/icmp6/test.py
diff --git a/test/net/integration/icmp6/vm.json b/test/integration/net/icmp6/vm.json
similarity index 100%
rename from test/net/integration/icmp6/vm.json
rename to test/integration/net/icmp6/vm.json
diff --git a/test/net/integration/microLB/CMakeLists.txt b/test/integration/net/microLB/CMakeLists.txt
similarity index 100%
rename from test/net/integration/microLB/CMakeLists.txt
rename to test/integration/net/microLB/CMakeLists.txt
diff --git a/test/net/integration/microLB/config.json b/test/integration/net/microLB/config.json
similarity index 100%
rename from test/net/integration/microLB/config.json
rename to test/integration/net/microLB/config.json
diff --git a/test/net/integration/microLB/drive/test.key b/test/integration/net/microLB/drive/test.key
similarity index 100%
rename from test/net/integration/microLB/drive/test.key
rename to test/integration/net/microLB/drive/test.key
diff --git a/test/net/integration/microLB/drive/test.pem b/test/integration/net/microLB/drive/test.pem
similarity index 100%
rename from test/net/integration/microLB/drive/test.pem
rename to test/integration/net/microLB/drive/test.pem
diff --git a/test/net/integration/microLB/server.js b/test/integration/net/microLB/server.js
similarity index 100%
rename from test/net/integration/microLB/server.js
rename to test/integration/net/microLB/server.js
diff --git a/test/net/integration/microLB/service.cpp b/test/integration/net/microLB/service.cpp
similarity index 100%
rename from test/net/integration/microLB/service.cpp
rename to test/integration/net/microLB/service.cpp
diff --git a/test/net/integration/microLB/setup.sh b/test/integration/net/microLB/setup.sh
similarity index 100%
rename from test/net/integration/microLB/setup.sh
rename to test/integration/net/microLB/setup.sh
diff --git a/test/net/integration/microLB/test.py b/test/integration/net/microLB/test.py
similarity index 100%
rename from test/net/integration/microLB/test.py
rename to test/integration/net/microLB/test.py
diff --git a/test/net/integration/microLB/vm.json b/test/integration/net/microLB/vm.json
similarity index 100%
rename from test/net/integration/microLB/vm.json
rename to test/integration/net/microLB/vm.json
diff --git a/test/net/integration/nat/CMakeLists.txt b/test/integration/net/nat/CMakeLists.txt
similarity index 100%
rename from test/net/integration/nat/CMakeLists.txt
rename to test/integration/net/nat/CMakeLists.txt
diff --git a/test/net/integration/nat/README.md b/test/integration/net/nat/README.md
similarity index 100%
rename from test/net/integration/nat/README.md
rename to test/integration/net/nat/README.md
diff --git a/test/net/integration/nat/service.cpp b/test/integration/net/nat/service.cpp
similarity index 100%
rename from test/net/integration/nat/service.cpp
rename to test/integration/net/nat/service.cpp
diff --git a/test/net/integration/nat/test.py b/test/integration/net/nat/test.py
similarity index 100%
rename from test/net/integration/nat/test.py
rename to test/integration/net/nat/test.py
diff --git a/test/net/integration/nat/vm.json b/test/integration/net/nat/vm.json
similarity index 100%
rename from test/net/integration/nat/vm.json
rename to test/integration/net/nat/vm.json
diff --git a/test/net/integration/router/CMakeLists.txt b/test/integration/net/router/CMakeLists.txt
similarity index 100%
rename from test/net/integration/router/CMakeLists.txt
rename to test/integration/net/router/CMakeLists.txt
diff --git a/test/net/integration/router/diagram.md b/test/integration/net/router/diagram.md
similarity index 100%
rename from test/net/integration/router/diagram.md
rename to test/integration/net/router/diagram.md
diff --git a/test/net/integration/router/service.cpp b/test/integration/net/router/service.cpp
similarity index 100%
rename from test/net/integration/router/service.cpp
rename to test/integration/net/router/service.cpp
diff --git a/test/net/integration/router/setup.sh b/test/integration/net/router/setup.sh
similarity index 100%
rename from test/net/integration/router/setup.sh
rename to test/integration/net/router/setup.sh
diff --git a/test/net/integration/router/test.py b/test/integration/net/router/test.py
similarity index 100%
rename from test/net/integration/router/test.py
rename to test/integration/net/router/test.py
diff --git a/test/net/integration/router/vm.json b/test/integration/net/router/vm.json
similarity index 100%
rename from test/net/integration/router/vm.json
rename to test/integration/net/router/vm.json
diff --git a/test/net/integration/router6/CMakeLists.txt b/test/integration/net/router6/CMakeLists.txt
similarity index 100%
rename from test/net/integration/router6/CMakeLists.txt
rename to test/integration/net/router6/CMakeLists.txt
diff --git a/test/net/integration/router6/README.md b/test/integration/net/router6/README.md
similarity index 100%
rename from test/net/integration/router6/README.md
rename to test/integration/net/router6/README.md
diff --git a/test/net/integration/router6/diagram.md b/test/integration/net/router6/diagram.md
similarity index 100%
rename from test/net/integration/router6/diagram.md
rename to test/integration/net/router6/diagram.md
diff --git a/test/net/integration/router6/service.cpp b/test/integration/net/router6/service.cpp
similarity index 100%
rename from test/net/integration/router6/service.cpp
rename to test/integration/net/router6/service.cpp
diff --git a/test/net/integration/router6/setup.sh b/test/integration/net/router6/setup.sh
similarity index 100%
rename from test/net/integration/router6/setup.sh
rename to test/integration/net/router6/setup.sh
diff --git a/test/net/integration/router6/test.py b/test/integration/net/router6/test.py
similarity index 100%
rename from test/net/integration/router6/test.py
rename to test/integration/net/router6/test.py
diff --git a/test/net/integration/router6/vm.json b/test/integration/net/router6/vm.json
similarity index 100%
rename from test/net/integration/router6/vm.json
rename to test/integration/net/router6/vm.json
diff --git a/test/net/integration/slaac/CMakeLists.txt b/test/integration/net/slaac/CMakeLists.txt
similarity index 100%
rename from test/net/integration/slaac/CMakeLists.txt
rename to test/integration/net/slaac/CMakeLists.txt
diff --git a/test/net/integration/slaac/README.md b/test/integration/net/slaac/README.md
similarity index 100%
rename from test/net/integration/slaac/README.md
rename to test/integration/net/slaac/README.md
diff --git a/test/net/integration/slaac/service.cpp b/test/integration/net/slaac/service.cpp
similarity index 100%
rename from test/net/integration/slaac/service.cpp
rename to test/integration/net/slaac/service.cpp
diff --git a/test/net/integration/slaac/test.py b/test/integration/net/slaac/test.py
similarity index 100%
rename from test/net/integration/slaac/test.py
rename to test/integration/net/slaac/test.py
diff --git a/test/net/integration/slaac/vm.json b/test/integration/net/slaac/vm.json
similarity index 100%
rename from test/net/integration/slaac/vm.json
rename to test/integration/net/slaac/vm.json
diff --git a/test/net/integration/tcp/.gitignore b/test/integration/net/tcp/.gitignore
similarity index 100%
rename from test/net/integration/tcp/.gitignore
rename to test/integration/net/tcp/.gitignore
diff --git a/test/net/integration/tcp/CMakeLists.txt b/test/integration/net/tcp/CMakeLists.txt
similarity index 100%
rename from test/net/integration/tcp/CMakeLists.txt
rename to test/integration/net/tcp/CMakeLists.txt
diff --git a/test/net/integration/tcp/README.md b/test/integration/net/tcp/README.md
similarity index 100%
rename from test/net/integration/tcp/README.md
rename to test/integration/net/tcp/README.md
diff --git a/test/net/integration/tcp/debug.py b/test/integration/net/tcp/debug.py
similarity index 100%
rename from test/net/integration/tcp/debug.py
rename to test/integration/net/tcp/debug.py
diff --git a/test/net/integration/tcp/linux/CMakeLists.txt b/test/integration/net/tcp/linux/CMakeLists.txt
similarity index 100%
rename from test/net/integration/tcp/linux/CMakeLists.txt
rename to test/integration/net/tcp/linux/CMakeLists.txt
diff --git a/test/net/integration/tcp/linux/run.sh b/test/integration/net/tcp/linux/run.sh
similarity index 100%
rename from test/net/integration/tcp/linux/run.sh
rename to test/integration/net/tcp/linux/run.sh
diff --git a/test/net/integration/tcp/service.cpp b/test/integration/net/tcp/service.cpp
similarity index 100%
rename from test/net/integration/tcp/service.cpp
rename to test/integration/net/tcp/service.cpp
diff --git a/test/net/integration/tcp/test.py b/test/integration/net/tcp/test.py
similarity index 100%
rename from test/net/integration/tcp/test.py
rename to test/integration/net/tcp/test.py
diff --git a/test/net/integration/tcp/vm.json b/test/integration/net/tcp/vm.json
similarity index 100%
rename from test/net/integration/tcp/vm.json
rename to test/integration/net/tcp/vm.json
diff --git a/test/net/integration/udp/CMakeLists.txt b/test/integration/net/udp/CMakeLists.txt
similarity index 100%
rename from test/net/integration/udp/CMakeLists.txt
rename to test/integration/net/udp/CMakeLists.txt
diff --git a/test/net/integration/udp/README.md b/test/integration/net/udp/README.md
similarity index 100%
rename from test/net/integration/udp/README.md
rename to test/integration/net/udp/README.md
diff --git a/test/net/integration/udp/service.cpp b/test/integration/net/udp/service.cpp
similarity index 100%
rename from test/net/integration/udp/service.cpp
rename to test/integration/net/udp/service.cpp
diff --git a/test/net/integration/udp/test.py b/test/integration/net/udp/test.py
similarity index 100%
rename from test/net/integration/udp/test.py
rename to test/integration/net/udp/test.py
diff --git a/test/net/integration/udp/vm.json b/test/integration/net/udp/vm.json
similarity index 100%
rename from test/net/integration/udp/vm.json
rename to test/integration/net/udp/vm.json
diff --git a/test/net/integration/vlan/CMakeLists.txt b/test/integration/net/vlan/CMakeLists.txt
similarity index 100%
rename from test/net/integration/vlan/CMakeLists.txt
rename to test/integration/net/vlan/CMakeLists.txt
diff --git a/test/net/integration/vlan/README.md b/test/integration/net/vlan/README.md
similarity index 100%
rename from test/net/integration/vlan/README.md
rename to test/integration/net/vlan/README.md
diff --git a/test/net/integration/vlan/config.json b/test/integration/net/vlan/config.json
similarity index 100%
rename from test/net/integration/vlan/config.json
rename to test/integration/net/vlan/config.json
diff --git a/test/net/integration/vlan/service.cpp b/test/integration/net/vlan/service.cpp
similarity index 100%
rename from test/net/integration/vlan/service.cpp
rename to test/integration/net/vlan/service.cpp
diff --git a/test/net/integration/vlan/test.py b/test/integration/net/vlan/test.py
similarity index 100%
rename from test/net/integration/vlan/test.py
rename to test/integration/net/vlan/test.py
diff --git a/test/net/integration/vlan/vm.json b/test/integration/net/vlan/vm.json
similarity index 100%
rename from test/net/integration/vlan/vm.json
rename to test/integration/net/vlan/vm.json
diff --git a/test/net/integration/websocket/CMakeLists.txt b/test/integration/net/websocket/CMakeLists.txt
similarity index 100%
rename from test/net/integration/websocket/CMakeLists.txt
rename to test/integration/net/websocket/CMakeLists.txt
diff --git a/test/net/integration/websocket/service.cpp b/test/integration/net/websocket/service.cpp
similarity index 100%
rename from test/net/integration/websocket/service.cpp
rename to test/integration/net/websocket/service.cpp
diff --git a/test/net/integration/websocket/setup.sh b/test/integration/net/websocket/setup.sh
similarity index 100%
rename from test/net/integration/websocket/setup.sh
rename to test/integration/net/websocket/setup.sh
diff --git a/test/net/integration/websocket/test.py b/test/integration/net/websocket/test.py
similarity index 100%
rename from test/net/integration/websocket/test.py
rename to test/integration/net/websocket/test.py
diff --git a/test/net/integration/websocket/vm.json b/test/integration/net/websocket/vm.json
similarity index 100%
rename from test/net/integration/websocket/vm.json
rename to test/integration/net/websocket/vm.json
diff --git a/test/performance/.keep b/test/integration/performance/.keep
similarity index 100%
rename from test/performance/.keep
rename to test/integration/performance/.keep
diff --git a/test/plugin/integration/unik/CMakeLists.txt b/test/integration/plugin/unik/CMakeLists.txt
similarity index 100%
rename from test/plugin/integration/unik/CMakeLists.txt
rename to test/integration/plugin/unik/CMakeLists.txt
diff --git a/test/plugin/integration/unik/README.md b/test/integration/plugin/unik/README.md
similarity index 100%
rename from test/plugin/integration/unik/README.md
rename to test/integration/plugin/unik/README.md
diff --git a/test/plugin/integration/unik/service.cpp b/test/integration/plugin/unik/service.cpp
similarity index 100%
rename from test/plugin/integration/unik/service.cpp
rename to test/integration/plugin/unik/service.cpp
diff --git a/test/plugin/integration/unik/test.py b/test/integration/plugin/unik/test.py
similarity index 100%
rename from test/plugin/integration/unik/test.py
rename to test/integration/plugin/unik/test.py
diff --git a/test/plugin/integration/unik/vm.json b/test/integration/plugin/unik/vm.json
similarity index 100%
rename from test/plugin/integration/unik/vm.json
rename to test/integration/plugin/unik/vm.json
diff --git a/test/posix/integration/conf/CMakeLists.txt b/test/integration/posix/conf/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/conf/CMakeLists.txt
rename to test/integration/posix/conf/CMakeLists.txt
diff --git a/test/posix/integration/conf/config.json b/test/integration/posix/conf/config.json
similarity index 100%
rename from test/posix/integration/conf/config.json
rename to test/integration/posix/conf/config.json
diff --git a/test/posix/integration/conf/disk/files/passwd b/test/integration/posix/conf/disk/files/passwd
similarity index 100%
rename from test/posix/integration/conf/disk/files/passwd
rename to test/integration/posix/conf/disk/files/passwd
diff --git a/test/posix/integration/conf/service.cpp b/test/integration/posix/conf/service.cpp
similarity index 100%
rename from test/posix/integration/conf/service.cpp
rename to test/integration/posix/conf/service.cpp
diff --git a/test/posix/integration/conf/test.py b/test/integration/posix/conf/test.py
similarity index 100%
rename from test/posix/integration/conf/test.py
rename to test/integration/posix/conf/test.py
diff --git a/test/posix/integration/conf/test_pathconf.c b/test/integration/posix/conf/test_pathconf.c
similarity index 100%
rename from test/posix/integration/conf/test_pathconf.c
rename to test/integration/posix/conf/test_pathconf.c
diff --git a/test/posix/integration/conf/test_pwd.c b/test/integration/posix/conf/test_pwd.c
similarity index 100%
rename from test/posix/integration/conf/test_pwd.c
rename to test/integration/posix/conf/test_pwd.c
diff --git a/test/posix/integration/conf/test_sysconf.c b/test/integration/posix/conf/test_sysconf.c
similarity index 100%
rename from test/posix/integration/conf/test_sysconf.c
rename to test/integration/posix/conf/test_sysconf.c
diff --git a/test/posix/integration/conf/vm.json b/test/integration/posix/conf/vm.json
similarity index 100%
rename from test/posix/integration/conf/vm.json
rename to test/integration/posix/conf/vm.json
diff --git a/test/posix/integration/file_fd/.gitignore b/test/integration/posix/file_fd/.gitignore
similarity index 100%
rename from test/posix/integration/file_fd/.gitignore
rename to test/integration/posix/file_fd/.gitignore
diff --git a/test/posix/integration/file_fd/CMakeLists.txt b/test/integration/posix/file_fd/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/file_fd/CMakeLists.txt
rename to test/integration/posix/file_fd/CMakeLists.txt
diff --git a/test/posix/integration/file_fd/README.md b/test/integration/posix/file_fd/README.md
similarity index 100%
rename from test/posix/integration/file_fd/README.md
rename to test/integration/posix/file_fd/README.md
diff --git a/test/posix/integration/file_fd/config.json b/test/integration/posix/file_fd/config.json
similarity index 100%
rename from test/posix/integration/file_fd/config.json
rename to test/integration/posix/file_fd/config.json
diff --git a/test/posix/integration/file_fd/disk/file1 b/test/integration/posix/file_fd/disk/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/file1
rename to test/integration/posix/file_fd/disk/file1
diff --git a/test/posix/integration/file_fd/disk/file2 b/test/integration/posix/file_fd/disk/file2
similarity index 100%
rename from test/posix/integration/file_fd/disk/file2
rename to test/integration/posix/file_fd/disk/file2
diff --git a/test/posix/integration/file_fd/disk/file3 b/test/integration/posix/file_fd/disk/file3
similarity index 100%
rename from test/posix/integration/file_fd/disk/file3
rename to test/integration/posix/file_fd/disk/file3
diff --git a/test/posix/integration/file_fd/disk/folder1/file1 b/test/integration/posix/file_fd/disk/folder1/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder1/file1
rename to test/integration/posix/file_fd/disk/folder1/file1
diff --git a/test/posix/integration/file_fd/disk/folder1/file2 b/test/integration/posix/file_fd/disk/folder1/file2
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder1/file2
rename to test/integration/posix/file_fd/disk/folder1/file2
diff --git a/test/posix/integration/file_fd/disk/folder1/foldera/file1 b/test/integration/posix/file_fd/disk/folder1/foldera/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder1/foldera/file1
rename to test/integration/posix/file_fd/disk/folder1/foldera/file1
diff --git a/test/posix/integration/file_fd/disk/folder1/folderb/file1 b/test/integration/posix/file_fd/disk/folder1/folderb/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder1/folderb/file1
rename to test/integration/posix/file_fd/disk/folder1/folderb/file1
diff --git a/test/posix/integration/file_fd/disk/folder1/folderc/file1 b/test/integration/posix/file_fd/disk/folder1/folderc/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder1/folderc/file1
rename to test/integration/posix/file_fd/disk/folder1/folderc/file1
diff --git a/test/posix/integration/file_fd/disk/folder2/file1 b/test/integration/posix/file_fd/disk/folder2/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder2/file1
rename to test/integration/posix/file_fd/disk/folder2/file1
diff --git a/test/posix/integration/file_fd/disk/folder3/file1 b/test/integration/posix/file_fd/disk/folder3/file1
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder3/file1
rename to test/integration/posix/file_fd/disk/folder3/file1
diff --git a/test/posix/integration/file_fd/disk/folder3/file2 b/test/integration/posix/file_fd/disk/folder3/file2
similarity index 100%
rename from test/posix/integration/file_fd/disk/folder3/file2
rename to test/integration/posix/file_fd/disk/folder3/file2
diff --git a/test/posix/integration/file_fd/run.sh b/test/integration/posix/file_fd/run.sh
similarity index 100%
rename from test/posix/integration/file_fd/run.sh
rename to test/integration/posix/file_fd/run.sh
diff --git a/test/posix/integration/file_fd/test.py b/test/integration/posix/file_fd/test.py
similarity index 100%
rename from test/posix/integration/file_fd/test.py
rename to test/integration/posix/file_fd/test.py
diff --git a/test/posix/integration/file_fd/test_file_fd.cpp b/test/integration/posix/file_fd/test_file_fd.cpp
similarity index 100%
rename from test/posix/integration/file_fd/test_file_fd.cpp
rename to test/integration/posix/file_fd/test_file_fd.cpp
diff --git a/test/posix/integration/file_fd/vm.json b/test/integration/posix/file_fd/vm.json
similarity index 100%
rename from test/posix/integration/file_fd/vm.json
rename to test/integration/posix/file_fd/vm.json
diff --git a/test/posix/integration/main/CMakeLists.txt b/test/integration/posix/main/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/main/CMakeLists.txt
rename to test/integration/posix/main/CMakeLists.txt
diff --git a/test/posix/integration/main/README.md b/test/integration/posix/main/README.md
similarity index 100%
rename from test/posix/integration/main/README.md
rename to test/integration/posix/main/README.md
diff --git a/test/posix/integration/main/main_no_params.cpp b/test/integration/posix/main/main_no_params.cpp
similarity index 100%
rename from test/posix/integration/main/main_no_params.cpp
rename to test/integration/posix/main/main_no_params.cpp
diff --git a/test/posix/integration/main/service.cpp b/test/integration/posix/main/service.cpp
similarity index 100%
rename from test/posix/integration/main/service.cpp
rename to test/integration/posix/main/service.cpp
diff --git a/test/posix/integration/main/test.py b/test/integration/posix/main/test.py
similarity index 100%
rename from test/posix/integration/main/test.py
rename to test/integration/posix/main/test.py
diff --git a/test/posix/integration/pthread/CMakeLists.txt b/test/integration/posix/pthread/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/pthread/CMakeLists.txt
rename to test/integration/posix/pthread/CMakeLists.txt
diff --git a/test/posix/integration/pthread/README.md b/test/integration/posix/pthread/README.md
similarity index 100%
rename from test/posix/integration/pthread/README.md
rename to test/integration/posix/pthread/README.md
diff --git a/test/posix/integration/pthread/service.cpp b/test/integration/posix/pthread/service.cpp
similarity index 100%
rename from test/posix/integration/pthread/service.cpp
rename to test/integration/posix/pthread/service.cpp
diff --git a/test/posix/integration/pthread/test.py b/test/integration/posix/pthread/test.py
similarity index 100%
rename from test/posix/integration/pthread/test.py
rename to test/integration/posix/pthread/test.py
diff --git a/test/posix/integration/stat/.gitignore b/test/integration/posix/stat/.gitignore
similarity index 100%
rename from test/posix/integration/stat/.gitignore
rename to test/integration/posix/stat/.gitignore
diff --git a/test/posix/integration/stat/CMakeLists.txt b/test/integration/posix/stat/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/stat/CMakeLists.txt
rename to test/integration/posix/stat/CMakeLists.txt
diff --git a/test/posix/integration/stat/README.md b/test/integration/posix/stat/README.md
similarity index 100%
rename from test/posix/integration/stat/README.md
rename to test/integration/posix/stat/README.md
diff --git a/test/posix/integration/stat/config.json b/test/integration/posix/stat/config.json
similarity index 100%
rename from test/posix/integration/stat/config.json
rename to test/integration/posix/stat/config.json
diff --git a/test/posix/integration/stat/disk/file1 b/test/integration/posix/stat/disk/file1
similarity index 100%
rename from test/posix/integration/stat/disk/file1
rename to test/integration/posix/stat/disk/file1
diff --git a/test/posix/integration/stat/disk/file2 b/test/integration/posix/stat/disk/file2
similarity index 100%
rename from test/posix/integration/stat/disk/file2
rename to test/integration/posix/stat/disk/file2
diff --git a/test/posix/integration/stat/disk/file3 b/test/integration/posix/stat/disk/file3
similarity index 100%
rename from test/posix/integration/stat/disk/file3
rename to test/integration/posix/stat/disk/file3
diff --git a/test/posix/integration/stat/disk/folder1/file1 b/test/integration/posix/stat/disk/folder1/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder1/file1
rename to test/integration/posix/stat/disk/folder1/file1
diff --git a/test/posix/integration/stat/disk/folder1/file2 b/test/integration/posix/stat/disk/folder1/file2
similarity index 100%
rename from test/posix/integration/stat/disk/folder1/file2
rename to test/integration/posix/stat/disk/folder1/file2
diff --git a/test/posix/integration/stat/disk/folder1/foldera/file1 b/test/integration/posix/stat/disk/folder1/foldera/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder1/foldera/file1
rename to test/integration/posix/stat/disk/folder1/foldera/file1
diff --git a/test/posix/integration/stat/disk/folder1/folderb/file1 b/test/integration/posix/stat/disk/folder1/folderb/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder1/folderb/file1
rename to test/integration/posix/stat/disk/folder1/folderb/file1
diff --git a/test/posix/integration/stat/disk/folder1/folderc/file1 b/test/integration/posix/stat/disk/folder1/folderc/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder1/folderc/file1
rename to test/integration/posix/stat/disk/folder1/folderc/file1
diff --git a/test/posix/integration/stat/disk/folder2/file1 b/test/integration/posix/stat/disk/folder2/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder2/file1
rename to test/integration/posix/stat/disk/folder2/file1
diff --git a/test/posix/integration/stat/disk/folder3/file1 b/test/integration/posix/stat/disk/folder3/file1
similarity index 100%
rename from test/posix/integration/stat/disk/folder3/file1
rename to test/integration/posix/stat/disk/folder3/file1
diff --git a/test/posix/integration/stat/disk/folder3/file2 b/test/integration/posix/stat/disk/folder3/file2
similarity index 100%
rename from test/posix/integration/stat/disk/folder3/file2
rename to test/integration/posix/stat/disk/folder3/file2
diff --git a/test/posix/integration/stat/ftw_tests.cpp b/test/integration/posix/stat/ftw_tests.cpp
similarity index 100%
rename from test/posix/integration/stat/ftw_tests.cpp
rename to test/integration/posix/stat/ftw_tests.cpp
diff --git a/test/posix/integration/stat/run.sh b/test/integration/posix/stat/run.sh
similarity index 100%
rename from test/posix/integration/stat/run.sh
rename to test/integration/posix/stat/run.sh
diff --git a/test/posix/integration/stat/stat_tests.cpp b/test/integration/posix/stat/stat_tests.cpp
similarity index 100%
rename from test/posix/integration/stat/stat_tests.cpp
rename to test/integration/posix/stat/stat_tests.cpp
diff --git a/test/posix/integration/stat/test.py b/test/integration/posix/stat/test.py
similarity index 100%
rename from test/posix/integration/stat/test.py
rename to test/integration/posix/stat/test.py
diff --git a/test/posix/integration/stat/test_stat_ftw.cpp b/test/integration/posix/stat/test_stat_ftw.cpp
similarity index 100%
rename from test/posix/integration/stat/test_stat_ftw.cpp
rename to test/integration/posix/stat/test_stat_ftw.cpp
diff --git a/test/posix/integration/stat/vm.json b/test/integration/posix/stat/vm.json
similarity index 100%
rename from test/posix/integration/stat/vm.json
rename to test/integration/posix/stat/vm.json
diff --git a/test/posix/integration/syslog_default/CMakeLists.txt b/test/integration/posix/syslog_default/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/syslog_default/CMakeLists.txt
rename to test/integration/posix/syslog_default/CMakeLists.txt
diff --git a/test/posix/integration/syslog_default/README.md b/test/integration/posix/syslog_default/README.md
similarity index 100%
rename from test/posix/integration/syslog_default/README.md
rename to test/integration/posix/syslog_default/README.md
diff --git a/test/posix/integration/syslog_default/service.cpp b/test/integration/posix/syslog_default/service.cpp
similarity index 100%
rename from test/posix/integration/syslog_default/service.cpp
rename to test/integration/posix/syslog_default/service.cpp
diff --git a/test/posix/integration/syslog_default/test.py b/test/integration/posix/syslog_default/test.py
similarity index 100%
rename from test/posix/integration/syslog_default/test.py
rename to test/integration/posix/syslog_default/test.py
diff --git a/test/posix/integration/syslog_default/vm.json b/test/integration/posix/syslog_default/vm.json
similarity index 100%
rename from test/posix/integration/syslog_default/vm.json
rename to test/integration/posix/syslog_default/vm.json
diff --git a/test/posix/integration/syslog_plugin/CMakeLists.txt b/test/integration/posix/syslog_plugin/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/syslog_plugin/CMakeLists.txt
rename to test/integration/posix/syslog_plugin/CMakeLists.txt
diff --git a/test/posix/integration/syslog_plugin/README.md b/test/integration/posix/syslog_plugin/README.md
similarity index 100%
rename from test/posix/integration/syslog_plugin/README.md
rename to test/integration/posix/syslog_plugin/README.md
diff --git a/test/posix/integration/syslog_plugin/config.json b/test/integration/posix/syslog_plugin/config.json
similarity index 100%
rename from test/posix/integration/syslog_plugin/config.json
rename to test/integration/posix/syslog_plugin/config.json
diff --git a/test/posix/integration/syslog_plugin/service.cpp b/test/integration/posix/syslog_plugin/service.cpp
similarity index 100%
rename from test/posix/integration/syslog_plugin/service.cpp
rename to test/integration/posix/syslog_plugin/service.cpp
diff --git a/test/posix/integration/syslog_plugin/test.py b/test/integration/posix/syslog_plugin/test.py
similarity index 100%
rename from test/posix/integration/syslog_plugin/test.py
rename to test/integration/posix/syslog_plugin/test.py
diff --git a/test/posix/integration/syslog_plugin/vm.json b/test/integration/posix/syslog_plugin/vm.json
similarity index 100%
rename from test/posix/integration/syslog_plugin/vm.json
rename to test/integration/posix/syslog_plugin/vm.json
diff --git a/test/posix/integration/tcp/CMakeLists.txt b/test/integration/posix/tcp/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/tcp/CMakeLists.txt
rename to test/integration/posix/tcp/CMakeLists.txt
diff --git a/test/posix/integration/tcp/README.md b/test/integration/posix/tcp/README.md
similarity index 100%
rename from test/posix/integration/tcp/README.md
rename to test/integration/posix/tcp/README.md
diff --git a/test/posix/integration/tcp/service.cpp b/test/integration/posix/tcp/service.cpp
similarity index 100%
rename from test/posix/integration/tcp/service.cpp
rename to test/integration/posix/tcp/service.cpp
diff --git a/test/posix/integration/tcp/test.py b/test/integration/posix/tcp/test.py
similarity index 100%
rename from test/posix/integration/tcp/test.py
rename to test/integration/posix/tcp/test.py
diff --git a/test/posix/integration/tcp/vm.json b/test/integration/posix/tcp/vm.json
similarity index 100%
rename from test/posix/integration/tcp/vm.json
rename to test/integration/posix/tcp/vm.json
diff --git a/test/posix/integration/udp/.gitignore b/test/integration/posix/udp/.gitignore
similarity index 100%
rename from test/posix/integration/udp/.gitignore
rename to test/integration/posix/udp/.gitignore
diff --git a/test/posix/integration/udp/CMakeLists.txt b/test/integration/posix/udp/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/udp/CMakeLists.txt
rename to test/integration/posix/udp/CMakeLists.txt
diff --git a/test/posix/integration/udp/README.md b/test/integration/posix/udp/README.md
similarity index 100%
rename from test/posix/integration/udp/README.md
rename to test/integration/posix/udp/README.md
diff --git a/test/posix/integration/udp/service.cpp b/test/integration/posix/udp/service.cpp
similarity index 100%
rename from test/posix/integration/udp/service.cpp
rename to test/integration/posix/udp/service.cpp
diff --git a/test/posix/integration/udp/test.py b/test/integration/posix/udp/test.py
similarity index 100%
rename from test/posix/integration/udp/test.py
rename to test/integration/posix/udp/test.py
diff --git a/test/posix/integration/udp/vm.json b/test/integration/posix/udp/vm.json
similarity index 100%
rename from test/posix/integration/udp/vm.json
rename to test/integration/posix/udp/vm.json
diff --git a/test/posix/integration/utsname/CMakeLists.txt b/test/integration/posix/utsname/CMakeLists.txt
similarity index 100%
rename from test/posix/integration/utsname/CMakeLists.txt
rename to test/integration/posix/utsname/CMakeLists.txt
diff --git a/test/posix/integration/utsname/README.md b/test/integration/posix/utsname/README.md
similarity index 100%
rename from test/posix/integration/utsname/README.md
rename to test/integration/posix/utsname/README.md
diff --git a/test/posix/integration/utsname/service.cpp b/test/integration/posix/utsname/service.cpp
similarity index 100%
rename from test/posix/integration/utsname/service.cpp
rename to test/integration/posix/utsname/service.cpp
diff --git a/test/posix/integration/utsname/test.py b/test/integration/posix/utsname/test.py
similarity index 100%
rename from test/posix/integration/utsname/test.py
rename to test/integration/posix/utsname/test.py
diff --git a/test/posix/integration/utsname/vm.json b/test/integration/posix/utsname/vm.json
similarity index 100%
rename from test/posix/integration/utsname/vm.json
rename to test/integration/posix/utsname/vm.json
diff --git a/test/stl/integration/coroutines/CMakeLists.txt b/test/integration/stl/coroutines/CMakeLists.txt
similarity index 100%
rename from test/stl/integration/coroutines/CMakeLists.txt
rename to test/integration/stl/coroutines/CMakeLists.txt
diff --git a/test/stl/integration/coroutines/README.md b/test/integration/stl/coroutines/README.md
similarity index 100%
rename from test/stl/integration/coroutines/README.md
rename to test/integration/stl/coroutines/README.md
diff --git a/test/stl/integration/coroutines/service.cpp b/test/integration/stl/coroutines/service.cpp
similarity index 100%
rename from test/stl/integration/coroutines/service.cpp
rename to test/integration/stl/coroutines/service.cpp
diff --git a/test/stl/integration/coroutines/test.py b/test/integration/stl/coroutines/test.py
similarity index 100%
rename from test/stl/integration/coroutines/test.py
rename to test/integration/stl/coroutines/test.py
diff --git a/test/stl/integration/coroutines/vm.json b/test/integration/stl/coroutines/vm.json
similarity index 100%
rename from test/stl/integration/coroutines/vm.json
rename to test/integration/stl/coroutines/vm.json
diff --git a/test/stl/integration/crt/CMakeLists.txt b/test/integration/stl/crt/CMakeLists.txt
similarity index 100%
rename from test/stl/integration/crt/CMakeLists.txt
rename to test/integration/stl/crt/CMakeLists.txt
diff --git a/test/stl/integration/crt/README.md b/test/integration/stl/crt/README.md
similarity index 100%
rename from test/stl/integration/crt/README.md
rename to test/integration/stl/crt/README.md
diff --git a/test/stl/integration/crt/service.cpp b/test/integration/stl/crt/service.cpp
similarity index 100%
rename from test/stl/integration/crt/service.cpp
rename to test/integration/stl/crt/service.cpp
diff --git a/test/stl/integration/crt/test.py b/test/integration/stl/crt/test.py
similarity index 100%
rename from test/stl/integration/crt/test.py
rename to test/integration/stl/crt/test.py
diff --git a/test/stl/integration/exceptions/.gitignore b/test/integration/stl/exceptions/.gitignore
similarity index 100%
rename from test/stl/integration/exceptions/.gitignore
rename to test/integration/stl/exceptions/.gitignore
diff --git a/test/stl/integration/exceptions/CMakeLists.txt b/test/integration/stl/exceptions/CMakeLists.txt
similarity index 100%
rename from test/stl/integration/exceptions/CMakeLists.txt
rename to test/integration/stl/exceptions/CMakeLists.txt
diff --git a/test/stl/integration/exceptions/README.md b/test/integration/stl/exceptions/README.md
similarity index 100%
rename from test/stl/integration/exceptions/README.md
rename to test/integration/stl/exceptions/README.md
diff --git a/test/stl/integration/exceptions/service.cpp b/test/integration/stl/exceptions/service.cpp
similarity index 100%
rename from test/stl/integration/exceptions/service.cpp
rename to test/integration/stl/exceptions/service.cpp
diff --git a/test/stl/integration/exceptions/test.py b/test/integration/stl/exceptions/test.py
similarity index 100%
rename from test/stl/integration/exceptions/test.py
rename to test/integration/stl/exceptions/test.py
diff --git a/test/stl/integration/exceptions/vm.json b/test/integration/stl/exceptions/vm.json
similarity index 100%
rename from test/stl/integration/exceptions/vm.json
rename to test/integration/stl/exceptions/vm.json
diff --git a/test/stl/integration/stl/CMakeLists.txt b/test/integration/stl/stl/CMakeLists.txt
similarity index 100%
rename from test/stl/integration/stl/CMakeLists.txt
rename to test/integration/stl/stl/CMakeLists.txt
diff --git a/test/stl/integration/stl/README.md b/test/integration/stl/stl/README.md
similarity index 100%
rename from test/stl/integration/stl/README.md
rename to test/integration/stl/stl/README.md
diff --git a/test/stl/integration/stl/service.cpp b/test/integration/stl/stl/service.cpp
similarity index 100%
rename from test/stl/integration/stl/service.cpp
rename to test/integration/stl/stl/service.cpp
diff --git a/test/stl/integration/stl/test.py b/test/integration/stl/stl/test.py
similarity index 100%
rename from test/stl/integration/stl/test.py
rename to test/integration/stl/stl/test.py
diff --git a/test/util/integration/tar/CMakeLists.txt b/test/integration/util/tar/CMakeLists.txt
similarity index 100%
rename from test/util/integration/tar/CMakeLists.txt
rename to test/integration/util/tar/CMakeLists.txt
diff --git a/test/util/integration/tar/README.md b/test/integration/util/tar/README.md
similarity index 100%
rename from test/util/integration/tar/README.md
rename to test/integration/util/tar/README.md
diff --git a/test/util/integration/tar/service.cpp b/test/integration/util/tar/service.cpp
similarity index 100%
rename from test/util/integration/tar/service.cpp
rename to test/integration/util/tar/service.cpp
diff --git a/test/util/integration/tar/tar_example/first_file.txt b/test/integration/util/tar/tar_example/first_file.txt
similarity index 100%
rename from test/util/integration/tar/tar_example/first_file.txt
rename to test/integration/util/tar/tar_example/first_file.txt
diff --git a/test/util/integration/tar/tar_example/l1_f1/l2/README.md b/test/integration/util/tar/tar_example/l1_f1/l2/README.md
similarity index 100%
rename from test/util/integration/tar/tar_example/l1_f1/l2/README.md
rename to test/integration/util/tar/tar_example/l1_f1/l2/README.md
diff --git a/test/util/integration/tar/tar_example/l1_f1/l2/service.cpp b/test/integration/util/tar/tar_example/l1_f1/l2/service.cpp
similarity index 100%
rename from test/util/integration/tar/tar_example/l1_f1/l2/service.cpp
rename to test/integration/util/tar/tar_example/l1_f1/l2/service.cpp
diff --git a/test/util/integration/tar/tar_example/l1_f1/service.cpp b/test/integration/util/tar/tar_example/l1_f1/service.cpp
similarity index 100%
rename from test/util/integration/tar/tar_example/l1_f1/service.cpp
rename to test/integration/util/tar/tar_example/l1_f1/service.cpp
diff --git a/test/util/integration/tar/tar_example/l1_f2/virtio.hpp b/test/integration/util/tar/tar_example/l1_f2/virtio.hpp
similarity index 100%
rename from test/util/integration/tar/tar_example/l1_f2/virtio.hpp
rename to test/integration/util/tar/tar_example/l1_f2/virtio.hpp
diff --git a/test/util/integration/tar/tar_example/second_file.md b/test/integration/util/tar/tar_example/second_file.md
similarity index 100%
rename from test/util/integration/tar/tar_example/second_file.md
rename to test/integration/util/tar/tar_example/second_file.md
diff --git a/test/util/integration/tar/test.py b/test/integration/util/tar/test.py
similarity index 100%
rename from test/util/integration/tar/test.py
rename to test/integration/util/tar/test.py
diff --git a/test/util/integration/tar/vm.json b/test/integration/util/tar/vm.json
similarity index 100%
rename from test/util/integration/tar/vm.json
rename to test/integration/util/tar/vm.json
diff --git a/test/util/integration/tar_gz/CMakeLists.txt b/test/integration/util/tar_gz/CMakeLists.txt
similarity index 100%
rename from test/util/integration/tar_gz/CMakeLists.txt
rename to test/integration/util/tar_gz/CMakeLists.txt
diff --git a/test/util/integration/tar_gz/README.md b/test/integration/util/tar_gz/README.md
similarity index 100%
rename from test/util/integration/tar_gz/README.md
rename to test/integration/util/tar_gz/README.md
diff --git a/test/util/integration/tar_gz/service.cpp b/test/integration/util/tar_gz/service.cpp
similarity index 100%
rename from test/util/integration/tar_gz/service.cpp
rename to test/integration/util/tar_gz/service.cpp
diff --git a/test/util/integration/tar_gz/tar_example/first_file.txt b/test/integration/util/tar_gz/tar_example/first_file.txt
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/first_file.txt
rename to test/integration/util/tar_gz/tar_example/first_file.txt
diff --git a/test/util/integration/tar_gz/tar_example/l1_f1/l2/README.md b/test/integration/util/tar_gz/tar_example/l1_f1/l2/README.md
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/l1_f1/l2/README.md
rename to test/integration/util/tar_gz/tar_example/l1_f1/l2/README.md
diff --git a/test/util/integration/tar_gz/tar_example/l1_f1/l2/service.cpp b/test/integration/util/tar_gz/tar_example/l1_f1/l2/service.cpp
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/l1_f1/l2/service.cpp
rename to test/integration/util/tar_gz/tar_example/l1_f1/l2/service.cpp
diff --git a/test/util/integration/tar_gz/tar_example/l1_f1/service.cpp b/test/integration/util/tar_gz/tar_example/l1_f1/service.cpp
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/l1_f1/service.cpp
rename to test/integration/util/tar_gz/tar_example/l1_f1/service.cpp
diff --git a/test/util/integration/tar_gz/tar_example/l1_f2/virtio.hpp b/test/integration/util/tar_gz/tar_example/l1_f2/virtio.hpp
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/l1_f2/virtio.hpp
rename to test/integration/util/tar_gz/tar_example/l1_f2/virtio.hpp
diff --git a/test/util/integration/tar_gz/tar_example/second_file.md b/test/integration/util/tar_gz/tar_example/second_file.md
similarity index 100%
rename from test/util/integration/tar_gz/tar_example/second_file.md
rename to test/integration/util/tar_gz/tar_example/second_file.md
diff --git a/test/util/integration/tar_gz/test.py b/test/integration/util/tar_gz/test.py
similarity index 100%
rename from test/util/integration/tar_gz/test.py
rename to test/integration/util/tar_gz/test.py
diff --git a/test/util/integration/tar_gz/vm.json b/test/integration/util/tar_gz/vm.json
similarity index 100%
rename from test/util/integration/tar_gz/vm.json
rename to test/integration/util/tar_gz/vm.json
diff --git a/test/lest b/test/lest
deleted file mode 160000
index bea252eec4..0000000000
--- a/test/lest
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit bea252eec4bc4e0e9fbfd3d4533251d998517cb8
diff --git a/test/lest_util/common.cxx b/test/misc/lest_util/common.cxx
similarity index 100%
rename from test/lest_util/common.cxx
rename to test/misc/lest_util/common.cxx
diff --git a/test/lest_util/lestmain.cxx b/test/misc/lest_util/lestmain.cxx
similarity index 100%
rename from test/lest_util/lestmain.cxx
rename to test/misc/lest_util/lestmain.cxx
diff --git a/test/lest_util/malloc.h b/test/misc/lest_util/malloc.h
similarity index 100%
rename from test/lest_util/malloc.h
rename to test/misc/lest_util/malloc.h
diff --git a/test/lest_util/mock_fs.cpp b/test/misc/lest_util/mock_fs.cpp
similarity index 100%
rename from test/lest_util/mock_fs.cpp
rename to test/misc/lest_util/mock_fs.cpp
diff --git a/test/lest_util/mock_fs.hpp b/test/misc/lest_util/mock_fs.hpp
similarity index 100%
rename from test/lest_util/mock_fs.hpp
rename to test/misc/lest_util/mock_fs.hpp
diff --git a/test/lest_util/nic_mock.hpp b/test/misc/lest_util/nic_mock.hpp
similarity index 100%
rename from test/lest_util/nic_mock.hpp
rename to test/misc/lest_util/nic_mock.hpp
diff --git a/test/lest_util/os_mock.cpp b/test/misc/lest_util/os_mock.cpp
similarity index 100%
rename from test/lest_util/os_mock.cpp
rename to test/misc/lest_util/os_mock.cpp
diff --git a/test/lest_util/packet_factory.hpp b/test/misc/lest_util/packet_factory.hpp
similarity index 100%
rename from test/lest_util/packet_factory.hpp
rename to test/misc/lest_util/packet_factory.hpp
diff --git a/test/lest_util/posix_strace.hpp b/test/misc/lest_util/posix_strace.hpp
similarity index 100%
rename from test/lest_util/posix_strace.hpp
rename to test/misc/lest_util/posix_strace.hpp
diff --git a/test/lest_util/random.cpp b/test/misc/lest_util/random.cpp
similarity index 100%
rename from test/lest_util/random.cpp
rename to test/misc/lest_util/random.cpp
diff --git a/test/lest_util/stdlib.h b/test/misc/lest_util/stdlib.h
similarity index 100%
rename from test/lest_util/stdlib.h
rename to test/misc/lest_util/stdlib.h
diff --git a/test_solo5_hvt.sh b/test/misc/test_solo5_hvt.sh
similarity index 55%
rename from test_solo5_hvt.sh
rename to test/misc/test_solo5_hvt.sh
index dbdec23238..c463323ff5 100755
--- a/test_solo5_hvt.sh
+++ b/test/misc/test_solo5_hvt.sh
@@ -1,5 +1,8 @@
#! /bin/bash
-. ./etc/set_traps.sh
+set -e # Exit immediately on error (we're trapping the exit signal)
+trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG
+trap 'echo -e "\nINSTALL FAILED ON COMMAND: $previous_command\n"' EXIT
+
export SYSTEM=`uname -s`
diff --git a/test_solo5_spt.sh b/test/misc/test_solo5_spt.sh
similarity index 55%
rename from test_solo5_spt.sh
rename to test/misc/test_solo5_spt.sh
index 728848422b..b3655c174a 100755
--- a/test_solo5_spt.sh
+++ b/test/misc/test_solo5_spt.sh
@@ -1,5 +1,7 @@
#! /bin/bash
-. ./etc/set_traps.sh
+set -e # Exit immediately on error (we're trapping the exit signal)
+trap 'previous_command=$this_command; this_command=$BASH_COMMAND' DEBUG
+trap 'echo -e "\nINSTALL FAILED ON COMMAND: $previous_command\n"' EXIT
export SYSTEM=`uname -s`
diff --git a/test/stl/unit/.keep b/test/stl/unit/.keep
deleted file mode 100644
index e69de29bb2..0000000000
diff --git a/test/stress/CMakeLists.txt b/test/stress/net/CMakeLists.txt
similarity index 100%
rename from test/stress/CMakeLists.txt
rename to test/stress/net/CMakeLists.txt
diff --git a/test/stress/README.md b/test/stress/net/README.md
similarity index 100%
rename from test/stress/README.md
rename to test/stress/net/README.md
diff --git a/test/stress/service.cpp b/test/stress/net/service.cpp
similarity index 100%
rename from test/stress/service.cpp
rename to test/stress/net/service.cpp
diff --git a/test/stress/test.py b/test/stress/net/test.py
similarity index 100%
rename from test/stress/test.py
rename to test/stress/net/test.py
diff --git a/test/stress/vm.json b/test/stress/net/vm.json
similarity index 100%
rename from test/stress/vm.json
rename to test/stress/net/vm.json
diff --git a/test.sh b/test/test.sh
similarity index 81%
rename from test.sh
rename to test/test.sh
index 671d1efd92..9fd8c79424 100755
--- a/test.sh
+++ b/test/test.sh
@@ -1,14 +1,17 @@
-#!/bin/bash
-
+#!/usr/bin/env bash
# Run all known IncludeOS tests.
#
# A lot of these tests require vmrunner and a network bridge.
# See https://github.com/includeos/vmrunner/pull/31
+pushd "$(dirname "$0")/.." >/dev/null
: "${QUICK_SMOKE:=}" # Define this to only do a ~1-5 min. smoke test.
: "${DRY_RUN:=}" # Define this to expand all steps without running any
: "${CCACHE_FLAG:=}" # Define as "--arg withCcache true" to enable ccache.
+UNIT_TESTS=./test/unit
+INTEGRATION_TESTS=./test/integration
+
steps=0
fails=0
failed_tests=()
@@ -58,7 +61,7 @@ run(){
fi
}
-unittests(){
+run_unittests(){
nix-build unittests.nix
}
@@ -71,22 +74,22 @@ build_example(){
}
multicore_subset(){
- nix-build ./unikernel.nix --arg smp true $CCACHE_FLAG --argstr unikernel ./test/kernel/integration/smp --arg doCheck true
+ nix-build --arg smp true $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/kernel/smp --arg doCheck true
# The following tests are not using multiple CPU's, but have been equippedd with some anyway
# to make sure core functionality is not broken by missing locks etc. when waking up more cores.
- nix-shell ./unikernel.nix --arg smp true $CCACHE_FLAG --argstr unikernel ./test/net/integration/udp --arg doCheck true
- nix-build ./unikernel.nix --arg smp true $CCACHE_FLAG --argstr unikernel ./test/kernel/integration/paging --arg doCheck true
+ nix-shell ./unikernel.nix --arg smp true $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/net/udp --arg doCheck true
+ nix-build ./unikernel.nix --arg smp true $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/memory/paging --arg doCheck true
}
smoke_tests(){
- nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ./test/net/integration/udp --arg doCheck true
- nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ./test/net/integration/tcp --arg doCheck true
- nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ./test/kernel/integration/paging --arg doCheck true
- nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ./test/kernel/integration/smp --arg doCheck true
+ nix-shell ./unikernel.nix $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/net/udp --arg doCheck true
+ nix-shell ./unikernel.nix $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/net/tcp --arg doCheck true
+ nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/memory/paging --arg doCheck true
+ nix-build ./unikernel.nix $CCACHE_FLAG --argstr unikernel ${INTEGRATION_TESTS}/kernel/smp --arg doCheck true
}
-run unittests "Build and run unit tests"
+run run_unittests "Build and run unit tests"
run build_chainloader "Build the 32-bit chainloader"
@@ -207,9 +210,16 @@ exclusions=(
unsandbox_list=(
"term" # fails to create the tun device, like the net integration tests
)
-run_testsuite "./test/kernel/integration" "${exclusions[@]}"
+run_testsuite "${INTEGRATION_TESTS}/kernel" "${exclusions[@]}"
unsandbox_list=()
+#
+# memory tests
+#
+exclusions=(
+)
+run_testsuite "${INTEGRATION_TESTS}/memory" "${exclusions[@]}"
+
#
# C++ STL runtime tests
#
@@ -217,7 +227,7 @@ exclusions=(
)
-run_testsuite "./test/stl/integration" "${exclusions[@]}"
+run_testsuite "${INTEGRATION_TESTS}/stl" "${exclusions[@]}"
#
@@ -241,15 +251,15 @@ exclusions=(
# failed to create tun device: Operation not permitted
# qemu-system-x86_64: -netdev bridge,id=net0,br=bridge43: bridge helper failed
unsandbox_list=(
- "./test/net/integration/configure"
- "./test/net/integration/icmp"
- "./test/net/integration/icmp6"
- "./test/net/integration/slaac"
- "./test/net/integration/tcp"
- "./test/net/integration/udp"
- "./test/net/integration/dns" # except this one which times out instead
+ "${INTEGRATION_TESTS}/net/configure"
+ "${INTEGRATION_TESTS}/net/icmp"
+ "${INTEGRATION_TESTS}/net/icmp6"
+ "${INTEGRATION_TESTS}/net/slaac"
+ "${INTEGRATION_TESTS}/net/tcp"
+ "${INTEGRATION_TESTS}/net/udp"
+ "${INTEGRATION_TESTS}/net/dns" # except this one which times out instead
)
-run_testsuite "./test/net/integration" "${exclusions[@]}"
+run_testsuite "${INTEGRATION_TESTS}/net" "${exclusions[@]}"
unsandbox_list=()
echo -e "\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"
diff --git a/test/memdisk.fat b/test/unit/fs/memdisk.fat
similarity index 100%
rename from test/memdisk.fat
rename to test/unit/fs/memdisk.fat
diff --git a/test/fs/unit/memdisk_test.cpp b/test/unit/fs/memdisk_test.cpp
similarity index 100%
rename from test/fs/unit/memdisk_test.cpp
rename to test/unit/fs/memdisk_test.cpp
diff --git a/test/fs/unit/path_test.cpp b/test/unit/fs/path_test.cpp
similarity index 100%
rename from test/fs/unit/path_test.cpp
rename to test/unit/fs/path_test.cpp
diff --git a/test/fs/unit/unit_fat.cpp b/test/unit/fs/unit_fat.cpp
similarity index 100%
rename from test/fs/unit/unit_fat.cpp
rename to test/unit/fs/unit_fat.cpp
diff --git a/test/fs/unit/unit_fs.cpp b/test/unit/fs/unit_fs.cpp
similarity index 100%
rename from test/fs/unit/unit_fs.cpp
rename to test/unit/fs/unit_fs.cpp
diff --git a/test/fs/unit/vfs_test.cpp b/test/unit/fs/vfs_test.cpp
similarity index 100%
rename from test/fs/unit/vfs_test.cpp
rename to test/unit/fs/vfs_test.cpp
diff --git a/test/hw/unit/cpu_test.cpp b/test/unit/hw/cpu_test.cpp
similarity index 100%
rename from test/hw/unit/cpu_test.cpp
rename to test/unit/hw/cpu_test.cpp
diff --git a/test/hw/unit/mac_addr_test.cpp b/test/unit/hw/mac_addr_test.cpp
similarity index 100%
rename from test/hw/unit/mac_addr_test.cpp
rename to test/unit/hw/mac_addr_test.cpp
diff --git a/test/hw/unit/usernet.cpp b/test/unit/hw/usernet.cpp
similarity index 100%
rename from test/hw/unit/usernet.cpp
rename to test/unit/hw/usernet.cpp
diff --git a/test/hw/unit/virtio_queue.cpp b/test/unit/hw/virtio_queue.cpp
similarity index 100%
rename from test/hw/unit/virtio_queue.cpp
rename to test/unit/hw/virtio_queue.cpp
diff --git a/test/kernel/unit/arch.cpp b/test/unit/kernel/arch.cpp
similarity index 100%
rename from test/kernel/unit/arch.cpp
rename to test/unit/kernel/arch.cpp
diff --git a/test/kernel/unit/block.cpp b/test/unit/kernel/blocking.cpp
similarity index 100%
rename from test/kernel/unit/block.cpp
rename to test/unit/kernel/blocking.cpp
diff --git a/test/kernel/unit/cpuid.cpp b/test/unit/kernel/cpuid.cpp
similarity index 100%
rename from test/kernel/unit/cpuid.cpp
rename to test/unit/kernel/cpuid.cpp
diff --git a/test/kernel/unit/os_test.cpp b/test/unit/kernel/os_test.cpp
similarity index 100%
rename from test/kernel/unit/os_test.cpp
rename to test/unit/kernel/os_test.cpp
diff --git a/test/kernel/unit/rng.cpp b/test/unit/kernel/rng.cpp
similarity index 100%
rename from test/kernel/unit/rng.cpp
rename to test/unit/kernel/rng.cpp
diff --git a/test/kernel/unit/service_stub_test.cpp b/test/unit/kernel/service_stub_test.cpp
similarity index 100%
rename from test/kernel/unit/service_stub_test.cpp
rename to test/unit/kernel/service_stub_test.cpp
diff --git a/test/kernel/unit/spinlocks.cpp b/test/unit/kernel/spinlocks.cpp
similarity index 100%
rename from test/kernel/unit/spinlocks.cpp
rename to test/unit/kernel/spinlocks.cpp
diff --git a/test/kernel/unit/test_hal.cpp b/test/unit/kernel/test_hal.cpp
similarity index 100%
rename from test/kernel/unit/test_hal.cpp
rename to test/unit/kernel/test_hal.cpp
diff --git a/test/kernel/unit/unit_events.cpp b/test/unit/kernel/unit_events.cpp
similarity index 100%
rename from test/kernel/unit/unit_events.cpp
rename to test/unit/kernel/unit_events.cpp
diff --git a/test/kernel/unit/unit_timers.cpp b/test/unit/kernel/unit_timers.cpp
similarity index 100%
rename from test/kernel/unit/unit_timers.cpp
rename to test/unit/kernel/unit_timers.cpp
diff --git a/test/lib/unit/mana/cookie_jar_test.cpp b/test/unit/lib/mana/cookie_jar_test.cpp
similarity index 100%
rename from test/lib/unit/mana/cookie_jar_test.cpp
rename to test/unit/lib/mana/cookie_jar_test.cpp
diff --git a/test/util/unit/buddy_alloc_test.cpp b/test/unit/memory/alloc/buddy_alloc_test.cpp
similarity index 100%
rename from test/util/unit/buddy_alloc_test.cpp
rename to test/unit/memory/alloc/buddy_alloc_test.cpp
diff --git a/test/util/unit/fixed_list_alloc_test.cpp b/test/unit/memory/alloc/fixed_list_alloc_test.cpp
similarity index 100%
rename from test/util/unit/fixed_list_alloc_test.cpp
rename to test/unit/memory/alloc/fixed_list_alloc_test.cpp
diff --git a/test/util/unit/pmr_alloc_test.cpp b/test/unit/memory/alloc/pmr_alloc_test.cpp
similarity index 100%
rename from test/util/unit/pmr_alloc_test.cpp
rename to test/unit/memory/alloc/pmr_alloc_test.cpp
diff --git a/test/util/unit/membitmap.cpp b/test/unit/memory/generic/membitmap.cpp
similarity index 100%
rename from test/util/unit/membitmap.cpp
rename to test/unit/memory/generic/membitmap.cpp
diff --git a/test/kernel/unit/test_memory.cpp b/test/unit/memory/generic/test_memory.cpp
similarity index 100%
rename from test/kernel/unit/test_memory.cpp
rename to test/unit/memory/generic/test_memory.cpp
diff --git a/test/util/unit/lstack/test_lstack.hpp b/test/unit/memory/lstack/test_lstack.hpp
similarity index 100%
rename from test/util/unit/lstack/test_lstack.hpp
rename to test/unit/memory/lstack/test_lstack.hpp
diff --git a/test/util/unit/lstack/test_lstack_common.cpp b/test/unit/memory/lstack/test_lstack_common.cpp
similarity index 100%
rename from test/util/unit/lstack/test_lstack_common.cpp
rename to test/unit/memory/lstack/test_lstack_common.cpp
diff --git a/test/util/unit/lstack/test_lstack_merging.cpp b/test/unit/memory/lstack/test_lstack_merging.cpp
similarity index 100%
rename from test/util/unit/lstack/test_lstack_merging.cpp
rename to test/unit/memory/lstack/test_lstack_merging.cpp
diff --git a/test/util/unit/lstack/test_lstack_nodes.cpp b/test/unit/memory/lstack/test_lstack_nodes.cpp
similarity index 100%
rename from test/util/unit/lstack/test_lstack_nodes.cpp
rename to test/unit/memory/lstack/test_lstack_nodes.cpp
diff --git a/test/util/unit/lstack/test_lstack_nomerge.cpp b/test/unit/memory/lstack/test_lstack_nomerge.cpp
similarity index 100%
rename from test/util/unit/lstack/test_lstack_nomerge.cpp
rename to test/unit/memory/lstack/test_lstack_nomerge.cpp
diff --git a/test/kernel/unit/memmap_test.cpp b/test/unit/memory/mapping/memmap_test.cpp
similarity index 100%
rename from test/kernel/unit/memmap_test.cpp
rename to test/unit/memory/mapping/memmap_test.cpp
diff --git a/test/kernel/unit/paging.inc b/test/unit/memory/paging/paging.inc
similarity index 100%
rename from test/kernel/unit/paging.inc
rename to test/unit/memory/paging/paging.inc
diff --git a/test/kernel/unit/unit_liveupdate.cpp b/test/unit/memory/paging/unit_liveupdate.cpp
similarity index 98%
rename from test/kernel/unit/unit_liveupdate.cpp
rename to test/unit/memory/paging/unit_liveupdate.cpp
index 575244fd97..fb0f5ada2d 100644
--- a/test/kernel/unit/unit_liveupdate.cpp
+++ b/test/unit/memory/paging/unit_liveupdate.cpp
@@ -3,7 +3,7 @@
#include
#include
#include
-#include "paging.inc"
+#include "paging.inc" // FIXME: what do we need a special header here?
using namespace liu;
// #define DEBUG_UNIT
@@ -156,11 +156,11 @@ CASE("Store some data and restore it")
Statman::get().clear();
EXPECT_THROWS_AS(LiveUpdate::resume_from_heap(storage_area, "", nullptr), std::length_error);
-
+
EXPECT(LiveUpdate::partition_exists("test", storage_area));
LiveUpdate::resume_from_heap(storage_area, "test", restore_something);
-
+
//LiveUpdate::resume("test", restore_something);
EXPECT(stored.integer == 1234);
diff --git a/test/kernel/unit/x86_paging.cpp b/test/unit/memory/paging/x86_paging.cpp
similarity index 100%
rename from test/kernel/unit/x86_paging.cpp
rename to test/unit/memory/paging/x86_paging.cpp
diff --git a/test/net/unit/addr_test.cpp b/test/unit/net/addr_test.cpp
similarity index 100%
rename from test/net/unit/addr_test.cpp
rename to test/unit/net/addr_test.cpp
diff --git a/test/net/unit/bufstore.cpp b/test/unit/net/bufstore.cpp
similarity index 100%
rename from test/net/unit/bufstore.cpp
rename to test/unit/net/bufstore.cpp
diff --git a/test/net/unit/checksum.cpp b/test/unit/net/checksum.cpp
similarity index 100%
rename from test/net/unit/checksum.cpp
rename to test/unit/net/checksum.cpp
diff --git a/test/net/unit/cidr.cpp b/test/unit/net/cidr.cpp
similarity index 100%
rename from test/net/unit/cidr.cpp
rename to test/unit/net/cidr.cpp
diff --git a/test/net/unit/conntrack_test.cpp b/test/unit/net/conntrack_test.cpp
similarity index 100%
rename from test/net/unit/conntrack_test.cpp
rename to test/unit/net/conntrack_test.cpp
diff --git a/test/net/unit/cookie_test.cpp b/test/unit/net/cookie_test.cpp
similarity index 100%
rename from test/net/unit/cookie_test.cpp
rename to test/unit/net/cookie_test.cpp
diff --git a/test/net/unit/dhcp.cpp b/test/unit/net/dhcp.cpp
similarity index 100%
rename from test/net/unit/dhcp.cpp
rename to test/unit/net/dhcp.cpp
diff --git a/test/net/unit/dhcp_message_test.cpp b/test/unit/net/dhcp_message_test.cpp
similarity index 100%
rename from test/net/unit/dhcp_message_test.cpp
rename to test/unit/net/dhcp_message_test.cpp
diff --git a/test/net/unit/error.cpp b/test/unit/net/error.cpp
similarity index 100%
rename from test/net/unit/error.cpp
rename to test/unit/net/error.cpp
diff --git a/test/net/unit/http_header_test.cpp b/test/unit/net/http_header_test.cpp
similarity index 100%
rename from test/net/unit/http_header_test.cpp
rename to test/unit/net/http_header_test.cpp
diff --git a/test/net/unit/http_method_test.cpp b/test/unit/net/http_method_test.cpp
similarity index 100%
rename from test/net/unit/http_method_test.cpp
rename to test/unit/net/http_method_test.cpp
diff --git a/test/net/unit/http_mime_types_test.cpp b/test/unit/net/http_mime_types_test.cpp
similarity index 100%
rename from test/net/unit/http_mime_types_test.cpp
rename to test/unit/net/http_mime_types_test.cpp
diff --git a/test/net/unit/http_request_test.cpp b/test/unit/net/http_request_test.cpp
similarity index 100%
rename from test/net/unit/http_request_test.cpp
rename to test/unit/net/http_request_test.cpp
diff --git a/test/net/unit/http_response_test.cpp b/test/unit/net/http_response_test.cpp
similarity index 100%
rename from test/net/unit/http_response_test.cpp
rename to test/unit/net/http_response_test.cpp
diff --git a/test/net/unit/http_status_codes_test.cpp b/test/unit/net/http_status_codes_test.cpp
similarity index 100%
rename from test/net/unit/http_status_codes_test.cpp
rename to test/unit/net/http_status_codes_test.cpp
diff --git a/test/net/unit/http_time_test.cpp b/test/unit/net/http_time_test.cpp
similarity index 100%
rename from test/net/unit/http_time_test.cpp
rename to test/unit/net/http_time_test.cpp
diff --git a/test/net/unit/http_version_test.cpp b/test/unit/net/http_version_test.cpp
similarity index 100%
rename from test/net/unit/http_version_test.cpp
rename to test/unit/net/http_version_test.cpp
diff --git a/test/net/unit/interfaces_test.cpp b/test/unit/net/interfaces_test.cpp
similarity index 100%
rename from test/net/unit/interfaces_test.cpp
rename to test/unit/net/interfaces_test.cpp
diff --git a/test/net/unit/ip4.cpp b/test/unit/net/ip4.cpp
similarity index 100%
rename from test/net/unit/ip4.cpp
rename to test/unit/net/ip4.cpp
diff --git a/test/net/unit/ip4_addr.cpp b/test/unit/net/ip4_addr.cpp
similarity index 100%
rename from test/net/unit/ip4_addr.cpp
rename to test/unit/net/ip4_addr.cpp
diff --git a/test/net/unit/ip4_packet_test.cpp b/test/unit/net/ip4_packet_test.cpp
similarity index 100%
rename from test/net/unit/ip4_packet_test.cpp
rename to test/unit/net/ip4_packet_test.cpp
diff --git a/test/net/unit/ip6.cpp b/test/unit/net/ip6.cpp
similarity index 100%
rename from test/net/unit/ip6.cpp
rename to test/unit/net/ip6.cpp
diff --git a/test/net/unit/ip6_addr.cpp b/test/unit/net/ip6_addr.cpp
similarity index 100%
rename from test/net/unit/ip6_addr.cpp
rename to test/unit/net/ip6_addr.cpp
diff --git a/test/net/unit/ip6_addr_list_test.cpp b/test/unit/net/ip6_addr_list_test.cpp
similarity index 100%
rename from test/net/unit/ip6_addr_list_test.cpp
rename to test/unit/net/ip6_addr_list_test.cpp
diff --git a/test/net/unit/ip6_packet_test.cpp b/test/unit/net/ip6_packet_test.cpp
similarity index 100%
rename from test/net/unit/ip6_packet_test.cpp
rename to test/unit/net/ip6_packet_test.cpp
diff --git a/test/net/unit/napt_test.cpp b/test/unit/net/napt_test.cpp
similarity index 100%
rename from test/net/unit/napt_test.cpp
rename to test/unit/net/napt_test.cpp
diff --git a/test/net/unit/nat_test.cpp b/test/unit/net/nat_test.cpp
similarity index 100%
rename from test/net/unit/nat_test.cpp
rename to test/unit/net/nat_test.cpp
diff --git a/test/net/unit/packets.cpp b/test/unit/net/packets.cpp
similarity index 100%
rename from test/net/unit/packets.cpp
rename to test/unit/net/packets.cpp
diff --git a/test/net/unit/path_mtu_discovery.cpp b/test/unit/net/path_mtu_discovery.cpp
similarity index 100%
rename from test/net/unit/path_mtu_discovery.cpp
rename to test/unit/net/path_mtu_discovery.cpp
diff --git a/test/net/unit/port_util_test.cpp b/test/unit/net/port_util_test.cpp
similarity index 100%
rename from test/net/unit/port_util_test.cpp
rename to test/unit/net/port_util_test.cpp
diff --git a/test/net/unit/router_test.cpp b/test/unit/net/router_test.cpp
similarity index 100%
rename from test/net/unit/router_test.cpp
rename to test/unit/net/router_test.cpp
diff --git a/test/net/unit/socket.cpp b/test/unit/net/socket.cpp
similarity index 100%
rename from test/net/unit/socket.cpp
rename to test/unit/net/socket.cpp
diff --git a/test/net/unit/stateful_addr_test.cpp b/test/unit/net/stateful_addr_test.cpp
similarity index 100%
rename from test/net/unit/stateful_addr_test.cpp
rename to test/unit/net/stateful_addr_test.cpp
diff --git a/test/net/unit/tcp_benchmark.cpp b/test/unit/net/tcp_benchmark.cpp
similarity index 100%
rename from test/net/unit/tcp_benchmark.cpp
rename to test/unit/net/tcp_benchmark.cpp
diff --git a/test/net/unit/tcp_packet_test.cpp b/test/unit/net/tcp_packet_test.cpp
similarity index 100%
rename from test/net/unit/tcp_packet_test.cpp
rename to test/unit/net/tcp_packet_test.cpp
diff --git a/test/net/unit/tcp_read_buffer_test.cpp b/test/unit/net/tcp_read_buffer_test.cpp
similarity index 100%
rename from test/net/unit/tcp_read_buffer_test.cpp
rename to test/unit/net/tcp_read_buffer_test.cpp
diff --git a/test/net/unit/tcp_read_request_test.cpp b/test/unit/net/tcp_read_request_test.cpp
similarity index 100%
rename from test/net/unit/tcp_read_request_test.cpp
rename to test/unit/net/tcp_read_request_test.cpp
diff --git a/test/net/unit/tcp_sack_test.cpp b/test/unit/net/tcp_sack_test.cpp
similarity index 100%
rename from test/net/unit/tcp_sack_test.cpp
rename to test/unit/net/tcp_sack_test.cpp
diff --git a/test/net/unit/tcp_write_queue.cpp b/test/unit/net/tcp_write_queue.cpp
similarity index 100%
rename from test/net/unit/tcp_write_queue.cpp
rename to test/unit/net/tcp_write_queue.cpp
diff --git a/test/net/unit/websocket.cpp b/test/unit/net/websocket.cpp
similarity index 100%
rename from test/net/unit/websocket.cpp
rename to test/unit/net/websocket.cpp
diff --git a/test/performance/integration/.keep b/test/unit/performance/.keep
similarity index 100%
rename from test/performance/integration/.keep
rename to test/unit/performance/.keep
diff --git a/test/posix/unit/fd_map_test.cpp b/test/unit/posix/fd_map_test.cpp
similarity index 100%
rename from test/posix/unit/fd_map_test.cpp
rename to test/unit/posix/fd_map_test.cpp
diff --git a/test/posix/unit/inet_test.cpp b/test/unit/posix/inet_test.cpp
similarity index 100%
rename from test/posix/unit/inet_test.cpp
rename to test/unit/posix/inet_test.cpp
diff --git a/test/posix/unit/unit_fd.cpp b/test/unit/posix/unit_fd.cpp
similarity index 100%
rename from test/posix/unit/unit_fd.cpp
rename to test/unit/posix/unit_fd.cpp
diff --git a/test/performance/unit/.keep b/test/unit/stl/.keep
similarity index 100%
rename from test/performance/unit/.keep
rename to test/unit/stl/.keep
diff --git a/test/util/unit/base64.cpp b/test/unit/util/base64.cpp
similarity index 100%
rename from test/util/unit/base64.cpp
rename to test/unit/util/base64.cpp
diff --git a/test/util/unit/bitops.cpp b/test/unit/util/bitops.cpp
similarity index 100%
rename from test/util/unit/bitops.cpp
rename to test/unit/util/bitops.cpp
diff --git a/test/util/unit/config.cpp b/test/unit/util/config.cpp
similarity index 100%
rename from test/util/unit/config.cpp
rename to test/unit/util/config.cpp
diff --git a/test/util/unit/corrupt-tar-gz.sh b/test/unit/util/corrupt-tar-gz.sh
similarity index 100%
rename from test/util/unit/corrupt-tar-gz.sh
rename to test/unit/util/corrupt-tar-gz.sh
diff --git a/test/util/unit/crc32.cpp b/test/unit/util/crc32.cpp
similarity index 100%
rename from test/util/unit/crc32.cpp
rename to test/unit/util/crc32.cpp
diff --git a/test/util/unit/delegate.cpp b/test/unit/util/delegate.cpp
similarity index 100%
rename from test/util/unit/delegate.cpp
rename to test/unit/util/delegate.cpp
diff --git a/test/util/unit/fixed_queue.cpp b/test/unit/util/fixed_queue.cpp
similarity index 100%
rename from test/util/unit/fixed_queue.cpp
rename to test/unit/util/fixed_queue.cpp
diff --git a/test/util/unit/fixed_vector.cpp b/test/unit/util/fixed_vector.cpp
similarity index 100%
rename from test/util/unit/fixed_vector.cpp
rename to test/unit/util/fixed_vector.cpp
diff --git a/test/util/unit/isotime.cpp b/test/unit/util/isotime.cpp
similarity index 100%
rename from test/util/unit/isotime.cpp
rename to test/unit/util/isotime.cpp
diff --git a/test/util/unit/logger_test.cpp b/test/unit/util/logger_test.cpp
similarity index 100%
rename from test/util/unit/logger_test.cpp
rename to test/unit/util/logger_test.cpp
diff --git a/test/util/unit/path_to_regex_no_options.cpp b/test/unit/util/path_to_regex_no_options.cpp
similarity index 100%
rename from test/util/unit/path_to_regex_no_options.cpp
rename to test/unit/util/path_to_regex_no_options.cpp
diff --git a/test/util/unit/path_to_regex_options.cpp b/test/unit/util/path_to_regex_options.cpp
similarity index 100%
rename from test/util/unit/path_to_regex_options.cpp
rename to test/unit/util/path_to_regex_options.cpp
diff --git a/test/util/unit/path_to_regex_parse.cpp b/test/unit/util/path_to_regex_parse.cpp
similarity index 100%
rename from test/util/unit/path_to_regex_parse.cpp
rename to test/unit/util/path_to_regex_parse.cpp
diff --git a/test/util/unit/percent_encoding_test.cpp b/test/unit/util/percent_encoding_test.cpp
similarity index 100%
rename from test/util/unit/percent_encoding_test.cpp
rename to test/unit/util/percent_encoding_test.cpp
diff --git a/test/util/unit/ringbuffer.cpp b/test/unit/util/ringbuffer.cpp
similarity index 100%
rename from test/util/unit/ringbuffer.cpp
rename to test/unit/util/ringbuffer.cpp
diff --git a/test/util/unit/sha1.cpp b/test/unit/util/sha1.cpp
similarity index 100%
rename from test/util/unit/sha1.cpp
rename to test/unit/util/sha1.cpp
diff --git a/test/util/unit/statman.cpp b/test/unit/util/statman.cpp
similarity index 100%
rename from test/util/unit/statman.cpp
rename to test/unit/util/statman.cpp
diff --git a/test/util/unit/syslog_facility_test.cpp b/test/unit/util/syslog_facility_test.cpp
similarity index 100%
rename from test/util/unit/syslog_facility_test.cpp
rename to test/unit/util/syslog_facility_test.cpp
diff --git a/test/util/unit/syslogd_test.cpp b/test/unit/util/syslogd_test.cpp
similarity index 100%
rename from test/util/unit/syslogd_test.cpp
rename to test/unit/util/syslogd_test.cpp
diff --git a/test/util/unit/tar_test.cpp b/test/unit/util/tar_test.cpp
similarity index 100%
rename from test/util/unit/tar_test.cpp
rename to test/unit/util/tar_test.cpp
diff --git a/test/util/unit/uri_test.cpp b/test/unit/util/uri_test.cpp
similarity index 100%
rename from test/util/unit/uri_test.cpp
rename to test/unit/util/uri_test.cpp
diff --git a/unikernel.nix b/unikernel.nix
index bd0ef2b6c7..e29913bdb7 100644
--- a/unikernel.nix
+++ b/unikernel.nix
@@ -103,7 +103,7 @@ includeos.stdenv.mkDerivation rec {
runHook postCheck
'';
- # this is a hack
+ # the doCheck shell is a hack
# some tests need to be run through a shell because of net_cap_raw+ep and net_cap_admin+ep
# replace nix-build with nix-shell to test without dropping capabilities
packages = [
@@ -111,7 +111,7 @@ includeos.stdenv.mkDerivation rec {
vmrunnerPkg
]))
];
- shellHook = ''
+ shellHook = if doCheck then ''
set -eu
pkg="$(nix-build ./unikernel.nix --arg doCheck false --arg unikernel ${unikernel})"
@@ -120,6 +120,11 @@ includeos.stdenv.mkDerivation rec {
"$testPath" || exit 1
exit 0
+ '' else ''
+ echo "entering unikernel build shell."
+ echo "if you want to run tests, you can do so with:"
+ echo " --arg doCheck true"
+ cd result/
'';
}
diff --git a/userspace/README.md b/userspace/README.md
index 7e512922b9..128c112146 100644
--- a/userspace/README.md
+++ b/userspace/README.md
@@ -27,4 +27,4 @@
### Testing it
-Run one of the Linux platform tests in /test/linux. If you get the error `RTNETLINK answers: File exists`, flush the interace with `sudo ip addr flush dev bridge43`. Where bridge43 is the interface name.
+Run one of the Linux platform tests in /test/userspace. If you get the error `RTNETLINK answers: File exists`, flush the interace with `sudo ip addr flush dev bridge43`. Where bridge43 is the interface name.