[pstl] Remove the stdlib headers from the PSTL and move them to the tests

Summary:
PSTL should not provide those headers since they belong to the standard
library. Instead, we define a dummy standard library in the tests that
provides those headers.

Reviewers: rodgert, MikeDvorskiy

Subscribers: mgorny, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D60535

llvm-svn: 358497
GitOrigin-RevId: 4d88b17b3f282b1023400837c3249c9f27774eca
diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt
index 3381497..dae99e1 100644
--- a/test/CMakeLists.txt
+++ b/test/CMakeLists.txt
@@ -18,6 +18,10 @@
     DEPENDS pstl-build-tests
     COMMENT "Build and run all the unit tests.")
 
+add_library(test_stdlib INTERFACE)
+target_include_directories(test_stdlib INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/support/stdlib")
+target_link_libraries(test_stdlib INTERFACE pstl::ParallelSTL)
+
 file(GLOB_RECURSE UNIT_TESTS "*.pass.cpp")
 foreach(_file IN LISTS UNIT_TESTS)
     file(RELATIVE_PATH _target "${CMAKE_CURRENT_SOURCE_DIR}" "${_file}")
@@ -27,8 +31,7 @@
 
     add_executable(${_target} EXCLUDE_FROM_ALL "${_file}")
     target_include_directories(${_target} PRIVATE "${CMAKE_CURRENT_LIST_DIR}")
-    target_link_libraries(${_target} PRIVATE pstl::ParallelSTL)
-    target_compile_definitions(${_target} PRIVATE -DPSTL_STANDALONE_TESTS)
+    target_link_libraries(${_target} PRIVATE test_stdlib)
     set_target_properties(${_target} PROPERTIES CXX_EXTENSIONS NO
                                                 RUNTIME_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
     add_test(${_target} "${CMAKE_CURRENT_BINARY_DIR}/${_target}")
diff --git a/test/pstl/header_inclusion_order_algorithm_0.pass.cpp b/test/pstl/header_inclusion_order_algorithm_0.pass.cpp
index 0b0d79b..935c7e5 100644
--- a/test/pstl/header_inclusion_order_algorithm_0.pass.cpp
+++ b/test/pstl/header_inclusion_order_algorithm_0.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/pstl/header_inclusion_order_algorithm_1.pass.cpp b/test/pstl/header_inclusion_order_algorithm_1.pass.cpp
index e346a3b..e1057e9 100644
--- a/test/pstl/header_inclusion_order_algorithm_1.pass.cpp
+++ b/test/pstl/header_inclusion_order_algorithm_1.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/algorithm"
-#include "pstl/execution"
-#else
 #include <algorithm>
 #include <execution>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/pstl/header_inclusion_order_memory_0.pass.cpp b/test/pstl/header_inclusion_order_memory_0.pass.cpp
index 1a8a117..9304d0c 100644
--- a/test/pstl/header_inclusion_order_memory_0.pass.cpp
+++ b/test/pstl/header_inclusion_order_memory_0.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/memory"
-#else
 #include <execution>
 #include <memory>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/pstl/header_inclusion_order_memory_1.pass.cpp b/test/pstl/header_inclusion_order_memory_1.pass.cpp
index 2e34323..ff767c7 100644
--- a/test/pstl/header_inclusion_order_memory_1.pass.cpp
+++ b/test/pstl/header_inclusion_order_memory_1.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/memory"
-#include "pstl/execution"
-#else
 #include <memory>
 #include <execution>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/pstl/header_inclusion_order_numeric_0.pass.cpp b/test/pstl/header_inclusion_order_numeric_0.pass.cpp
index 1ff596e..04725e9 100644
--- a/test/pstl/header_inclusion_order_numeric_0.pass.cpp
+++ b/test/pstl/header_inclusion_order_numeric_0.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/numeric"
-#else
 #include <execution>
 #include <numeric>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/pstl/header_inclusion_order_numeric_1.pass.cpp b/test/pstl/header_inclusion_order_numeric_1.pass.cpp
index 3c5b8cf..db38fbd 100644
--- a/test/pstl/header_inclusion_order_numeric_1.pass.cpp
+++ b/test/pstl/header_inclusion_order_numeric_1.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/numeric"
-#include "pstl/execution"
-#else
 #include <numeric>
 #include <execution>
-#endif // PSTL_STANDALONE_TESTS
 
 int32_t
 main()
diff --git a/test/std/algorithms/alg.merge/inplace_merge.pass.cpp b/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
index 2ba7457..7a8d065 100644
--- a/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
+++ b/test/std/algorithms/alg.merge/inplace_merge.pass.cpp
@@ -9,15 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include <algorithm>
-#include "pstl/execution"
-#include "pstl/algorithm"
-
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.merge/merge.pass.cpp b/test/std/algorithms/alg.merge/merge.pass.cpp
index 20e3a0d..b215beb 100644
--- a/test/std/algorithms/alg.merge/merge.pass.cpp
+++ b/test/std/algorithms/alg.merge/merge.pass.cpp
@@ -9,16 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include <algorithm>
-#include <functional>
-#include "pstl/execution"
-#include "pstl/algorithm"
-
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
+#include <functional>
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp
index 2a915ca..d2bb83b 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.copy/copy_if.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for copy_if and remove_copy_if
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
index b1880f1..874595f 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.partitions/is_partitioned.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
index 0203fff..716f6dd 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.partitions/partition.pass.cpp
@@ -10,19 +10,13 @@
 // Tests for stable_partition and partition
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
-
-#include "support/utils.h"
-
 #include <iterator>
 #include <type_traits>
 
+#include "support/utils.h"
+
 using namespace TestUtils;
 
 template <typename T>
diff --git a/test/std/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp
index e9ae0ee..dfb76e3 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.partitions/partition_copy.pass.cpp
@@ -10,19 +10,13 @@
 // Tests for stable_partition and partition_copy
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
-
-#include "support/utils.h"
-
 #include <cstdlib>
 #include <iterator>
 
+#include "support/utils.h"
+
 using namespace TestUtils;
 
 struct test_partition_copy
diff --git a/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp
index 79b53d1..9d4615c 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp b/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
index c8569a6..3edd3e8 100644
--- a/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/alg.reverse/reverse_copy.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/copy_move.pass.cpp b/test/std/algorithms/alg.modifying.operations/copy_move.pass.cpp
index c54d97a..18ba11b 100644
--- a/test/std/algorithms/alg.modifying.operations/copy_move.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/copy_move.pass.cpp
@@ -11,13 +11,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/fill.pass.cpp b/test/std/algorithms/alg.modifying.operations/fill.pass.cpp
index 19bc150..d54a7de 100644
--- a/test/std/algorithms/alg.modifying.operations/fill.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/fill.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/generate.pass.cpp b/test/std/algorithms/alg.modifying.operations/generate.pass.cpp
index 9862f14..9b423df 100644
--- a/test/std/algorithms/alg.modifying.operations/generate.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/generate.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <atomic>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/remove.pass.cpp b/test/std/algorithms/alg.modifying.operations/remove.pass.cpp
index 5a5404f..010e3c6 100644
--- a/test/std/algorithms/alg.modifying.operations/remove.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/remove.pass.cpp
@@ -10,13 +10,8 @@
 // Test for remove, remove_if
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/remove_copy.pass.cpp b/test/std/algorithms/alg.modifying.operations/remove_copy.pass.cpp
index 0437292..1dabb81 100644
--- a/test/std/algorithms/alg.modifying.operations/remove_copy.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/remove_copy.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/replace.pass.cpp b/test/std/algorithms/alg.modifying.operations/replace.pass.cpp
index 7784d38..9f172a4 100644
--- a/test/std/algorithms/alg.modifying.operations/replace.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/replace.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/replace_copy.pass.cpp b/test/std/algorithms/alg.modifying.operations/replace_copy.pass.cpp
index e4a147b..b6700f1 100644
--- a/test/std/algorithms/alg.modifying.operations/replace_copy.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/replace_copy.pass.cpp
@@ -11,13 +11,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/rotate.pass.cpp b/test/std/algorithms/alg.modifying.operations/rotate.pass.cpp
index 64f6a03..08241ac 100644
--- a/test/std/algorithms/alg.modifying.operations/rotate.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/rotate.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/rotate_copy.pass.cpp b/test/std/algorithms/alg.modifying.operations/rotate_copy.pass.cpp
index 3660e9d..3b1ce81 100644
--- a/test/std/algorithms/alg.modifying.operations/rotate_copy.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/rotate_copy.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/swap_ranges.pass.cpp b/test/std/algorithms/alg.modifying.operations/swap_ranges.pass.cpp
index b53003c..1f4031b 100644
--- a/test/std/algorithms/alg.modifying.operations/swap_ranges.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/swap_ranges.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/transform_binary.pass.cpp b/test/std/algorithms/alg.modifying.operations/transform_binary.pass.cpp
index d44284d..e440d67 100644
--- a/test/std/algorithms/alg.modifying.operations/transform_binary.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/transform_binary.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/transform_unary.pass.cpp b/test/std/algorithms/alg.modifying.operations/transform_unary.pass.cpp
index eae992c..48e3db4 100644
--- a/test/std/algorithms/alg.modifying.operations/transform_unary.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/transform_unary.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/unique.pass.cpp b/test/std/algorithms/alg.modifying.operations/unique.pass.cpp
index 92a9cdd..dc1e38b 100644
--- a/test/std/algorithms/alg.modifying.operations/unique.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/unique.pass.cpp
@@ -10,13 +10,8 @@
 // Test for unique
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.modifying.operations/unique_copy_equal.pass.cpp b/test/std/algorithms/alg.modifying.operations/unique_copy_equal.pass.cpp
index 9161fff..a3adb20 100644
--- a/test/std/algorithms/alg.modifying.operations/unique_copy_equal.pass.cpp
+++ b/test/std/algorithms/alg.modifying.operations/unique_copy_equal.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for unique_copy
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/adjacent_find.pass.cpp b/test/std/algorithms/alg.nonmodifying/adjacent_find.pass.cpp
index 50b01e3..1bccb53 100644
--- a/test/std/algorithms/alg.nonmodifying/adjacent_find.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/adjacent_find.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/all_of.pass.cpp b/test/std/algorithms/alg.nonmodifying/all_of.pass.cpp
index f73166e..2ad0c57 100644
--- a/test/std/algorithms/alg.nonmodifying/all_of.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/all_of.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/any_of.pass.cpp b/test/std/algorithms/alg.nonmodifying/any_of.pass.cpp
index 8d330c2..9e8cbe5 100644
--- a/test/std/algorithms/alg.nonmodifying/any_of.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/any_of.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/count.pass.cpp b/test/std/algorithms/alg.nonmodifying/count.pass.cpp
index 04b0f52..e1c649d 100644
--- a/test/std/algorithms/alg.nonmodifying/count.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/count.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for count and count_if
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/equal.pass.cpp b/test/std/algorithms/alg.nonmodifying/equal.pass.cpp
index 8ddadb8..ea4c09e 100644
--- a/test/std/algorithms/alg.nonmodifying/equal.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/equal.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/find.pass.cpp b/test/std/algorithms/alg.nonmodifying/find.pass.cpp
index 8d7cc02..a5d5b85 100644
--- a/test/std/algorithms/alg.nonmodifying/find.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/find.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for find
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/find_end.pass.cpp b/test/std/algorithms/alg.nonmodifying/find_end.pass.cpp
index a9b04f8..dfe499c 100644
--- a/test/std/algorithms/alg.nonmodifying/find_end.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/find_end.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/find_first_of.pass.cpp b/test/std/algorithms/alg.nonmodifying/find_first_of.pass.cpp
index eb67c2f..f090331 100644
--- a/test/std/algorithms/alg.nonmodifying/find_first_of.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/find_first_of.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/find_if.pass.cpp b/test/std/algorithms/alg.nonmodifying/find_if.pass.cpp
index 06763b1..b0f165d 100644
--- a/test/std/algorithms/alg.nonmodifying/find_if.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/find_if.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for find_if and find_if_not
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/for_each.pass.cpp b/test/std/algorithms/alg.nonmodifying/for_each.pass.cpp
index cb0fa06..00e04f2 100644
--- a/test/std/algorithms/alg.nonmodifying/for_each.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/for_each.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/mismatch.pass.cpp b/test/std/algorithms/alg.nonmodifying/mismatch.pass.cpp
index ec34af0..f0f61ca 100644
--- a/test/std/algorithms/alg.nonmodifying/mismatch.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/mismatch.pass.cpp
@@ -9,17 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#include "pstl/numeric"
-#include "pstl/memory"
-
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/none_of.pass.cpp b/test/std/algorithms/alg.nonmodifying/none_of.pass.cpp
index 8ca113c..3abf7e3 100644
--- a/test/std/algorithms/alg.nonmodifying/none_of.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/none_of.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/nth_element.pass.cpp b/test/std/algorithms/alg.nonmodifying/nth_element.pass.cpp
index 7aee862..61fe8d7 100644
--- a/test/std/algorithms/alg.nonmodifying/nth_element.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/nth_element.pass.cpp
@@ -9,16 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include <algorithm>
 #include <iostream>
-#include "pstl/execution"
-#include "pstl/algorithm"
-
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.nonmodifying/search_n.pass.cpp b/test/std/algorithms/alg.nonmodifying/search_n.pass.cpp
index 846140a..28fcb36 100644
--- a/test/std/algorithms/alg.nonmodifying/search_n.pass.cpp
+++ b/test/std/algorithms/alg.nonmodifying/search_n.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/alg.heap.operations/is_heap.pass.cpp b/test/std/algorithms/alg.sorting/alg.heap.operations/is_heap.pass.cpp
index adfe96e..bfee4bd 100644
--- a/test/std/algorithms/alg.sorting/alg.heap.operations/is_heap.pass.cpp
+++ b/test/std/algorithms/alg.sorting/alg.heap.operations/is_heap.pass.cpp
@@ -10,13 +10,8 @@
 // Tests for is_heap, is_heap_until
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 #include <iostream>
diff --git a/test/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp b/test/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp
index 7adadd5..cdfca24 100644
--- a/test/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp
+++ b/test/std/algorithms/alg.sorting/alg.lex.comparison/lexicographical_compare.pass.cpp
@@ -9,15 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iostream>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp b/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp
index e3fec86..01016b8 100644
--- a/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp
+++ b/test/std/algorithms/alg.sorting/alg.min.max/minmax_element.pass.cpp
@@ -9,21 +9,14 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
-
-#include "support/utils.h"
-
 #include <set>
 #include <cassert>
 #include <cmath>
 
+#include "support/utils.h"
+
 using namespace TestUtils;
 
 struct check_minelement
diff --git a/test/std/algorithms/alg.sorting/alg.set.operations/includes.pass.cpp b/test/std/algorithms/alg.sorting/alg.set.operations/includes.pass.cpp
index fff2284..431ce0d 100644
--- a/test/std/algorithms/alg.sorting/alg.set.operations/includes.pass.cpp
+++ b/test/std/algorithms/alg.sorting/alg.set.operations/includes.pass.cpp
@@ -9,16 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
 #include <cmath>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/alg.set.operations/set.pass.cpp b/test/std/algorithms/alg.sorting/alg.set.operations/set.pass.cpp
index 6d8c089..dbe59d0 100644
--- a/test/std/algorithms/alg.sorting/alg.set.operations/set.pass.cpp
+++ b/test/std/algorithms/alg.sorting/alg.set.operations/set.pass.cpp
@@ -9,17 +9,10 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
 #include <cmath>
 #include <chrono>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/is_sorted.pass.cpp b/test/std/algorithms/alg.sorting/is_sorted.pass.cpp
index a5219f7..e7d84f1 100644
--- a/test/std/algorithms/alg.sorting/is_sorted.pass.cpp
+++ b/test/std/algorithms/alg.sorting/is_sorted.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/partial_sort.pass.cpp b/test/std/algorithms/alg.sorting/partial_sort.pass.cpp
index 54d30ab..701fee2 100644
--- a/test/std/algorithms/alg.sorting/partial_sort.pass.cpp
+++ b/test/std/algorithms/alg.sorting/partial_sort.pass.cpp
@@ -9,16 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
 #include <cmath>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/partial_sort_copy.pass.cpp b/test/std/algorithms/alg.sorting/partial_sort_copy.pass.cpp
index 44a2a99..6045176 100644
--- a/test/std/algorithms/alg.sorting/partial_sort_copy.pass.cpp
+++ b/test/std/algorithms/alg.sorting/partial_sort_copy.pass.cpp
@@ -9,16 +9,11 @@
 
 // Tests for partial_sort_copy
 
-#include <cmath>
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
+#include <cmath>
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/algorithms/alg.sorting/sort.pass.cpp b/test/std/algorithms/alg.sorting/sort.pass.cpp
index e2eb9ce..1997ec5 100644
--- a/test/std/algorithms/alg.sorting/sort.pass.cpp
+++ b/test/std/algorithms/alg.sorting/sort.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#else
 #include <execution>
 #include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/numerics/numeric.ops/adjacent_difference.pass.cpp b/test/std/numerics/numeric.ops/adjacent_difference.pass.cpp
index 4d05c33..eb3a48e 100644
--- a/test/std/numerics/numeric.ops/adjacent_difference.pass.cpp
+++ b/test/std/numerics/numeric.ops/adjacent_difference.pass.cpp
@@ -9,16 +9,9 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
 #include <iterator>
-
-#include "pstl/execution"
-#include "pstl/algorithm"
-#include "pstl/numeric"
-#else
 #include <execution>
-#include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
+#include <numeric>
 
 #include "support/utils.h"
 
diff --git a/test/std/numerics/numeric.ops/reduce.pass.cpp b/test/std/numerics/numeric.ops/reduce.pass.cpp
index d4709c5..83efe03 100644
--- a/test/std/numerics/numeric.ops/reduce.pass.cpp
+++ b/test/std/numerics/numeric.ops/reduce.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/numeric"
-#else
 #include <execution>
 #include <numeric>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/numerics/numeric.ops/scan.pass.cpp b/test/std/numerics/numeric.ops/scan.pass.cpp
index eafffcc..6ae02f1 100644
--- a/test/std/numerics/numeric.ops/scan.pass.cpp
+++ b/test/std/numerics/numeric.ops/scan.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/numeric"
-#else
 #include <execution>
 #include <numeric>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/numerics/numeric.ops/transform_reduce.pass.cpp b/test/std/numerics/numeric.ops/transform_reduce.pass.cpp
index 792190a..4065e72 100644
--- a/test/std/numerics/numeric.ops/transform_reduce.pass.cpp
+++ b/test/std/numerics/numeric.ops/transform_reduce.pass.cpp
@@ -9,14 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/numeric"
-#else
 #include <execution>
 #include <numeric>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/numerics/numeric.ops/transform_scan.pass.cpp b/test/std/numerics/numeric.ops/transform_scan.pass.cpp
index 282bf34..748da91 100644
--- a/test/std/numerics/numeric.ops/transform_scan.pass.cpp
+++ b/test/std/numerics/numeric.ops/transform_scan.pass.cpp
@@ -9,13 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/numeric"
-#else
 #include <execution>
 #include <numeric>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/utilities/memory/specialized.algorithms/uninitialized_construct.pass.cpp b/test/std/utilities/memory/specialized.algorithms/uninitialized_construct.pass.cpp
index 0e6e0c0..50c9db1 100644
--- a/test/std/utilities/memory/specialized.algorithms/uninitialized_construct.pass.cpp
+++ b/test/std/utilities/memory/specialized.algorithms/uninitialized_construct.pass.cpp
@@ -12,13 +12,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/memory"
-#else
 #include <execution>
 #include <memory>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/utilities/memory/specialized.algorithms/uninitialized_copy_move.pass.cpp b/test/std/utilities/memory/specialized.algorithms/uninitialized_copy_move.pass.cpp
index ce3ee1a..979c2e5 100644
--- a/test/std/utilities/memory/specialized.algorithms/uninitialized_copy_move.pass.cpp
+++ b/test/std/utilities/memory/specialized.algorithms/uninitialized_copy_move.pass.cpp
@@ -11,13 +11,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-#include "pstl/execution"
-#include "pstl/memory"
-#else
 #include <execution>
 #include <memory>
-#endif // PSTL_STANDALONE_TESTS
 
 #include "support/utils.h"
 
diff --git a/test/std/utilities/memory/specialized.algorithms/uninitialized_fill_destroy.pass.cpp b/test/std/utilities/memory/specialized.algorithms/uninitialized_fill_destroy.pass.cpp
index 12301f0..a57afcc 100644
--- a/test/std/utilities/memory/specialized.algorithms/uninitialized_fill_destroy.pass.cpp
+++ b/test/std/utilities/memory/specialized.algorithms/uninitialized_fill_destroy.pass.cpp
@@ -9,15 +9,8 @@
 
 #include "support/pstl_test_config.h"
 
-#ifdef PSTL_STANDALONE_TESTS
-
-#include "pstl/execution"
-#include "pstl/memory"
-#include "pstl/algorithm"
-#else
 #include <execution>
-#include <algorithm>
-#endif // PSTL_STANDALONE_TESTS
+#include <memory>
 
 #include "support/utils.h"
 
diff --git a/include/pstl/algorithm b/test/support/stdlib/algorithm
similarity index 67%
rename from include/pstl/algorithm
rename to test/support/stdlib/algorithm
index 684f8ea..39e6f74 100644
--- a/include/pstl/algorithm
+++ b/test/support/stdlib/algorithm
@@ -7,18 +7,20 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef _PSTL_ALGORITHM
-#define _PSTL_ALGORITHM
+#ifndef _TEST_SUPPORT_STDLIB_ALGORITHM
+#define _TEST_SUPPORT_STDLIB_ALGORITHM
 
-#include "internal/pstl_config.h"
+#include_next <algorithm>
+
+#include <pstl/internal/pstl_config.h>
 
 #if _PSTL_EXECUTION_POLICIES_DEFINED
 // If <execution> has already been included, pull in implementations
-#    include "internal/glue_algorithm_impl.h"
+#    include <pstl/internal/glue_algorithm_impl.h>
 #else
 // Otherwise just pull in forward declarations
-#    include "internal/glue_algorithm_defs.h"
+#    include <pstl/internal/glue_algorithm_defs.h>
 #    define _PSTL_ALGORITHM_FORWARD_DECLARED 1
 #endif
 
-#endif /* _PSTL_ALGORITHM */
+#endif /* _TEST_SUPPORT_STDLIB_ALGORITHM */
diff --git a/include/pstl/execution b/test/support/stdlib/execution
similarity index 67%
rename from include/pstl/execution
rename to test/support/stdlib/execution
index 333c61f..ad18c45 100644
--- a/include/pstl/execution
+++ b/test/support/stdlib/execution
@@ -7,30 +7,32 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef _PSTL_EXECUTION
-#define _PSTL_EXECUTION
+#ifndef _TEST_SUPPORT_STDLIB_EXECUTION
+#define _TEST_SUPPORT_STDLIB_EXECUTION
 
-#include "internal/pstl_config.h"
-#include "internal/execution_defs.h"
+// #include_next <execution> // None of the standard libraries PSTL is built on top have the <execution> header yet.
+
+#include <pstl/internal/pstl_config.h>
+#include <pstl/internal/execution_defs.h>
 
 #define _PSTL_EXECUTION_POLICIES_DEFINED 1
 
 #if _PSTL_ALGORITHM_FORWARD_DECLARED
-#    include "internal/glue_algorithm_impl.h"
+#    include <pstl/internal/glue_algorithm_impl.h>
 #endif
 
 #if _PSTL_MEMORY_FORWARD_DECLARED
-#    include "internal/glue_memory_impl.h"
+#    include <pstl/internal/glue_memory_impl.h>
 #endif
 
 #if _PSTL_NUMERIC_FORWARD_DECLARED
-#    include "internal/glue_numeric_impl.h"
+#    include <pstl/internal/glue_numeric_impl.h>
 #endif
 
 #if _PSTL_CPP17_EXECUTION_POLICIES_PRESENT
 _PSTL_PRAGMA_MESSAGE_POLICIES("The <Parallel STL> execution policies are defined in the namespace __pstl::execution")
 #else
-#    include "internal/glue_execution_defs.h"
+#    include <pstl/internal/glue_execution_defs.h>
 _PSTL_PRAGMA_MESSAGE_POLICIES(
     "The <Parallel STL> execution policies are injected into the standard namespace std::execution")
 #endif
@@ -45,4 +47,4 @@
 }
 } // namespace pstl
 
