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.