# I am tired of fixing patches. Now I will rebase, then fix conflicts, then squash commits, then put it here.
commit 0ba25e26ff6105966eb88f958b9425a36641ca14
Author: Arniiiii <lg3dx6fd@gmail.com>
Date:   Sat Sep 6 22:04:51 2025 +0000

    tests: no bundling of asio + enabling tests that were not enabled
    
    tests: unbundle ut2 to ut2-glaze
    
    tests: eigen is required
    
    tests: erlang correct option
    
    more enabling tests
    
    test: openapi_test: unbundle asio
    
    erlang: target must be found when using installed scripts

diff --git a/.gitignore b/.gitignore
index d3e328f8..0e9c5921 100644
--- a/.gitignore
+++ b/.gitignore
@@ -50,3 +50,4 @@ Thumbs.db
 !tests/mock_json_test/json/*.json
 alabastar.beve
 *.jsonc
+cmake/install-config.cmake
diff --git a/cmake/install-config.cmake b/cmake/install-config.cmake
deleted file mode 100644
index b6ddfdb9..00000000
--- a/cmake/install-config.cmake
+++ /dev/null
@@ -1 +0,0 @@
-include("${CMAKE_CURRENT_LIST_DIR}/glazeTargets.cmake")
\ No newline at end of file
diff --git a/cmake/install-config.cmake.in b/cmake/install-config.cmake.in
new file mode 100644
index 00000000..e24a71f6
--- /dev/null
+++ b/cmake/install-config.cmake.in
@@ -0,0 +1,172 @@
+if(@glaze_EETF_FORMAT@)
+   # Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
+   # file Copyright.txt or https://cmake.org/licensing for details.
+
+  #[=======================================================================[.rst:
+   FindErlang
+   -------
+
+   Finds Erlang libraries.
+
+   Imported Targets
+   ^^^^^^^^^^^^^^^^
+
+   This module provides the following imported targets, if found:
+
+   ``Erlang::Erlang``
+     Header only interface library suitible for compiling NIFs.
+
+   ``Erlang::EI``
+     Erlang interface library.
+
+   ``Erlang::ERTS``
+     Erlang runtime system library.
+
+   Result Variables
+   ^^^^^^^^^^^^^^^^
+
+   This will define the following variables:
+
+   ``Erlang_FOUND``
+     True if the system has the Erlang library.
+   ``Erlang_RUNTIME``
+     The path to the Erlang runtime.
+   ``Erlang_COMPILE``
+     The path to the Erlang compiler.
+   ``Erlang_EI_PATH``
+     The path to the Erlang erl_interface path.
+   ``Erlang_ERTS_PATH``
+     The path to the Erlang erts path.
+   ``Erlang_EI_INCLUDE_DIRS``
+     /include appended to Erlang_EI_PATH.
+   ``Erlang_EI_LIBRARY_PATH``
+     /lib appended to Erlang_EI_PATH.
+   ``Erlang_ERTS_INCLUDE_DIRS``
+     /include appended to Erlang_ERTS_PATH.
+   ``Erlang_ERTS_LIBRARY_PATH``
+     /lib appended to Erlang_ERTS_PATH.
+   ``Erlang_OTP_VERSION``
+     Current Erlang OTP version
+
+#]=======================================================================]
+   include(FindPackageHandleStandardArgs)
+
+   set(Erlang_BIN_PATH $ENV{ERLANG_HOME}/bin /opt/bin /sw/bin /usr/bin
+                      /usr/local/bin /opt/local/bin)
+
+   find_program(
+    Erlang_RUNTIME
+    NAMES erl
+    PATHS ${Erlang_BIN_PATH})
+
+   find_program(
+    Erlang_COMPILE
+    NAMES erlc
+    PATHS ${Erlang_BIN_PATH})
+
+   execute_process(
+    COMMAND erl -noshell -eval "io:format(\"~s\", [code:lib_dir()])" -s erlang
+            halt OUTPUT_VARIABLE Erlang_OTP_LIB_DIR)
+
+   execute_process(
+    COMMAND erl -noshell -eval "io:format(\"~s\", [code:root_dir()])" -s erlang
+            halt OUTPUT_VARIABLE Erlang_OTP_ROOT_DIR)
+
+   execute_process(
+    COMMAND
+      erl -noshell -eval
+      "io:format(\"~s\",[filename:basename(code:lib_dir('erl_interface'))])" -s
+      erlang halt
+    OUTPUT_VARIABLE Erlang_EI_DIR)
+
+   execute_process(
+    COMMAND
+      erl -noshell -eval
+      "io:format(\"~s\",[filename:basename(code:lib_dir('erts'))])" -s erlang
+      halt
+    OUTPUT_VARIABLE Erlang_ERTS_DIR)
+
+   execute_process(
+    COMMAND
+      erl -noshell -eval "io:format(\"~s\", [erlang:system_info(otp_release)])"
+      -s erlang halt
+    OUTPUT_VARIABLE Erlang_OTP_VERSION)
+
+   set(Erlang_EI_PATH ${Erlang_OTP_LIB_DIR}/${Erlang_EI_DIR})
+   set(Erlang_EI_INCLUDE_DIRS ${Erlang_OTP_LIB_DIR}/${Erlang_EI_DIR}/include)
+   set(Erlang_EI_LIBRARY_PATH ${Erlang_OTP_LIB_DIR}/${Erlang_EI_DIR}/lib)
+
+   set(Erlang_ERTS_PATH ${Erlang_OTP_ROOT_DIR}/${Erlang_ERTS_DIR})
+   set(Erlang_ERTS_INCLUDE_DIRS
+      ${Erlang_OTP_ROOT_DIR}/${Erlang_ERTS_DIR}/include)
+   set(Erlang_ERTS_LIBRARY_PATH ${Erlang_OTP_ROOT_DIR}/${Erlang_ERTS_DIR}/lib)
+
+   find_package_handle_standard_args(
+    Erlang
+    DEFAULT_MSG
+    Erlang_RUNTIME
+    Erlang_COMPILE
+    Erlang_OTP_LIB_DIR
+    Erlang_OTP_ROOT_DIR
+    Erlang_EI_DIR
+    Erlang_ERTS_DIR
+    Erlang_OTP_VERSION)
+
+   if(Erlang_FOUND)
+      if(NOT TARGET Erlang::Erlang)
+         add_library(Erlang::Erlang INTERFACE IMPORTED)
+         set_target_properties(
+        Erlang::Erlang PROPERTIES INTERFACE_INCLUDE_DIRECTORIES
+                                  ${Erlang_OTP_ROOT_DIR}/usr/include)
+      endif()
+
+      if(NOT TARGET Erlang::ERTS)
+         add_library(Erlang::ERTS STATIC IMPORTED)
+         set_target_properties(
+        Erlang::ERTS
+        PROPERTIES INTERFACE_INCLUDE_DIRECTORIES ${Erlang_ERTS_INCLUDE_DIRS}
+                   IMPORTED_LOCATION ${Erlang_ERTS_LIBRARY_PATH}/liberts.a)
+      endif()
+
+      if(NOT TARGET Erlang::EI)
+         add_library(erlang_ei STATIC IMPORTED)
+         set_property(TARGET erlang_ei PROPERTY IMPORTED_LOCATION
+                                             ${Erlang_EI_LIBRARY_PATH}/libei.a)
+         add_library(Erlang::EI INTERFACE IMPORTED)
+         set_property(TARGET Erlang::EI PROPERTY INTERFACE_INCLUDE_DIRECTORIES
+                                              ${Erlang_EI_INCLUDE_DIRS})
+         set_property(TARGET Erlang::EI PROPERTY INTERFACE_LINK_LIBRARIES
+                                              erlang_ei)
+      endif()
+   endif(Erlang_FOUND)
+
+  #[[
+   https://gist.github.com/JayKickliter/dd0016bd5545de466e7ca158d4b19417
+   How I compile Erlang from source on macOS
+
+   CFLAGS="-Og -ggdb3 -fno-omit-frame-pointer" \
+   CXXFLAGS="-Og -ggdb3 -fno-omit-frame-pointer" \
+   ./configure \
+         --prefix=$HOME/.local \
+         --disable-silent-rules \
+         --enable-dynamic-ssl-lib \
+         --with-ssl=/usr/local/opt/openssl \
+         --disable-hipe \
+         --enable-sctp \
+         --enable-shared-zlib \
+         --enable-smp-support \
+         --enable-threads \
+         --enable-wx \
+         --without-javac \
+         --enable-darwin-64bit
+   ]]
+
+   if(NOT ${Erlang_FOUND})
+      message(
+      FATAL_ERROR
+      "Erlang is not found, while glaze was configured with glaze_EETF_FORMAT enabled. It seems you uninstalled Erlang, but then didn't reconfigured glaze with glaze_EETF_FORMAT=0 ."
+    )
+   endif()
+
+endif()
+include("${CMAKE_CURRENT_LIST_DIR}/glazeTargets.cmake")
diff --git a/cmake/install-rules.cmake b/cmake/install-rules.cmake
index 1db5b74e..a5c94aa0 100644
--- a/cmake/install-rules.cmake
+++ b/cmake/install-rules.cmake
@@ -32,6 +32,8 @@ set(
 )
 mark_as_advanced(glaze_INSTALL_CMAKEDIR)
 
+configure_file(${CMAKE_CURRENT_LIST_DIR}/install-config.cmake.in ${CMAKE_CURRENT_LIST_DIR}/install-config.cmake @ONLY)
+
 install(
     FILES cmake/install-config.cmake
     DESTINATION "${glaze_INSTALL_CMAKEDIR}"
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 1bf1dc80..fae3d264 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -1,17 +1,9 @@
 include(FetchContent)
 
-FetchContent_Declare(
-  ut
-  GIT_REPOSITORY https://github.com/openalgz/ut
-  GIT_TAG v1.0.0
-  GIT_SHALLOW TRUE
-)
+find_package(ut2-glaze REQUIRED)
 
 message(STATUS "Fetching dependencies...")
 set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL TRUE)
-set(CMAKE_SKIP_INSTALL_RULES ON CACHE BOOL "" FORCE)
-FetchContent_MakeAvailable(ut)
-set(CMAKE_SKIP_INSTALL_RULES OFF CACHE BOOL "" FORCE)
 set_directory_properties(PROPERTIES EXCLUDE_FROM_ALL FALSE)
 message(STATUS "...finished fetching dependencies.")
 
@@ -20,7 +12,7 @@ add_code_coverage_all_targets()
 
 add_library(glz_test_common INTERFACE)
 target_compile_features(glz_test_common INTERFACE cxx_std_23)
-target_link_libraries(glz_test_common INTERFACE ut::ut glaze::glaze)
+target_link_libraries(glz_test_common INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
     target_compile_options(glz_test_common INTERFACE -fno-exceptions -fno-rtti)
     if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
@@ -46,7 +38,7 @@ endif()
 
 add_library(glz_test_exceptions INTERFACE)
 target_compile_features(glz_test_exceptions INTERFACE cxx_std_23)
-target_link_libraries(glz_test_exceptions INTERFACE ut::ut glaze::glaze)
+target_link_libraries(glz_test_exceptions INTERFACE ut2-glaze::ut2-glaze glaze::glaze)
 if(CMAKE_CXX_COMPILER_ID MATCHES "GNU|Clang")
     target_compile_options(glz_test_exceptions INTERFACE)
     target_compile_options(glz_test_exceptions INTERFACE -Wall -Wextra -pedantic)
diff --git a/tests/cli_menu_test/CMakeLists.txt b/tests/cli_menu_test/CMakeLists.txt
index be93c00e..ae1e91d8 100644
--- a/tests/cli_menu_test/CMakeLists.txt
+++ b/tests/cli_menu_test/CMakeLists.txt
@@ -3,3 +3,5 @@ project(cli_menu_test)
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_common)
+
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/eigen_test/CMakeLists.txt b/tests/eigen_test/CMakeLists.txt
index ac81f833..e3061e36 100644
--- a/tests/eigen_test/CMakeLists.txt
+++ b/tests/eigen_test/CMakeLists.txt
@@ -2,7 +2,7 @@ project(eigen_test)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-find_package (Eigen3 3.4 QUIET)
+find_package (Eigen3 3.4 REQUIRED)
 if(NOT Eigen3_FOUND)
   FetchContent_Declare(
     Eigen3
diff --git a/tests/find_package/CMakeLists.txt b/tests/find_package/CMakeLists.txt
index fcaeace6..40b4b254 100644
--- a/tests/find_package/CMakeLists.txt
+++ b/tests/find_package/CMakeLists.txt
@@ -8,10 +8,10 @@ project(
 
 file(GLOB srcs src/*.cpp include/*.hpp)
 
-if(glaze_ERLANG_FORMAT)
+if(glaze_EETF_FORMAT)
   list(APPEND CMAKE_MODULE_PATH "${EXTERNAL_MODULE_PATH}")
   find_package(Erlang REQUIRED)
-endif(glaze_ERLANG_FORMAT)
+endif(glaze_EETF_FORMAT)
 
 find_package(glaze CONFIG REQUIRED)
 
diff --git a/tests/networking_tests/CMakeLists.txt b/tests/networking_tests/CMakeLists.txt
index 01d99cca..c7f03688 100644
--- a/tests/networking_tests/CMakeLists.txt
+++ b/tests/networking_tests/CMakeLists.txt
@@ -1,10 +1,5 @@
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
+find_package(PkgConfig REQUIRED)
+pkg_check_modules(asio GLOBAL IMPORTED_TARGET REQUIRED asio)
 
 # HTTP Examples
 add_subdirectory(http_examples)
@@ -18,4 +13,4 @@ add_subdirectory(https_test)
 add_subdirectory(openapi_test)
 add_subdirectory(repe_test)
 add_subdirectory(rest_test)
-add_subdirectory(websocket_test)
\ No newline at end of file
+add_subdirectory(websocket_test)
diff --git a/tests/networking_tests/asio_repe/CMakeLists.txt b/tests/networking_tests/asio_repe/CMakeLists.txt
index 1518b4e5..1d5416e8 100644
--- a/tests/networking_tests/asio_repe/CMakeLists.txt
+++ b/tests/networking_tests/asio_repe/CMakeLists.txt
@@ -1,14 +1,9 @@
 project(asio_repe)
 
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
-
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
-target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
\ No newline at end of file
+target_include_directories(${PROJECT_NAME} PRIVATE include)
+target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
+
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/http_client_test/CMakeLists.txt b/tests/networking_tests/http_client_test/CMakeLists.txt
index 7ed4e0fd..a7674b4e 100644
--- a/tests/networking_tests/http_client_test/CMakeLists.txt
+++ b/tests/networking_tests/http_client_test/CMakeLists.txt
@@ -2,7 +2,8 @@ project(http_client_test)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include)
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
\ No newline at end of file
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/http_examples/CMakeLists.txt b/tests/networking_tests/http_examples/CMakeLists.txt
index 2d836f8f..8d67649c 100644
--- a/tests/networking_tests/http_examples/CMakeLists.txt
+++ b/tests/networking_tests/http_examples/CMakeLists.txt
@@ -2,7 +2,8 @@ project(http_examples)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include )
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
\ No newline at end of file
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/http_router_test/CMakeLists.txt b/tests/networking_tests/http_router_test/CMakeLists.txt
index 5b1e58b3..14d81566 100644
--- a/tests/networking_tests/http_router_test/CMakeLists.txt
+++ b/tests/networking_tests/http_router_test/CMakeLists.txt
@@ -2,7 +2,8 @@ project(http_router_test)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include )
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
\ No newline at end of file
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/http_server_api_tests/CMakeLists.txt b/tests/networking_tests/http_server_api_tests/CMakeLists.txt
index 62d93da1..225a8159 100644
--- a/tests/networking_tests/http_server_api_tests/CMakeLists.txt
+++ b/tests/networking_tests/http_server_api_tests/CMakeLists.txt
@@ -2,7 +2,8 @@ project(http_server_api_tests)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include )
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
\ No newline at end of file
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/https_test/CMakeLists.txt b/tests/networking_tests/https_test/CMakeLists.txt
index 4f4670d9..4e56171a 100644
--- a/tests/networking_tests/https_test/CMakeLists.txt
+++ b/tests/networking_tests/https_test/CMakeLists.txt
@@ -5,14 +5,6 @@ project(https_test)
 # Only build if OpenSSL is available
 find_package(OpenSSL REQUIRED)
 
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
-
 # Test if we can actually compile with OpenSSL headers
 include(CheckCXXSourceCompiles)
 set(CMAKE_REQUIRED_LIBRARIES OpenSSL::SSL OpenSSL::Crypto)
@@ -34,14 +26,17 @@ if(OPENSSL_HEADERS_AVAILABLE)
         OpenSSL::Crypto
     )
     target_compile_definitions(${PROJECT_NAME} PRIVATE GLZ_ENABLE_SSL)
-    target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+    target_include_directories(${PROJECT_NAME} PRIVATE include )
     target_compile_definitions(${PROJECT_NAME} PRIVATE SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
 
+    target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
     # Set C++ standard
     target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_23)
-    
+
+    add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
+
     message(STATUS "Self-contained HTTPS test will be built with OpenSSL support")
     message(STATUS " Certificates will be generated automatically at runtime")
 else()
     message(FATAL_ERROR "❌ OpenSSL headers missing - install libssl-dev/openssl-devel")
-endif()
\ No newline at end of file
+endif()
diff --git a/tests/networking_tests/openapi_test/CMakeLists.txt b/tests/networking_tests/openapi_test/CMakeLists.txt
index fa9363c9..a7f9af28 100644
--- a/tests/networking_tests/openapi_test/CMakeLists.txt
+++ b/tests/networking_tests/openapi_test/CMakeLists.txt
@@ -1,13 +1,7 @@
 project(openapi_test)
 
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
-
 add_executable(openapi_test openapi_test.cpp)
-target_include_directories(openapi_test PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(openapi_test PRIVATE include)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 target_link_libraries(openapi_test PRIVATE glz_test_exceptions)
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/repe_test/CMakeLists.txt b/tests/networking_tests/repe_test/CMakeLists.txt
index 0575ba71..b2d39745 100644
--- a/tests/networking_tests/repe_test/CMakeLists.txt
+++ b/tests/networking_tests/repe_test/CMakeLists.txt
@@ -1,16 +1,9 @@
 project(repe_test)
 
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
-
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include)
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
 add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/rest_test/CMakeLists.txt b/tests/networking_tests/rest_test/CMakeLists.txt
index 71edf17a..93d9d94c 100644
--- a/tests/networking_tests/rest_test/CMakeLists.txt
+++ b/tests/networking_tests/rest_test/CMakeLists.txt
@@ -1,21 +1,21 @@
 project(rest_test)
 
-FetchContent_Declare(
-    asio
-    GIT_REPOSITORY https://github.com/chriskohlhoff/asio.git
-    GIT_TAG asio-1-32-0
-    GIT_SHALLOW TRUE
-)
-FetchContent_MakeAvailable(asio)
-
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include)
+
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
 
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
+
 add_executable(rest_registry_test rest_registry_test.cpp)
 
-target_include_directories(rest_registry_test PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(rest_registry_test PRIVATE include)
+
 target_link_libraries(rest_registry_test PRIVATE glz_test_exceptions)
 
-add_subdirectory(rest_server)
\ No newline at end of file
+target_link_libraries(rest_registry_test PRIVATE PkgConfig::asio)
+
+add_test(NAME rest_registry_test COMMAND rest_registry_test)
+
+add_subdirectory(rest_server)
diff --git a/tests/networking_tests/rest_test/rest_server/CMakeLists.txt b/tests/networking_tests/rest_test/rest_server/CMakeLists.txt
index 3f77da70..ba867b9e 100755
--- a/tests/networking_tests/rest_test/rest_server/CMakeLists.txt
+++ b/tests/networking_tests/rest_test/rest_server/CMakeLists.txt
@@ -2,8 +2,10 @@ project(rest_server VERSION 1.0 LANGUAGES CXX)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE ${asio_SOURCE_DIR}/asio/include)
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-target_compile_definitions(${PROJECT_NAME} PRIVATE 
-    SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
\ No newline at end of file
+target_compile_definitions(${PROJECT_NAME} PRIVATE
+    SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
+
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
diff --git a/tests/networking_tests/websocket_test/CMakeLists.txt b/tests/networking_tests/websocket_test/CMakeLists.txt
index 322423c7..36fe409c 100644
--- a/tests/networking_tests/websocket_test/CMakeLists.txt
+++ b/tests/networking_tests/websocket_test/CMakeLists.txt
@@ -2,8 +2,11 @@ project(websocket_server)
 
 add_executable(${PROJECT_NAME} ${PROJECT_NAME}.cpp)
 
-target_include_directories(${PROJECT_NAME} PRIVATE include ${asio_SOURCE_DIR}/asio/include)
+target_include_directories(${PROJECT_NAME} PRIVATE include)
 target_link_libraries(${PROJECT_NAME} PRIVATE glz_test_exceptions)
+target_link_libraries(${PROJECT_NAME} PRIVATE PkgConfig::asio)
 
-target_compile_definitions(${PROJECT_NAME} PRIVATE 
-    SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
\ No newline at end of file
+target_compile_definitions(${PROJECT_NAME}
+                           PRIVATE SOURCE_DIR="${CMAKE_CURRENT_SOURCE_DIR}")
+
+add_test(NAME ${PROJECT_NAME} COMMAND ${PROJECT_NAME})