-#endif /* _PSTL_EXECUTION */
+#endif /* _TEST_SUPPORT_STDLIB_EXECUTION */
diff --git a/include/pstl/memory b/test/support/stdlib/memory
similarity index 68%
rename from include/pstl/memory
rename to test/support/stdlib/memory
index 359eaf1..7d11091 100644
--- a/include/pstl/memory
+++ b/test/support/stdlib/memory
@@ -7,18 +7,20 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef _PSTL_MEMORY
-#define _PSTL_MEMORY
+#ifndef _TEST_SUPPORT_STDLIB_MEMORY
+#define _TEST_SUPPORT_STDLIB_MEMORY
 
-#include "internal/pstl_config.h"
+#include_next <memory>
+
+#include <pstl/internal/pstl_config.h>
 
 #if _PSTL_EXECUTION_POLICIES_DEFINED
 // If <execution> has already been included, pull in implementations
-#    include "internal/glue_memory_impl.h"
+#    include <pstl/internal/glue_memory_impl.h>
 #else
 // Otherwise just pull in forward declarations
-#    include "internal/glue_memory_defs.h"
+#    include <pstl/internal/glue_memory_defs.h>
 #    define _PSTL_MEMORY_FORWARD_DECLARED 1
 #endif
 
-#endif /* _PSTL_MEMORY */
+#endif /* _TEST_SUPPORT_STDLIB_MEMORY */
diff --git a/include/pstl/numeric b/test/support/stdlib/numeric
similarity index 68%
rename from include/pstl/numeric
rename to test/support/stdlib/numeric
index 94e9b76..8f98bc7 100644
--- a/include/pstl/numeric
+++ b/test/support/stdlib/numeric
@@ -7,18 +7,20 @@
 //
 //===----------------------------------------------------------------------===//
 
-#ifndef _PSTL_NUMERIC
-#define _PSTL_NUMERIC
+#ifndef _TEST_SUPPORT_STDLIB_NUMERIC
+#define _TEST_SUPPORT_STDLIB_NUMERIC
 
-#include "internal/pstl_config.h"
+#include_next <numeric>
+
+#include <pstl/internal/pstl_config.h>
 
 #if _PSTL_EXECUTION_POLICIES_DEFINED
 // If <execution> has already been included, pull in implementations
-#    include "internal/glue_numeric_impl.h"
+#    include <pstl/internal/glue_numeric_impl.h>
 #else
 // Otherwise just pull in forward declarations
-#    include "internal/glue_numeric_defs.h"
+#    include <pstl/internal/glue_numeric_defs.h>
 #    define _PSTL_NUMERIC_FORWARD_DECLARED 1
 #endif
 
-#endif /* _PSTL_NUMERIC */
+#endif /* _TEST_SUPPORT_STDLIB_NUMERIC */