diff --git a/CMakeLists.txt b/CMakeLists.txt index 182af5f891..1704505fde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -74,6 +74,9 @@ option(USE_ASAN "enable AddressSanitizer (debugging)" OFF) option(USE_UBSAN "enable UndefinedBehaviorSanitizer (debugging)" OFF) option(TESTS_USE_FORCED_PMEM "run tests with PMEM_IS_PMEM_FORCE=1" OFF) option(TESTS_USE_VALGRIND "enable tests with valgrind (if found)" ON) +option(ENABLE_ARRAY "enable installation and testing of pmem::obj::experimental::array" ON) +option(ENABLE_VECTOR "enable installation and testing of pmem::obj::experimental::vector" ON) +option(ENABLE_STRING "enable installation and testing of pmem::obj::experimental::string (depends on ENABLE_VECTOR)" ON) # Required for MSVC to correctly define __cplusplus add_flag("/Zc:__cplusplus") @@ -223,7 +226,31 @@ configure_file(${CMAKE_SOURCE_DIR}/cmake/version.hpp.in ${CMAKE_SOURCE_DIR}/include/libpmemobj++/version.hpp @ONLY) install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} - FILES_MATCHING PATTERN "*.hpp") + FILES_MATCHING PATTERN "*.hpp" + PATTERN "array.hpp" EXCLUDE + PATTERN "vector.hpp" EXCLUDE + PATTERN "string.hpp" EXCLUDE + PATTERN "basic_string.hpp" EXCLUDE + PATTERN "contiguous_iterator.hpp" EXCLUDE + PATTERN "slice.hpp" EXCLUDE) + +if (ENABLE_ARRAY) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "array.hpp") +endif() + +if (ENABLE_VECTOR) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "vector.hpp") +endif() + +if (ENABLE_STRING) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "basic_string.hpp") + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "string.hpp") +endif() + +if (ENABLE_ARRAY OR ENABLE_VECTOR OR ENABLE_STRING) + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "contiguous_iterator.hpp") + install(DIRECTORY include/ DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} FILES_MATCHING PATTERN "slice.hpp") +endif() install(DIRECTORY examples/ DESTINATION ${CMAKE_INSTALL_DOCDIR}/examples FILES_MATCHING PATTERN "*.*pp") diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index 655781247d..b13b390e41 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -212,24 +212,9 @@ else() skip_test("make_persistent_array" "SKIPPED_BECAUSE_OF_CLANG_TEMPLATE_BUG") endif() -build_test(array_algorithms array_algorithms/array_algorithms.cpp) -add_test_generic(NAME array_algorithms TRACERS none pmemcheck) - -build_test(array_slice array_slice/array_slice.cpp) -add_test_generic(NAME array_slice CASE 0 TRACERS none pmemcheck memcheck) - -build_test(array_iterator array_iterator/array_iterator.cpp) -add_test_generic(NAME array_iterator TRACERS none pmemcheck) - -build_test(array_modifiers array_modifiers/array_modifiers.cpp) -add_test_generic(NAME array_modifiers TRACERS none pmemcheck memcheck) - build_test(iterator_traits iterator_traits/iterator_traits.cpp) add_test_generic(NAME iterator_traits TRACERS none) -build_test(temp_value temp_value/temp_value.cpp) -add_test_generic(NAME temp_value TRACERS none pmemcheck memcheck) - build_test(ctl ctl/ctl.cpp) add_test_generic(NAME ctl CASE 0 TRACERS none) @@ -238,84 +223,105 @@ if(WIN32) add_test_generic(NAME ctl_win CASE 0 TRACERS none) endif() -if(PMREORDER_SUPPORTED) - build_test(array_slice_pmreorder array_slice_pmreorder/array_slice_pmreorder.cpp) - add_test_generic(NAME array_slice_pmreorder CASE 0 TRACERS none) - add_test_generic(NAME array_slice_pmreorder CASE 1 TRACERS none) -else() - message(WARNING "Skipping pmreorder tests because of no pmreorder support") +if (ENABLE_ARRAY) + build_test(array_algorithms array_algorithms/array_algorithms.cpp) + add_test_generic(NAME array_algorithms TRACERS none pmemcheck) + + build_test(array_slice array_slice/array_slice.cpp) + add_test_generic(NAME array_slice CASE 0 TRACERS none pmemcheck memcheck) + + build_test(array_iterator array_iterator/array_iterator.cpp) + add_test_generic(NAME array_iterator TRACERS none pmemcheck) + + build_test(array_modifiers array_modifiers/array_modifiers.cpp) + add_test_generic(NAME array_modifiers TRACERS none pmemcheck memcheck) + + if(PMREORDER_SUPPORTED) + build_test(array_slice_pmreorder array_slice_pmreorder/array_slice_pmreorder.cpp) + add_test_generic(NAME array_slice_pmreorder CASE 0 TRACERS none) + add_test_generic(NAME array_slice_pmreorder CASE 1 TRACERS none) + else() + message(WARNING "Skipping pmreorder tests because of no pmreorder support") + endif() endif() -build_test(vector_assign_exceptions_length vector_assign_exceptions_length/vector_assign_exceptions_length.cpp) -add_test_generic(NAME vector_assign_exceptions_length TRACERS none memcheck pmemcheck) +if (ENABLE_VECTOR) + build_test(temp_value temp_value/temp_value.cpp) + add_test_generic(NAME temp_value TRACERS none pmemcheck memcheck) -build_test(vector_assign_exceptions_oom vector_assign_exceptions_oom/vector_assign_exceptions_oom.cpp) -add_test_generic(NAME vector_assign_exceptions_oom TRACERS none memcheck pmemcheck) + build_test(vector_assign_exceptions_length vector_assign_exceptions_length/vector_assign_exceptions_length.cpp) + add_test_generic(NAME vector_assign_exceptions_length TRACERS none memcheck pmemcheck) -build_test(vector_assign_txabort vector_assign_txabort/vector_assign_txabort.cpp) -add_test_generic(NAME vector_assign_txabort TRACERS none memcheck pmemcheck) + build_test(vector_assign_exceptions_oom vector_assign_exceptions_oom/vector_assign_exceptions_oom.cpp) + add_test_generic(NAME vector_assign_exceptions_oom TRACERS none memcheck pmemcheck) -build_test(vector_comp_operators vector_comp_operators/vector_comp_operators.cpp) -add_test_generic(NAME vector_comp_operators TRACERS none memcheck pmemcheck) + build_test(vector_assign_txabort vector_assign_txabort/vector_assign_txabort.cpp) + add_test_generic(NAME vector_assign_txabort TRACERS none memcheck pmemcheck) -build_test(vector_capacity_exceptions_length vector_capacity_exceptions_length/vector_capacity_exceptions_length.cpp) -add_test_generic(NAME vector_capacity_exceptions_length TRACERS none memcheck pmemcheck) + build_test(vector_comp_operators vector_comp_operators/vector_comp_operators.cpp) + add_test_generic(NAME vector_comp_operators TRACERS none memcheck pmemcheck) -build_test(vector_capacity_exceptions_oom vector_capacity_exceptions_oom/vector_capacity_exceptions_oom.cpp) -add_test_generic(NAME vector_capacity_exceptions_oom TRACERS none memcheck pmemcheck) + build_test(vector_capacity_exceptions_length vector_capacity_exceptions_length/vector_capacity_exceptions_length.cpp) + add_test_generic(NAME vector_capacity_exceptions_length TRACERS none memcheck pmemcheck) -build_test(vector_capacity_txabort vector_capacity_txabort/vector_capacity_txabort.cpp) -add_test_generic(NAME vector_capacity_txabort TRACERS none memcheck pmemcheck) + build_test(vector_capacity_exceptions_oom vector_capacity_exceptions_oom/vector_capacity_exceptions_oom.cpp) + add_test_generic(NAME vector_capacity_exceptions_oom TRACERS none memcheck pmemcheck) -build_test(vector_ctor_exceptions_nopmem vector_ctor_exceptions_nopmem/vector_ctor_exceptions_nopmem.cpp) -add_test_generic(NAME vector_ctor_exceptions_nopmem TRACERS none memcheck ) + build_test(vector_capacity_txabort vector_capacity_txabort/vector_capacity_txabort.cpp) + add_test_generic(NAME vector_capacity_txabort TRACERS none memcheck pmemcheck) -build_test(vector_ctor_exceptions_notx vector_ctor_exceptions_notx/vector_ctor_exceptions_notx.cpp) -add_test_generic(NAME vector_ctor_exceptions_notx TRACERS none memcheck) + build_test(vector_ctor_exceptions_nopmem vector_ctor_exceptions_nopmem/vector_ctor_exceptions_nopmem.cpp) + add_test_generic(NAME vector_ctor_exceptions_nopmem TRACERS none memcheck ) -build_test(vector_ctor_exceptions_oom vector_ctor_exceptions_oom/vector_ctor_exceptions_oom.cpp) -add_test_generic(NAME vector_ctor_exceptions_oom TRACERS none memcheck pmemcheck) + build_test(vector_ctor_exceptions_notx vector_ctor_exceptions_notx/vector_ctor_exceptions_notx.cpp) + add_test_generic(NAME vector_ctor_exceptions_notx TRACERS none memcheck) -build_test(vector_ctor_move vector_ctor_move/vector_ctor_move.cpp) -add_test_generic(NAME vector_ctor_move TRACERS none memcheck pmemcheck) + build_test(vector_ctor_exceptions_oom vector_ctor_exceptions_oom/vector_ctor_exceptions_oom.cpp) + add_test_generic(NAME vector_ctor_exceptions_oom TRACERS none memcheck pmemcheck) -build_test(vector_ctor_capacity vector_ctor_capacity/vector_ctor_capacity.cpp) -add_test_generic(NAME vector_ctor_capacity TRACERS none memcheck pmemcheck) + build_test(vector_ctor_move vector_ctor_move/vector_ctor_move.cpp) + add_test_generic(NAME vector_ctor_move TRACERS none memcheck pmemcheck) -build_test(vector_dtor vector_dtor/vector_dtor.cpp) -add_test_generic(NAME vector_dtor TRACERS none memcheck pmemcheck) + build_test(vector_ctor_capacity vector_ctor_capacity/vector_ctor_capacity.cpp) + add_test_generic(NAME vector_ctor_capacity TRACERS none memcheck pmemcheck) -build_test(vector_iterators_access vector_iterators_access/vector_iterators_access.cpp) -add_test_generic(NAME vector_iterators_access TRACERS none memcheck pmemcheck) + build_test(vector_dtor vector_dtor/vector_dtor.cpp) + add_test_generic(NAME vector_dtor TRACERS none memcheck pmemcheck) -build_test(vector_ctor_check_copy vector_ctor_check_copy/vector_ctor_check_copy.cpp) -add_test_generic(NAME vector_ctor_check_copy TRACERS none memcheck pmemcheck) + build_test(vector_iterators_access vector_iterators_access/vector_iterators_access.cpp) + add_test_generic(NAME vector_iterators_access TRACERS none memcheck pmemcheck) -build_test(vector_modifiers_exceptions_oom vector_modifiers_exceptions_oom/vector_modifiers_exceptions_oom.cpp) -add_test_generic(NAME vector_modifiers_exceptions_oom TRACERS none memcheck pmemcheck) + build_test(vector_ctor_check_copy vector_ctor_check_copy/vector_ctor_check_copy.cpp) + add_test_generic(NAME vector_ctor_check_copy TRACERS none memcheck pmemcheck) -build_test(vector_modifiers_txabort vector_modifiers_txabort/vector_modifiers_txabort.cpp) -add_test_generic(NAME vector_modifiers_txabort TRACERS none memcheck pmemcheck) + build_test(vector_modifiers_exceptions_oom vector_modifiers_exceptions_oom/vector_modifiers_exceptions_oom.cpp) + add_test_generic(NAME vector_modifiers_exceptions_oom TRACERS none memcheck pmemcheck) -build_test(string_access string_access/string_access.cpp) -add_test_generic(NAME string_access TRACERS none memcheck pmemcheck) + build_test(vector_modifiers_txabort vector_modifiers_txabort/vector_modifiers_txabort.cpp) + add_test_generic(NAME vector_modifiers_txabort TRACERS none memcheck pmemcheck) -build_test(string_exceptions string_exceptions/string_exceptions.cpp) -add_test_generic(NAME string_exceptions TRACERS none memcheck pmemcheck) + build_test(vector_modifiers_type_requirements vector_modifiers_type_requirements/vector_modifiers_type_requirements.cpp) + add_test_generic(NAME vector_modifiers_type_requirements TRACERS none memcheck pmemcheck) -build_test(string_snapshot string_snapshot/string_snapshot.cpp) -add_test_generic(NAME string_snapshot TRACERS none memcheck pmemcheck) + build_test(vector_std_arg vector_std_arg/vector_std_arg.cpp) + add_test_generic(NAME vector_std_arg TRACERS none memcheck pmemcheck) -build_test(string_assign_tx_abort string_assign_tx_abort/string_assign_tx_abort.cpp) -add_test_generic(NAME string_assign_tx_abort TRACERS none memcheck pmemcheck) + build_test(vector_range vector_range/vector_range.cpp) + add_test_generic(NAME vector_range TRACERS none memcheck pmemcheck) +endif() + +if (ENABLE_STRING) + build_test(string_access string_access/string_access.cpp) + add_test_generic(NAME string_access TRACERS none memcheck pmemcheck) -build_test(vector_modifiers_type_requirements vector_modifiers_type_requirements/vector_modifiers_type_requirements.cpp) -add_test_generic(NAME vector_modifiers_type_requirements TRACERS none memcheck pmemcheck) + build_test(string_exceptions string_exceptions/string_exceptions.cpp) + add_test_generic(NAME string_exceptions TRACERS none memcheck pmemcheck) -build_test(vector_std_arg vector_std_arg/vector_std_arg.cpp) -add_test_generic(NAME vector_std_arg TRACERS none memcheck pmemcheck) + build_test(string_snapshot string_snapshot/string_snapshot.cpp) + add_test_generic(NAME string_snapshot TRACERS none memcheck pmemcheck) -build_test(vector_range vector_range/vector_range.cpp) -add_test_generic(NAME vector_range TRACERS none memcheck pmemcheck) + build_test(string_assign_tx_abort string_assign_tx_abort/string_assign_tx_abort.cpp) + add_test_generic(NAME string_assign_tx_abort TRACERS none memcheck pmemcheck) +endif() add_subdirectory(external) diff --git a/tests/external/CMakeLists.txt b/tests/external/CMakeLists.txt index ccbd7379ac..e911395ede 100644 --- a/tests/external/CMakeLists.txt +++ b/tests/external/CMakeLists.txt @@ -50,535 +50,541 @@ function(add_test_expect_failure name) set_tests_properties(${name}_fail_expected PROPERTIES WILL_FAIL TRUE) endfunction() -build_test(array_at libcxx/array/at.pass.cpp) -add_test_generic(NAME array_at TRACERS none) +if (ENABLE_ARRAY) + build_test(array_at libcxx/array/at.pass.cpp) + add_test_generic(NAME array_at TRACERS none) -build_test(array_begin libcxx/array/begin.pass.cpp) -add_test_generic(NAME array_begin TRACERS none) + build_test(array_begin libcxx/array/begin.pass.cpp) + add_test_generic(NAME array_begin TRACERS none) -build_test(array_compare libcxx/array/compare.pass.cpp) -add_test_generic(NAME array_compare TRACERS none) + build_test(array_compare libcxx/array/compare.pass.cpp) + add_test_generic(NAME array_compare TRACERS none) -build_test(array_contiguous libcxx/array/contiguous.pass.cpp) -add_test_generic(NAME array_contiguous TRACERS none) + build_test(array_contiguous libcxx/array/contiguous.pass.cpp) + add_test_generic(NAME array_contiguous TRACERS none) -build_test(array_empty libcxx/array/empty.pass.cpp) -add_test_generic(NAME array_empty TRACERS none) + build_test(array_empty libcxx/array/empty.pass.cpp) + add_test_generic(NAME array_empty TRACERS none) -build_test(array_front_back libcxx/array/front_back.pass.cpp) -add_test_generic(NAME array_front_back TRACERS none) + build_test(array_front_back libcxx/array/front_back.pass.cpp) + add_test_generic(NAME array_front_back TRACERS none) -build_test(array_indexing libcxx/array/indexing.pass.cpp) -add_test_generic(NAME array_indexing TRACERS none) + build_test(array_indexing libcxx/array/indexing.pass.cpp) + add_test_generic(NAME array_indexing TRACERS none) -build_test(array_max_size libcxx/array/max_size.pass.cpp) -add_test_generic(NAME array_max_size TRACERS none) + build_test(array_max_size libcxx/array/max_size.pass.cpp) + add_test_generic(NAME array_max_size TRACERS none) -if (MAX_ALIGN_TYPE_EXISTS) - build_test(array_size_and_alignment libcxx/array/size_and_alignment.pass.cpp) - add_test_generic(NAME array_size_and_alignment TRACERS none) -endif() - -build_test(array_types libcxx/array/types.pass.cpp) -add_test_generic(NAME array_types TRACERS none) + if (MAX_ALIGN_TYPE_EXISTS) + build_test(array_size_and_alignment libcxx/array/size_and_alignment.pass.cpp) + add_test_generic(NAME array_size_and_alignment TRACERS none) + endif() -add_test_expect_failure(array_compare_0 libcxx/array/compare.fail_0.cpp) -add_test_expect_failure(array_compare_1 libcxx/array/compare.fail_1.cpp) -add_test_expect_failure(array_compare_2 libcxx/array/compare.fail_2.cpp) + build_test(array_types libcxx/array/types.pass.cpp) + add_test_generic(NAME array_types TRACERS none) -build_test(array_cons_default libcxx/array/array.cons/default.pass.cpp) -add_test_generic(NAME array_cons_default TRACERS none) + add_test_expect_failure(array_compare_0 libcxx/array/compare.fail_0.cpp) + add_test_expect_failure(array_compare_1 libcxx/array/compare.fail_1.cpp) + add_test_expect_failure(array_compare_2 libcxx/array/compare.fail_2.cpp) -add_test_expect_failure(array_copy_assignment libcxx/array/array.cons/copy_assignment.fail.cpp) + build_test(array_cons_default libcxx/array/array.cons/default.pass.cpp) + add_test_generic(NAME array_cons_default TRACERS none) -build_test(array_cons_implicit_copy libcxx/array/array.cons/implicit_copy.pass.cpp) -add_test_generic(NAME array_cons_implicit_copy TRACERS none) + add_test_expect_failure(array_copy_assignment libcxx/array/array.cons/copy_assignment.fail.cpp) -build_test(array_initializer_list libcxx/array/array.cons/initializer_list.pass.cpp) -add_test_generic(NAME array_initializer_list TRACERS none) + build_test(array_cons_implicit_copy libcxx/array/array.cons/implicit_copy.pass.cpp) + add_test_generic(NAME array_cons_implicit_copy TRACERS none) -if (MAX_ALIGN_TYPE_EXISTS) - build_test(array_data_const libcxx/array/array.data/data_const.pass.cpp) - add_test_generic(NAME array_data_const TRACERS none) -endif() - -if (MAX_ALIGN_TYPE_EXISTS) - build_test(array_data libcxx/array/array.data/data.pass.cpp) - add_test_generic(NAME array_data TRACERS none) -endif() + build_test(array_initializer_list libcxx/array/array.cons/initializer_list.pass.cpp) + add_test_generic(NAME array_initializer_list TRACERS none) -add_test_expect_failure(array_fill libcxx/array/array.fill/fill.fail.cpp) + if (MAX_ALIGN_TYPE_EXISTS) + build_test(array_data_const libcxx/array/array.data/data_const.pass.cpp) + add_test_generic(NAME array_data_const TRACERS none) + endif() -build_test(array_fill libcxx/array/array.fill/fill.pass.cpp) -add_test_generic(NAME array_fill TRACERS none) + if (MAX_ALIGN_TYPE_EXISTS) + build_test(array_data libcxx/array/array.data/data.pass.cpp) + add_test_generic(NAME array_data TRACERS none) + endif() -build_test(array_size libcxx/array/array.size/size.pass.cpp) -add_test_generic(NAME array_size TRACERS none) + add_test_expect_failure(array_fill libcxx/array/array.fill/fill.fail.cpp) -build_test(array_swap libcxx/array/array.special/swap.pass.cpp) -add_test_generic(NAME array_swap TRACERS none) + build_test(array_fill libcxx/array/array.fill/fill.pass.cpp) + add_test_generic(NAME array_fill TRACERS none) -add_test_expect_failure(array_swap libcxx/array/array.swap/swap.fail.cpp) + build_test(array_size libcxx/array/array.size/size.pass.cpp) + add_test_generic(NAME array_size TRACERS none) -build_test(array_swap_2 libcxx/array/array.swap/swap.pass.cpp) -add_test_generic(NAME array_swap_2 TRACERS none) + build_test(array_swap libcxx/array/array.special/swap.pass.cpp) + add_test_generic(NAME array_swap TRACERS none) -build_test(array_get_const_rv libcxx/array/array.tuple/get_const_rv.pass.cpp) -add_test_generic(NAME array_get_const_rv TRACERS none) + add_test_expect_failure(array_swap libcxx/array/array.swap/swap.fail.cpp) -build_test(array_get_const libcxx/array/array.tuple/get_const.pass.cpp) -add_test_generic(NAME array_get_const TRACERS none) + build_test(array_swap_2 libcxx/array/array.swap/swap.pass.cpp) + add_test_generic(NAME array_swap_2 TRACERS none) -build_test(array_get_rv libcxx/array/array.tuple/get_rv.pass.cpp) -add_test_generic(NAME array_get_rv TRACERS none) + build_test(array_get_const_rv libcxx/array/array.tuple/get_const_rv.pass.cpp) + add_test_generic(NAME array_get_const_rv TRACERS none) -build_test(array_get libcxx/array/array.tuple/get.pass.cpp) -add_test_generic(NAME array_get TRACERS none) + build_test(array_get_const libcxx/array/array.tuple/get_const.pass.cpp) + add_test_generic(NAME array_get_const TRACERS none) -add_test_expect_failure(array_get libcxx/array/array.tuple/get.fail.cpp) + build_test(array_get_rv libcxx/array/array.tuple/get_rv.pass.cpp) + add_test_generic(NAME array_get_rv TRACERS none) -build_test(array_iterators libcxx/array/iterators.pass.cpp) -add_test_generic(NAME array_iterators TRACERS none) + build_test(array_get libcxx/array/array.tuple/get.pass.cpp) + add_test_generic(NAME array_get TRACERS none) -build_test(vector_libcxx_assign_copy libcxx/vector/vector.cons/assign_copy.pass.cpp) -add_test_generic(NAME vector_libcxx_assign_copy TRACERS none pmemcheck memcheck) + add_test_expect_failure(array_get libcxx/array/array.tuple/get.fail.cpp) -build_test(vector_libcxx_assign_initializer_list libcxx/vector/vector.cons/assign_initializer_list.pass.cpp) -add_test_generic(NAME vector_libcxx_assign_initializer_list TRACERS none pmemcheck memcheck) - -build_test(vector_libcxx_assign_iter_iter libcxx/vector/vector.cons/assign_iter_iter.pass.cpp) -add_test_generic(NAME vector_libcxx_assign_iter_iter TRACERS none pmemcheck memcheck) + build_test(array_iterators libcxx/array/iterators.pass.cpp) + add_test_generic(NAME array_iterators TRACERS none) +endif() -build_test(vector_libcxx_assign_move_pass libcxx/vector/vector.cons/assign_move.pass.cpp) -add_test_generic(NAME vector_libcxx_assign_move_pass TRACERS none pmemcheck memcheck) +if (ENABLE_VECTOR) + build_test(vector_libcxx_assign_copy libcxx/vector/vector.cons/assign_copy.pass.cpp) + add_test_generic(NAME vector_libcxx_assign_copy TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_assign_size_value libcxx/vector/vector.cons/assign_size_value.pass.cpp) -add_test_generic(NAME vector_libcxx_assign_size_value TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_assign_initializer_list libcxx/vector/vector.cons/assign_initializer_list.pass.cpp) + add_test_generic(NAME vector_libcxx_assign_initializer_list TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_ctor_default libcxx/vector/vector.cons/construct_default.pass.cpp) -add_test_generic(NAME vector_libcxx_ctor_default TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_assign_iter_iter libcxx/vector/vector.cons/assign_iter_iter.pass.cpp) + add_test_generic(NAME vector_libcxx_assign_iter_iter TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_ctor_iter_iter libcxx/vector/vector.cons/construct_iter_iter.pass.cpp) -add_test_generic(NAME vector_libcxx_ctor_iter_iter TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_assign_move_pass libcxx/vector/vector.cons/assign_move.pass.cpp) + add_test_generic(NAME vector_libcxx_assign_move_pass TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_ctor_move libcxx/vector/vector.cons/move.pass.cpp) -add_test_generic(NAME vector_libcxx_ctor_move TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_assign_size_value libcxx/vector/vector.cons/assign_size_value.pass.cpp) + add_test_generic(NAME vector_libcxx_assign_size_value TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_ctor_size libcxx/vector/vector.cons/construct_size.pass.cpp) -add_test_generic(NAME vector_libcxx_ctor_size TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_ctor_default libcxx/vector/vector.cons/construct_default.pass.cpp) + add_test_generic(NAME vector_libcxx_ctor_default TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_ctor_size_value libcxx/vector/vector.cons/construct_size_value.pass.cpp) -add_test_generic(NAME vector_libcxx_ctor_size_value TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_ctor_iter_iter libcxx/vector/vector.cons/construct_iter_iter.pass.cpp) + add_test_generic(NAME vector_libcxx_ctor_iter_iter TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_copy libcxx/vector/vector.cons/copy.pass.cpp) -add_test_generic(NAME vector_libcxx_copy TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_ctor_move libcxx/vector/vector.cons/move.pass.cpp) + add_test_generic(NAME vector_libcxx_ctor_move TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_dtor_noexcept libcxx/vector/vector.cons/dtor_noexcept.pass.cpp) -add_test_generic(NAME vector_libcxx_dtor_noexcept TRACERS none) + build_test(vector_libcxx_ctor_size libcxx/vector/vector.cons/construct_size.pass.cpp) + add_test_generic(NAME vector_libcxx_ctor_size TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_contiguous libcxx/vector/contiguous.pass.cpp) -add_test_generic(NAME vector_libcxx_contiguous TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_ctor_size_value libcxx/vector/vector.cons/construct_size_value.pass.cpp) + add_test_generic(NAME vector_libcxx_ctor_size_value TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_types libcxx/vector/types.pass.cpp) -add_test_generic(NAME vector_libcxx_types TRACERS none) + build_test(vector_libcxx_copy libcxx/vector/vector.cons/copy.pass.cpp) + add_test_generic(NAME vector_libcxx_copy TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_iterators libcxx/vector/iterators.pass.cpp) -add_test_generic(NAME vector_libcxx_iterators TRACERS TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_dtor_noexcept libcxx/vector/vector.cons/dtor_noexcept.pass.cpp) + add_test_generic(NAME vector_libcxx_dtor_noexcept TRACERS none) -build_test(vector_libcxx_data_const libcxx/vector/vector.data/data_const.pass.cpp) -add_test_generic(NAME vector_libcxx_data_const TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_contiguous libcxx/vector/contiguous.pass.cpp) + add_test_generic(NAME vector_libcxx_contiguous TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_data libcxx/vector/vector.data/data.pass.cpp) -add_test_generic(NAME vector_libcxx_data TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_types libcxx/vector/types.pass.cpp) + add_test_generic(NAME vector_libcxx_types TRACERS none) -build_test(vector_libcxx_initializer_list libcxx/vector/vector.cons/initializer_list.pass.cpp) -add_test_generic(NAME vector_libcxx_initializer_list TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_iterators libcxx/vector/iterators.pass.cpp) + add_test_generic(NAME vector_libcxx_iterators TRACERS TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_op_equal_initializer_list libcxx/vector/vector.cons/op_equal_initializer_list.pass.cpp) -add_test_generic(NAME vector_libcxx_op_equal_initializer_list TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_data_const libcxx/vector/vector.data/data_const.pass.cpp) + add_test_generic(NAME vector_libcxx_data_const TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_capacity libcxx/vector/vector.capacity/capacity.pass.cpp) -add_test_generic(NAME vector_libcxx_capacity TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_data libcxx/vector/vector.data/data.pass.cpp) + add_test_generic(NAME vector_libcxx_data TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_empty libcxx/vector/vector.capacity/empty.pass.cpp) -add_test_generic(NAME vector_libcxx_empty TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_initializer_list libcxx/vector/vector.cons/initializer_list.pass.cpp) + add_test_generic(NAME vector_libcxx_initializer_list TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_max_size libcxx/vector/vector.capacity/max_size.pass.cpp) -add_test_generic(NAME vector_libcxx_max_size TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_op_equal_initializer_list libcxx/vector/vector.cons/op_equal_initializer_list.pass.cpp) + add_test_generic(NAME vector_libcxx_op_equal_initializer_list TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_reserve libcxx/vector/vector.capacity/reserve.pass.cpp) -add_test_generic(NAME vector_libcxx_reserve TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_capacity libcxx/vector/vector.capacity/capacity.pass.cpp) + add_test_generic(NAME vector_libcxx_capacity TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_resize_size libcxx/vector/vector.capacity/resize_size.pass.cpp) -add_test_generic(NAME vector_libcxx_resize_size TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_empty libcxx/vector/vector.capacity/empty.pass.cpp) + add_test_generic(NAME vector_libcxx_empty TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_resize_size_value libcxx/vector/vector.capacity/resize_size_value.pass.cpp) -add_test_generic(NAME vector_libcxx_resize_size_value TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_max_size libcxx/vector/vector.capacity/max_size.pass.cpp) + add_test_generic(NAME vector_libcxx_max_size TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_shrink_to_fit libcxx/vector/vector.capacity/shrink_to_fit.pass.cpp) -add_test_generic(NAME vector_libcxx_shrink_to_fit TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_reserve libcxx/vector/vector.capacity/reserve.pass.cpp) + add_test_generic(NAME vector_libcxx_reserve TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_size libcxx/vector/vector.capacity/size.pass.cpp) -add_test_generic(NAME vector_libcxx_size TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_resize_size libcxx/vector/vector.capacity/resize_size.pass.cpp) + add_test_generic(NAME vector_libcxx_resize_size TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_swap libcxx/vector/vector.capacity/swap.pass.cpp) -add_test_generic(NAME vector_libcxx_swap TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_resize_size_value libcxx/vector/vector.capacity/resize_size_value.pass.cpp) + add_test_generic(NAME vector_libcxx_resize_size_value TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_clear libcxx/vector/vector.modifiers/clear.pass.cpp) -add_test_generic(NAME vector_libcxx_clear TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_shrink_to_fit libcxx/vector/vector.capacity/shrink_to_fit.pass.cpp) + add_test_generic(NAME vector_libcxx_shrink_to_fit TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_emplace libcxx/vector/vector.modifiers/emplace.pass.cpp) -add_test_generic(NAME vector_libcxx_emplace TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_size libcxx/vector/vector.capacity/size.pass.cpp) + add_test_generic(NAME vector_libcxx_size TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_emplace_back libcxx/vector/vector.modifiers/emplace_back.pass.cpp) -add_test_generic(NAME vector_libcxx_emplace_back TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_swap libcxx/vector/vector.capacity/swap.pass.cpp) + add_test_generic(NAME vector_libcxx_swap TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_emplace_extra libcxx/vector/vector.modifiers/emplace_extra.pass.cpp) -add_test_generic(NAME vector_libcxx_emplace_extra TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_clear libcxx/vector/vector.modifiers/clear.pass.cpp) + add_test_generic(NAME vector_libcxx_clear TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_erase_iter libcxx/vector/vector.modifiers/erase_iter.pass.cpp) -add_test_generic(NAME vector_libcxx_erase_iter TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_emplace libcxx/vector/vector.modifiers/emplace.pass.cpp) + add_test_generic(NAME vector_libcxx_emplace TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_erase_iter_iter libcxx/vector/vector.modifiers/erase_iter_iter.pass.cpp) -add_test_generic(NAME vector_libcxx_erase_iter_iter TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_emplace_back libcxx/vector/vector.modifiers/emplace_back.pass.cpp) + add_test_generic(NAME vector_libcxx_emplace_back TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_insert_iter_initializer_list libcxx/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp) -add_test_generic(NAME vector_libcxx_insert_iter_initializer_list TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_emplace_extra libcxx/vector/vector.modifiers/emplace_extra.pass.cpp) + add_test_generic(NAME vector_libcxx_emplace_extra TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_insert_iter_iter_iter libcxx/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp) -add_test_generic(NAME vector_libcxx_insert_iter_iter_iter TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_erase_iter libcxx/vector/vector.modifiers/erase_iter.pass.cpp) + add_test_generic(NAME vector_libcxx_erase_iter TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_insert_iter_rvalue libcxx/vector/vector.modifiers/insert_iter_rvalue.pass.cpp) -add_test_generic(NAME vector_libcxx_insert_iter_rvalue TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_erase_iter_iter libcxx/vector/vector.modifiers/erase_iter_iter.pass.cpp) + add_test_generic(NAME vector_libcxx_erase_iter_iter TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_insert_iter_size_value libcxx/vector/vector.modifiers/insert_iter_size_value.pass.cpp) -add_test_generic(NAME vector_libcxx_insert_iter_size_value TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_insert_iter_initializer_list libcxx/vector/vector.modifiers/insert_iter_initializer_list.pass.cpp) + add_test_generic(NAME vector_libcxx_insert_iter_initializer_list TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_insert_iter_value libcxx/vector/vector.modifiers/insert_iter_value.pass.cpp) -add_test_generic(NAME vector_libcxx_insert_iter_value TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_insert_iter_iter_iter libcxx/vector/vector.modifiers/insert_iter_iter_iter.pass.cpp) + add_test_generic(NAME vector_libcxx_insert_iter_iter_iter TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_pop_back libcxx/vector/vector.modifiers/pop_back.pass.cpp) -add_test_generic(NAME vector_libcxx_pop_back TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_insert_iter_rvalue libcxx/vector/vector.modifiers/insert_iter_rvalue.pass.cpp) + add_test_generic(NAME vector_libcxx_insert_iter_rvalue TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_push_back libcxx/vector/vector.modifiers/push_back.pass.cpp) -add_test_generic(NAME vector_libcxx_push_back TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_insert_iter_size_value libcxx/vector/vector.modifiers/insert_iter_size_value.pass.cpp) + add_test_generic(NAME vector_libcxx_insert_iter_size_value TRACERS none pmemcheck memcheck) -# XXX: port libcxx test vector.modifiers/push_back_exception_safety.pass + build_test(vector_libcxx_insert_iter_value libcxx/vector/vector.modifiers/insert_iter_value.pass.cpp) + add_test_generic(NAME vector_libcxx_insert_iter_value TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_push_back_rvalue libcxx/vector/vector.modifiers/push_back_rvalue.pass.cpp) -add_test_generic(NAME vector_libcxx_push_back_rvalue TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_pop_back libcxx/vector/vector.modifiers/pop_back.pass.cpp) + add_test_generic(NAME vector_libcxx_pop_back TRACERS none pmemcheck memcheck) -build_test(vector_libcxx_special_swap libcxx/vector/vector.special/swap.pass.cpp) -add_test_generic(NAME vector_libcxx_special_swap TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_push_back libcxx/vector/vector.modifiers/push_back.pass.cpp) + add_test_generic(NAME vector_libcxx_push_back TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_initializer_list libcxx/basic_string/string.cons/initializer_list.pass.cpp) -add_test_generic(NAME string_libcxx_cons_initializer_list TRACERS none pmemcheck memcheck) + # XXX: port libcxx test vector.modifiers/push_back_exception_safety.pass -build_test(string_libcxx_cons_iter_alloc libcxx/basic_string/string.cons/iter_alloc.pass.cpp) -add_test_generic(NAME string_libcxx_cons_iter_alloc TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_push_back_rvalue libcxx/vector/vector.modifiers/push_back_rvalue.pass.cpp) + add_test_generic(NAME vector_libcxx_push_back_rvalue TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_move libcxx/basic_string/string.cons/move.pass.cpp) -add_test_generic(NAME string_libcxx_cons_move TRACERS none pmemcheck memcheck) + build_test(vector_libcxx_special_swap libcxx/vector/vector.special/swap.pass.cpp) + add_test_generic(NAME vector_libcxx_special_swap TRACERS none pmemcheck memcheck) +endif() -build_test(string_libcxx_cons_pointer_alloc libcxx/basic_string/string.cons/pointer_alloc.pass.cpp) -add_test_generic(NAME string_libcxx_cons_pointer_alloc TRACERS none pmemcheck memcheck) +if (ENABLE_STRING) + build_test(string_libcxx_cons_initializer_list libcxx/basic_string/string.cons/initializer_list.pass.cpp) + add_test_generic(NAME string_libcxx_cons_initializer_list TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_pointer_size_alloc libcxx/basic_string/string.cons/pointer_size_alloc.pass.cpp) -add_test_generic(NAME string_libcxx_cons_pointer_size_alloc TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_iter_alloc libcxx/basic_string/string.cons/iter_alloc.pass.cpp) + add_test_generic(NAME string_libcxx_cons_iter_alloc TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_size_char_alloc libcxx/basic_string/string.cons/size_char_alloc.pass.cpp) -add_test_generic(NAME string_libcxx_cons_size_char_alloc TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_move libcxx/basic_string/string.cons/move.pass.cpp) + add_test_generic(NAME string_libcxx_cons_move TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_copy libcxx/basic_string/string.cons/copy.pass.cpp) -add_test_generic(NAME string_libcxx_cons_copy TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_pointer_alloc libcxx/basic_string/string.cons/pointer_alloc.pass.cpp) + add_test_generic(NAME string_libcxx_cons_pointer_alloc TRACERS none pmemcheck memcheck) -build_test(string_libcxx_cons_substr libcxx/basic_string/string.cons/substr.pass.cpp) -add_test_generic(NAME string_libcxx_cons_substr TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_pointer_size_alloc libcxx/basic_string/string.cons/pointer_size_alloc.pass.cpp) + add_test_generic(NAME string_libcxx_cons_pointer_size_alloc TRACERS none pmemcheck memcheck) -build_test(string_libcxx_dtor_noexcept libcxx/basic_string/string.cons/dtor_noexcept.pass.cpp) -add_test_generic(NAME string_libcxx_dtor_noexcept TRACERS none) + build_test(string_libcxx_cons_size_char_alloc libcxx/basic_string/string.cons/size_char_alloc.pass.cpp) + add_test_generic(NAME string_libcxx_cons_size_char_alloc TRACERS none pmemcheck memcheck) -build_test(string_libcxx_ops_compare_pointer libcxx/basic_string/string.ops/string_compare/pointer.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_pointer TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_copy libcxx/basic_string/string.cons/copy.pass.cpp) + add_test_generic(NAME string_libcxx_cons_copy TRACERS none pmemcheck memcheck) -build_test(string_libcxx_ops_compare_size_size_pointer_size libcxx/basic_string/string.ops/string_compare/size_size_pointer_size.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_size_size_pointer_size TRACERS none pmemcheck memcheck) + build_test(string_libcxx_cons_substr libcxx/basic_string/string.cons/substr.pass.cpp) + add_test_generic(NAME string_libcxx_cons_substr TRACERS none pmemcheck memcheck) -build_test(string_libcxx_ops_compare_size_size_pointer libcxx/basic_string/string.ops/string_compare/size_size_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_size_size_pointer TRACERS none pmemcheck memcheck) + build_test(string_libcxx_dtor_noexcept libcxx/basic_string/string.cons/dtor_noexcept.pass.cpp) + add_test_generic(NAME string_libcxx_dtor_noexcept TRACERS none) -build_test(string_libcxx_ops_compare_size_size_string_size_size libcxx/basic_string/string.ops/string_compare/size_size_string_size_size.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_size_size_string_size_size TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_pointer libcxx/basic_string/string.ops/string_compare/pointer.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_pointer TRACERS none pmemcheck memcheck) -build_test(string_libcxx_ops_compare_size_size_string libcxx/basic_string/string.ops/string_compare/size_size_string.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_size_size_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_size_size_pointer_size libcxx/basic_string/string.ops/string_compare/size_size_pointer_size.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_size_size_pointer_size TRACERS none pmemcheck memcheck) -build_test(string_libcxx_ops_compare_string libcxx/basic_string/string.ops/string_compare/string.pass.cpp) -add_test_generic(NAME string_libcxx_ops_compare_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_size_size_pointer libcxx/basic_string/string.ops/string_compare/size_size_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_size_size_pointer TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opne_pointer_string libcxx/basic_string/string.nonmembers/string_opne/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opne_pointer_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_size_size_string_size_size libcxx/basic_string/string.ops/string_compare/size_size_string_size_size.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_size_size_string_size_size TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opne_string_pointer libcxx/basic_string/string.nonmembers/string_opne/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opne_string_pointer TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_size_size_string libcxx/basic_string/string.ops/string_compare/size_size_string.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_size_size_string TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opne_string_string libcxx/basic_string/string.nonmembers/string_opne/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opne_string_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_ops_compare_string libcxx/basic_string/string.ops/string_compare/string.pass.cpp) + add_test_generic(NAME string_libcxx_ops_compare_string TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opeq_pointer_string libcxx/basic_string/string.nonmembers/string_opeq/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opeq_pointer_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_nonmembers_opne_pointer_string libcxx/basic_string/string.nonmembers/string_opne/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opne_pointer_string TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opeq_string_pointer libcxx/basic_string/string.nonmembers/string_opeq/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opeq_string_pointer TRACERS none pmemcheck memcheck) + build_test(string_libcxx_nonmembers_opne_string_pointer libcxx/basic_string/string.nonmembers/string_opne/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opne_string_pointer TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opeq_string_string libcxx/basic_string/string.nonmembers/string_opeq/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opeq_string_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_nonmembers_opne_string_string libcxx/basic_string/string.nonmembers/string_opne/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opne_string_string TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opgt_pointer_string libcxx/basic_string/string.nonmembers/string_opgt/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opgt_pointer_string TRACERS none pmemcheck memcheck) + build_test(string_libcxx_nonmembers_opeq_pointer_string libcxx/basic_string/string.nonmembers/string_opeq/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opeq_pointer_string TRACERS none pmemcheck memcheck) -build_test(string_libcxx_nonmembers_opgt_string_pointer libcxx/basic_string/string.nonmembers/string_opgt/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opgt_string_pointer TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_opgt_string_string libcxx/basic_string/string.nonmembers/string_opgt/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opgt_string_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_opge_pointer_string libcxx/basic_string/string.nonmembers/string_opge/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opge_pointer_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_opge_string_pointer libcxx/basic_string/string.nonmembers/string_opge/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opge_string_pointer TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_opge_string_string libcxx/basic_string/string.nonmembers/string_opge/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_opge_string_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_ople_pointer_string libcxx/basic_string/string.nonmembers/string_ople/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_ople_pointer_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_ople_string_pointer libcxx/basic_string/string.nonmembers/string_ople/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_ople_string_pointer TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_ople_string_string libcxx/basic_string/string.nonmembers/string_ople/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_ople_string_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_oplt_pointer_string libcxx/basic_string/string.nonmembers/string_oplt/pointer_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_oplt_pointer_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_oplt_string_pointer libcxx/basic_string/string.nonmembers/string_oplt/string_pointer.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_oplt_string_pointer TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_nonmembers_oplt_string_string libcxx/basic_string/string.nonmembers/string_oplt/string_string.pass.cpp) -add_test_generic(NAME string_libcxx_nonmembers_oplt_string_string TRACERS none pmemcheck memcheck) - -# XXX: port libcxx test basic_string/string.starts_with/starts_with.string_view.pass -# XXX: port libcxx test basic_string/string.starts_with/starts_with.ptr.pass -# XXX: port libcxx test basic_string/string.starts_with/starts_with.char.pass -# XXX: port libcxx test basic_string/test_trai -# XXX: port libcxx test basic_string/string.ends_with/ends_with.ptr.pass -# XXX: port libcxx test basic_string/string.ends_with/ends_with.string_view.pass -# XXX: port libcxx test basic_string/string.ends_with/ends_with.char.pass - -build_test(string_libcxx_access_at libcxx/basic_string/string.access/at.pass.cpp) -add_test_generic(NAME string_libcxx_access_at TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_access_back libcxx/basic_string/string.access/back.pass.cpp) -add_test_generic(NAME string_libcxx_access_back TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_access_front libcxx/basic_string/string.access/front.pass.cpp) -add_test_generic(NAME string_libcxx_access_front TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_access_index libcxx/basic_string/string.access/index.pass.cpp) -add_test_generic(NAME string_libcxx_access_index TRACERS none pmemcheck memcheck) - -# XXX: port libcxx test basic_string/string.nonmembers/string_oplt=/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_oplt=/string_view_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_operator==/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_operator==/string_view_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.special/swap.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.special/swap_noexcept.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/stream_extract.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/stream_insert.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_delim_rv.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_delim.pass -# XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_rv.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op+/pointer_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_pointer.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op+/char_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_char.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_oplt/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_oplt/string_view_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op!=/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_op!=/string_view_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_opgt/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_opgt/string_view_string.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_opgt=/string_string_view.pass -# XXX: port libcxx test basic_string/string.nonmembers/string_opgt=/string_view_string.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.of/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.of/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.of/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.of/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.of/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_compare/size_size_string_view.pass -# XXX: port libcxx test basic_string/string.ops/string_compare/size_size_T_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_compare/string_view.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_rfind/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_rfind/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_rfind/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_rfind/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_rfind/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.of/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.of/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.of/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.of/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find.first.of/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find/string_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find/string_view_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find/pointer_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find/char_size.pass -# XXX: port libcxx test basic_string/string.ops/string_find/pointer_size_size.pass -# XXX: port libcxx test basic_string/string.ops/string_substr/substr.pass -# XXX: port libcxx test basic_string/string.ops/string.accessors/get_allocator.pass -# XXX: port libcxx test basic_string/string.ops/string.accessors/c_str.pass -# XXX: port libcxx test basic_string/string.ops/string.accessors/data.pass -# XXX: port libcxx test basic_string/types.pass -# XXX: port libcxx test basic_string/traits_mismatch.fail -# XXX: port libcxx test basic_string/string.modifiers/string_swap/swap.pass -# XXX: port libcxx test basic_string/string.modifiers/string_erase/iter_iter.pass -# XXX: port libcxx test basic_string/string.modifiers/string_erase/size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_erase/iter.pass -# XXX: port libcxx test basic_string/string.modifiers/string_erase/pop_back.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_size_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_iter_iter.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string_view.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_T_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_string_view.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_initializer_list.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_string.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_pointer.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_pointer.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_pointer_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_size_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_pointer_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/string.pass -# XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/initializer_list.pass -# XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/pointer.pass -# XXX: port libcxx test basic_string/string.modifiers/string_copy/copy.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/push_back.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/iterator.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/T_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/string_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/pointer_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/size_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/string_view.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/string.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/initializer_list.pass -# XXX: port libcxx test basic_string/string.modifiers/string_append/pointer.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_initializer_list.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_string_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_string.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_size_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_size_char.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_pointer.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_pointer_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_iter_iter.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/string_view.pass -# XXX: port libcxx test basic_string/string.modifiers/string_insert/size_T_size_size.pass - -# XXX: port libcxx test basic_string/string.modifiers/string_assign/T_size_size.pass -# XXX: port libcxx test basic_string/string.modifiers/string_assign/string_view.pass - -build_test(string_libcxx_modifiers_assign_initializer_list libcxx/basic_string/string.modifiers/string_assign/initializer_list.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_initializer_list TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_iterator libcxx/basic_string/string.modifiers/string_assign/iterator.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_iterator TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_pointer libcxx/basic_string/string.modifiers/string_assign/pointer.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_pointer TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_pointer_size libcxx/basic_string/string.modifiers/string_assign/pointer_size.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_pointer_size TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_rv_string libcxx/basic_string/string.modifiers/string_assign/rv_string.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_rv_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_size_char libcxx/basic_string/string.modifiers/string_assign/size_char.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_size_char TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_string libcxx/basic_string/string.modifiers/string_assign/string.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_string TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_modifiers_assign_string_size_size libcxx/basic_string/string.modifiers/string_assign/string_size_size.pass.cpp) -add_test_generic(NAME string_libcxx_modifiers_assign_string_size_size TRACERS none pmemcheck memcheck) - -# XXX: port libcxx test basic_string/string.modifiers/nothing_to_do.pass -# XXX: port libcxx test basic_string/char.bad.fail -# XXX: port libcxx test basic_string/string.iterators/db_iterators_8.pass -# XXX: port libcxx test basic_string/string.iterators/begin.pass -# XXX: port libcxx test basic_string/string.iterators/cbegin.pass -# XXX: port libcxx test basic_string/string.iterators/rend.pass -# XXX: port libcxx test basic_string/string.iterators/cend.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_5.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_2.pass -# XXX: port libcxx test basic_string/string.iterators/crbegin.pass -# XXX: port libcxx test basic_string/string.iterators/iterators.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_7.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_3.pass -# XXX: port libcxx test basic_string/string.iterators/rbegin.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_4.pass -# XXX: port libcxx test basic_string/string.iterators/crend.pass -# XXX: port libcxx test basic_string/string.iterators/end.pass -# XXX: port libcxx test basic_string/string.iterators/db_iterators_6.pass -# XXX: port libcxx test basic_string/string.require/contiguous.pass -# XXX: port libcxx test basic_string/string.capacity/clear.pass -# XXX: port libcxx test basic_string/string.capacity/resize_size.pass -# XXX: port libcxx test basic_string/string.capacity/size.pass -# XXX: port libcxx test basic_string/string.capacity/length.pass -# XXX: port libcxx test basic_string/string.capacity/reserve.pass -# XXX: port libcxx test basic_string/string.capacity/capacity.pass -# XXX: port libcxx test basic_string/string.capacity/shrink_to_fit.pass -# XXX: port libcxx test basic_string/string.capacity/empty.fail -# XXX: port libcxx test basic_string/string.capacity/empty.pass -# XXX: port libcxx test basic_string/string.capacity/resize_size_char.pass -# XXX: port libcxx test basic_string/string.capacity/max_size.pass -# XXX: port libcxx test basic_string/string.capacity/over_max_size.pass -# XXX: port libcxx test basic_string/string.cons/string_view_assignment.pass -# XXX: port libcxx test basic_string/string.cons/T_size_size.pass - -build_test(string_libcxx_brace_assignment libcxx/basic_string/string.cons/brace_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_brace_assignment TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_char_assignment libcxx/basic_string/string.cons/char_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_char_assignment TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_copy_assignment libcxx/basic_string/string.cons/copy_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_copy_assignment TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_initializer_list_assignment libcxx/basic_string/string.cons/initializer_list_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_initializer_list_assignment TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_move_assignment libcxx/basic_string/string.cons/move_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_move_assignment TRACERS none pmemcheck memcheck) - -build_test(string_libcxx_pointer_assignment libcxx/basic_string/string.cons/pointer_assignment.pass.cpp) -add_test_generic(NAME string_libcxx_pointer_assignment TRACERS none pmemcheck memcheck) - -# XXX: port libcxx test basic_string/string.cons/string_view.pass -# XXX: port libcxx test basic_string/string.cons/initializer_list_assignment.pass -# XXX: port libcxx test basic_string/string.cons/string_view.fail + build_test(string_libcxx_nonmembers_opeq_string_pointer libcxx/basic_string/string.nonmembers/string_opeq/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opeq_string_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opeq_string_string libcxx/basic_string/string.nonmembers/string_opeq/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opeq_string_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opgt_pointer_string libcxx/basic_string/string.nonmembers/string_opgt/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opgt_pointer_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opgt_string_pointer libcxx/basic_string/string.nonmembers/string_opgt/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opgt_string_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opgt_string_string libcxx/basic_string/string.nonmembers/string_opgt/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opgt_string_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opge_pointer_string libcxx/basic_string/string.nonmembers/string_opge/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opge_pointer_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opge_string_pointer libcxx/basic_string/string.nonmembers/string_opge/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opge_string_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_opge_string_string libcxx/basic_string/string.nonmembers/string_opge/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_opge_string_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_ople_pointer_string libcxx/basic_string/string.nonmembers/string_ople/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_ople_pointer_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_ople_string_pointer libcxx/basic_string/string.nonmembers/string_ople/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_ople_string_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_ople_string_string libcxx/basic_string/string.nonmembers/string_ople/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_ople_string_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_oplt_pointer_string libcxx/basic_string/string.nonmembers/string_oplt/pointer_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_oplt_pointer_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_oplt_string_pointer libcxx/basic_string/string.nonmembers/string_oplt/string_pointer.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_oplt_string_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_nonmembers_oplt_string_string libcxx/basic_string/string.nonmembers/string_oplt/string_string.pass.cpp) + add_test_generic(NAME string_libcxx_nonmembers_oplt_string_string TRACERS none pmemcheck memcheck) + + # XXX: port libcxx test basic_string/string.starts_with/starts_with.string_view.pass + # XXX: port libcxx test basic_string/string.starts_with/starts_with.ptr.pass + # XXX: port libcxx test basic_string/string.starts_with/starts_with.char.pass + # XXX: port libcxx test basic_string/test_trai + # XXX: port libcxx test basic_string/string.ends_with/ends_with.ptr.pass + # XXX: port libcxx test basic_string/string.ends_with/ends_with.string_view.pass + # XXX: port libcxx test basic_string/string.ends_with/ends_with.char.pass + + build_test(string_libcxx_access_at libcxx/basic_string/string.access/at.pass.cpp) + add_test_generic(NAME string_libcxx_access_at TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_access_back libcxx/basic_string/string.access/back.pass.cpp) + add_test_generic(NAME string_libcxx_access_back TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_access_front libcxx/basic_string/string.access/front.pass.cpp) + add_test_generic(NAME string_libcxx_access_front TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_access_index libcxx/basic_string/string.access/index.pass.cpp) + add_test_generic(NAME string_libcxx_access_index TRACERS none pmemcheck memcheck) + + # XXX: port libcxx test basic_string/string.nonmembers/string_oplt=/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_oplt=/string_view_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_operator==/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_operator==/string_view_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.special/swap.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.special/swap_noexcept.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/stream_extract.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/stream_insert.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_delim_rv.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_delim.pass + # XXX: port libcxx test basic_string/string.nonmembers/string.io/get_line_rv.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op+/pointer_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_pointer.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op+/char_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_char.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op+/string_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_oplt/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_oplt/string_view_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op!=/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_op!=/string_view_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_opgt/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_opgt/string_view_string.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_opgt=/string_string_view.pass + # XXX: port libcxx test basic_string/string.nonmembers/string_opgt=/string_view_string.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.of/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.of/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.of/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.of/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.of/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.last.not.of/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_compare/size_size_string_view.pass + # XXX: port libcxx test basic_string/string.ops/string_compare/size_size_T_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_compare/string_view.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.not.of/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_rfind/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_rfind/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_rfind/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_rfind/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_rfind/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.of/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.of/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.of/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.of/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find.first.of/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find/string_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find/string_view_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find/pointer_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find/char_size.pass + # XXX: port libcxx test basic_string/string.ops/string_find/pointer_size_size.pass + # XXX: port libcxx test basic_string/string.ops/string_substr/substr.pass + # XXX: port libcxx test basic_string/string.ops/string.accessors/get_allocator.pass + # XXX: port libcxx test basic_string/string.ops/string.accessors/c_str.pass + # XXX: port libcxx test basic_string/string.ops/string.accessors/data.pass + # XXX: port libcxx test basic_string/types.pass + # XXX: port libcxx test basic_string/traits_mismatch.fail + # XXX: port libcxx test basic_string/string.modifiers/string_swap/swap.pass + # XXX: port libcxx test basic_string/string.modifiers/string_erase/iter_iter.pass + # XXX: port libcxx test basic_string/string.modifiers/string_erase/size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_erase/iter.pass + # XXX: port libcxx test basic_string/string.modifiers/string_erase/pop_back.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_size_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_iter_iter.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_string_view.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_T_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_string_view.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_initializer_list.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_string.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_pointer.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_pointer.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_pointer_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/iter_iter_size_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_replace/size_size_pointer_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/string.pass + # XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/initializer_list.pass + # XXX: port libcxx test basic_string/string.modifiers/string_op_plus_equal/pointer.pass + # XXX: port libcxx test basic_string/string.modifiers/string_copy/copy.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/push_back.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/iterator.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/T_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/string_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/pointer_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/size_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/string_view.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/string.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/initializer_list.pass + # XXX: port libcxx test basic_string/string.modifiers/string_append/pointer.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_initializer_list.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_string_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_string.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_size_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_size_char.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_pointer.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_pointer_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/iter_iter_iter.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/string_view.pass + # XXX: port libcxx test basic_string/string.modifiers/string_insert/size_T_size_size.pass + + # XXX: port libcxx test basic_string/string.modifiers/string_assign/T_size_size.pass + # XXX: port libcxx test basic_string/string.modifiers/string_assign/string_view.pass + + build_test(string_libcxx_modifiers_assign_initializer_list libcxx/basic_string/string.modifiers/string_assign/initializer_list.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_initializer_list TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_iterator libcxx/basic_string/string.modifiers/string_assign/iterator.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_iterator TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_pointer libcxx/basic_string/string.modifiers/string_assign/pointer.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_pointer TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_pointer_size libcxx/basic_string/string.modifiers/string_assign/pointer_size.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_pointer_size TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_rv_string libcxx/basic_string/string.modifiers/string_assign/rv_string.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_rv_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_size_char libcxx/basic_string/string.modifiers/string_assign/size_char.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_size_char TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_string libcxx/basic_string/string.modifiers/string_assign/string.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_string TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_modifiers_assign_string_size_size libcxx/basic_string/string.modifiers/string_assign/string_size_size.pass.cpp) + add_test_generic(NAME string_libcxx_modifiers_assign_string_size_size TRACERS none pmemcheck memcheck) + + # XXX: port libcxx test basic_string/string.modifiers/nothing_to_do.pass + # XXX: port libcxx test basic_string/char.bad.fail + # XXX: port libcxx test basic_string/string.iterators/db_iterators_8.pass + # XXX: port libcxx test basic_string/string.iterators/begin.pass + # XXX: port libcxx test basic_string/string.iterators/cbegin.pass + # XXX: port libcxx test basic_string/string.iterators/rend.pass + # XXX: port libcxx test basic_string/string.iterators/cend.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_5.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_2.pass + # XXX: port libcxx test basic_string/string.iterators/crbegin.pass + # XXX: port libcxx test basic_string/string.iterators/iterators.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_7.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_3.pass + # XXX: port libcxx test basic_string/string.iterators/rbegin.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_4.pass + # XXX: port libcxx test basic_string/string.iterators/crend.pass + # XXX: port libcxx test basic_string/string.iterators/end.pass + # XXX: port libcxx test basic_string/string.iterators/db_iterators_6.pass + # XXX: port libcxx test basic_string/string.require/contiguous.pass + # XXX: port libcxx test basic_string/string.capacity/clear.pass + # XXX: port libcxx test basic_string/string.capacity/resize_size.pass + # XXX: port libcxx test basic_string/string.capacity/size.pass + # XXX: port libcxx test basic_string/string.capacity/length.pass + # XXX: port libcxx test basic_string/string.capacity/reserve.pass + # XXX: port libcxx test basic_string/string.capacity/capacity.pass + # XXX: port libcxx test basic_string/string.capacity/shrink_to_fit.pass + # XXX: port libcxx test basic_string/string.capacity/empty.fail + # XXX: port libcxx test basic_string/string.capacity/empty.pass + # XXX: port libcxx test basic_string/string.capacity/resize_size_char.pass + # XXX: port libcxx test basic_string/string.capacity/max_size.pass + # XXX: port libcxx test basic_string/string.capacity/over_max_size.pass + # XXX: port libcxx test basic_string/string.cons/string_view_assignment.pass + # XXX: port libcxx test basic_string/string.cons/T_size_size.pass + + build_test(string_libcxx_brace_assignment libcxx/basic_string/string.cons/brace_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_brace_assignment TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_char_assignment libcxx/basic_string/string.cons/char_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_char_assignment TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_copy_assignment libcxx/basic_string/string.cons/copy_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_copy_assignment TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_initializer_list_assignment libcxx/basic_string/string.cons/initializer_list_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_initializer_list_assignment TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_move_assignment libcxx/basic_string/string.cons/move_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_move_assignment TRACERS none pmemcheck memcheck) + + build_test(string_libcxx_pointer_assignment libcxx/basic_string/string.cons/pointer_assignment.pass.cpp) + add_test_generic(NAME string_libcxx_pointer_assignment TRACERS none pmemcheck memcheck) + + # XXX: port libcxx test basic_string/string.cons/string_view.pass + # XXX: port libcxx test basic_string/string.cons/initializer_list_assignment.pass + # XXX: port libcxx test basic_string/string.cons/string_view.fail +endif()