1
0
forked from boostorg/core

Compare commits

...

32 Commits

Author SHA1 Message Date
Peter Dimov
92f6cfb3cc Remove hash_value overload for basic_string_view; it's no longer needed 2024-11-11 03:18:02 +02:00
Peter Dimov
ed452c57a3 Add sv_hash_test to test/CMakeLists.txt 2024-11-11 02:31:11 +02:00
Peter Dimov
78885aab8e Disable serialization tests under MinGW 32 bit 2024-11-10 22:35:54 +02:00
Peter Dimov
8ebe2e7f57 Update ci.yml 2024-11-10 19:57:55 +02:00
Peter Dimov
32e6c30f4b Add test/sv_hash_test.cpp 2024-11-10 19:32:31 +02:00
Peter Dimov
cebfe007e8 Update test/Jamfile 2024-11-10 16:21:59 +02:00
Peter Dimov
3e16f3df14 Update .drone.jsonnet 2024-11-10 15:43:57 +02:00
Peter Dimov
e3a2e88e4c Update .drone.jsonnet 2024-08-21 10:50:28 +03:00
Peter Dimov
5e451b6c84 Add VERBATIM to add_custom_target 2024-08-21 04:14:05 +03:00
Peter Dimov
88a957b21c test/Jamfile: add cxx11_ref_qualifiers (GCC 4.8+) to Serialization tests because of Optional 2024-08-21 03:02:31 +03:00
Peter Dimov
1bac0ccfd1 Update build.jam 2024-08-21 02:32:32 +03:00
Rene Rivera
602961e526 Update build deps. 2024-08-01 21:30:37 -05:00
Rene Rivera
366802b43c Adjust doc build to avoid boost-root references. 2024-07-28 10:42:22 -05:00
Rene Rivera
9dd0a8e1e4 Sync from upstream. 2024-07-27 11:09:51 -05:00
Rene Rivera
a09ee19e3e Sync from upstream. 2024-07-25 17:19:14 -05:00
Rene Rivera
040b018ce0 Restore warnings-as-errors-off that got accidentally removed in a merge. 2024-07-24 23:55:54 -05:00
Rene Rivera
42d0c5954a Move inter-lib dependencies to a project variable and into the build targets. 2024-07-23 22:34:24 -05:00
Rene Rivera
243eec26fe Update copyright dates. 2024-07-20 22:52:05 -05:00
Rene Rivera
44c32d7691 Change all <source> references to <library>. 2024-07-20 19:37:53 -05:00
Rene Rivera
0ee7dc5910 Sync from upstream. 2024-07-18 09:29:32 -05:00
Rene Rivera
983234baee Sync from upstream. 2024-07-12 08:54:55 -05:00
Rene Rivera
8b8944dd6e Bump B2 require to 5.2 2024-06-14 11:33:55 -05:00
Rene Rivera
278d3f0060 Sync from upstream. 2024-05-30 11:21:22 -05:00
Rene Rivera
a8c757ddf2 Add requires-b2 check to top-level build file. 2024-05-05 09:00:01 -05:00
Rene Rivera
98a055cf34 Add missing lib reference. 2024-04-25 22:20:12 -05:00
Rene Rivera
074a467d9d Sync from upstream. 2024-04-24 20:30:49 -05:00
Rene Rivera
0a238bb30d Sync from upstream. 2024-04-20 15:33:40 -05:00
Rene Rivera
b18495fe35 Sync from upstream. 2024-04-12 22:40:43 -05:00
Rene Rivera
151d0c4143 Sync from upstream. 2024-04-10 07:57:45 -05:00
Rene Rivera
25b0defdeb Switch to library requirements instead of source. As source puts extra source in install targets. 2024-03-29 21:15:58 -05:00
Rene Rivera
541745ea24 Sync from upstream. 2024-03-23 07:57:20 -05:00
Rene Rivera
5f825106c7 Make the library modular usable. 2024-03-11 08:32:21 -05:00
10 changed files with 137 additions and 53 deletions

View File

@@ -32,6 +32,8 @@ local linux_pipeline(name, image, environment, packages = "", sources = [], arch
commands:
[
'set -e',
'uname -a',
'echo $DRONE_STAGE_MACHINE',
'wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add -',
] +
(if sources != [] then [ ('apt-add-repository "' + source + '"') for source in sources ] else []) +
@@ -200,10 +202,9 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
),
linux_pipeline(
"Linux 23.04 GCC 13 32/64",
"cppalliance/droneubuntu2304:1",
{ TOOLSET: 'gcc', COMPILER: 'g++-13', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32,64' },
"g++-13-multilib",
"Linux 24.04 GCC 13* 32/64",
"cppalliance/droneubuntu2404:1",
{ TOOLSET: 'gcc', COMPILER: 'g++', CXXSTD: '03,11,14,17,20,2b', ADDRMD: '32,64' },
),
linux_pipeline(
@@ -354,15 +355,15 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
),
linux_pipeline(
"Linux 23.04 Clang 16",
"cppalliance/droneubuntu2304:1",
"Linux 24.04 Clang 16",
"cppalliance/droneubuntu2404:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-16', CXXSTD: '03,11,14,17,20,2b' },
"clang-16",
),
linux_pipeline(
"Linux 23.10 Clang 17",
"cppalliance/droneubuntu2310:1",
"Linux 24.04 Clang 17",
"cppalliance/droneubuntu2404:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-17', CXXSTD: '03,11,14,17,20,2b' },
"clang-17",
),
@@ -381,6 +382,13 @@ local windows_pipeline(name, image, environment, arch = "amd64") =
"clang-18",
),
linux_pipeline(
"Linux 24.10 Clang 19",
"cppalliance/droneubuntu2410:1",
{ TOOLSET: 'clang', COMPILER: 'clang++-19', CXXSTD: '03,11,14,17,20,2b' },
"clang-19",
),
macos_pipeline(
"MacOS 10.15 Xcode 12.2 UBSAN",
{ TOOLSET: 'clang', COMPILER: 'clang++', CXXSTD: '03,11,14,1z' } + ubsan,

View File

@@ -325,15 +325,15 @@ jobs:
- libc++-15-dev
- libc++abi-15-dev
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-12
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-13
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-14
- toolset: clang
cxxstd: "03,11,14,17,20,2b"
os: macos-15
timeout-minutes: 45
runs-on: ${{matrix.os}}
@@ -626,9 +626,10 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-12
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
timeout-minutes: 10
@@ -693,9 +694,10 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-12
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
timeout-minutes: 10
@@ -770,9 +772,10 @@ jobs:
include:
- os: ubuntu-20.04
- os: ubuntu-22.04
- os: macos-12
- os: ubuntu-24.04
- os: macos-13
- os: macos-14
- os: macos-15
runs-on: ${{matrix.os}}
timeout-minutes: 20

23
build.jam Normal file
View File

@@ -0,0 +1,23 @@
# Copyright 2023-2024 René Ferdinand Rivera Morell
# Copyright 2024 Peter Dimov
# Distributed under the Boost Software License, Version 1.0.
# https://www.boost.org/LICENSE_1_0.txt
require-b2 5.2 ;
constant boost_dependencies :
/boost/assert//boost_assert
/boost/config//boost_config
/boost/static_assert//boost_static_assert
/boost/throw_exception//boost_throw_exception
;
project /boost/core ;
explicit
[ alias boost_core : : : : <include>include <library>$(boost_dependencies) ]
[ alias all : boost_core test ]
;
call-if : boost-library core
;

View File

@@ -9,7 +9,7 @@ import project ;
import doxygen ;
import quickbook ;
path-constant INCLUDES : ../../.. ;
path-constant INCLUDES : ../include ;
doxygen ref_reference
:

View File

@@ -41,9 +41,6 @@ namespace boost
// forward declaration of boost::basic_string_view from Utility
template<class Ch, class Tr> class basic_string_view;
// forward declaration of boost::hash_range from ContainerHash
template<class It> std::size_t hash_range( It, It );
namespace core
{
namespace detail
@@ -1181,11 +1178,6 @@ public:
}
#endif
inline friend std::size_t hash_value( basic_string_view const& sv )
{
return boost::hash_range( sv.begin(), sv.end() );
}
};
// stream inserter

View File

@@ -8,17 +8,6 @@ if(HAVE_BOOST_TEST)
boost_test_jamfile(FILE Jamfile.v2 LINK_LIBRARIES Boost::core Boost::static_assert Boost::type_traits)
set(BOOST_TEST_LINK_LIBRARIES Boost::core Boost::type_traits)
boost_test(TYPE run SOURCES eif_constructors.cpp)
boost_test(TYPE run SOURCES eif_dummy_arg_disambiguation.cpp)
boost_test(TYPE run SOURCES eif_lazy.cpp)
boost_test(TYPE run SOURCES eif_lazy_test.cpp)
boost_test(TYPE run SOURCES eif_member_templates.cpp)
boost_test(TYPE run SOURCES eif_namespace_disambiguation.cpp)
boost_test(TYPE run SOURCES eif_no_disambiguation.cpp)
boost_test(TYPE run SOURCES eif_partial_specializations.cpp)
set(BOOST_TEST_LINK_LIBRARIES Boost::core Boost::throw_exception)
boost_test(TYPE run SOURCES no_exceptions_support_test.cpp)
@@ -27,6 +16,10 @@ set(BOOST_TEST_LINK_LIBRARIES Boost::core Boost::utility)
boost_test(TYPE run SOURCES sv_conversion_test2.cpp)
set(BOOST_TEST_LINK_LIBRARIES Boost::core Boost::container_hash)
boost_test(TYPE run SOURCES sv_hash_test.cpp)
set(BOOST_TEST_LINK_LIBRARIES Boost::core Boost::config Boost::move Boost::smart_ptr)
boost_test(TYPE run SOURCES fclose_deleter_test.cpp)

View File

@@ -6,11 +6,15 @@
# See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt
require-b2 5.0.1 ;
import-search /boost/config/checks ;
import config : requires ;
import modules ;
import testing ;
project : requirements
<library>/boost/core//boost_core
<library>/boost/type_traits//boost_type_traits
<warnings>extra
<toolset>msvc:<warnings-as-errors>on
<toolset>clang:<warnings-as-errors>on
@@ -31,6 +35,8 @@ local pedantic-errors = <warnings>pedantic
<toolset>gcc:<warnings-as-errors>on
<toolset>clang:<warnings-as-errors>on ;
local CPP11 = [ requires cxx11_variadic_templates cxx11_template_aliases cxx11_decltype cxx11_constexpr cxx11_noexcept cxx11_ref_qualifiers ] ;
# quick test (for CI)
run quick.cpp ;
@@ -79,14 +85,14 @@ compile-fail ref_implicit_fail4.cpp
run ref_cv_test.cpp ;
run ref_conversion_test.cpp ;
run eif_constructors.cpp : ;
run eif_dummy_arg_disambiguation.cpp : ;
run eif_lazy.cpp : ;
run eif_lazy_test.cpp : ;
run eif_member_templates.cpp : ;
run eif_namespace_disambiguation.cpp : ;
run eif_no_disambiguation.cpp : ;
run eif_partial_specializations.cpp : ;
run eif_constructors.cpp ;
run eif_dummy_arg_disambiguation.cpp ;
run eif_lazy.cpp ;
run eif_lazy_test.cpp ;
run eif_member_templates.cpp ;
run eif_namespace_disambiguation.cpp ;
run eif_no_disambiguation.cpp ;
run eif_partial_specializations.cpp ;
compile-fail noncopyable_compile_fail.cpp
: $(warnings-as-errors-off) ;
@@ -197,7 +203,13 @@ run underlying_type.cpp ;
compile-fail null_deleter_compile_fail_adl.cpp
: $(warnings-as-errors-off) ;
run fclose_deleter_test.cpp : : : <target-os>windows:<define>_CRT_SECURE_NO_WARNINGS <target-os>windows:<define>_CRT_SECURE_NO_DEPRECATE ;
run fclose_deleter_test.cpp : : :
$(CPP11)
<library>/boost/move//boost_move
<library>/boost/smart_ptr//boost_smart_ptr
<target-os>windows:<define>_CRT_SECURE_NO_WARNINGS
<target-os>windows:<define>_CRT_SECURE_NO_DEPRECATE ;
compile-fail fclose_deleter_compile_fail_adl.cpp
: <target-os>windows:<define>_CRT_SECURE_NO_WARNINGS <target-os>windows:<define>_CRT_SECURE_NO_DEPRECATE $(warnings-as-errors-off) ;
@@ -205,7 +217,6 @@ run functor_test.cpp ;
compile-fail functor_compile_fail_adl.cpp
: $(warnings-as-errors-off) ;
run pointer_traits_pointer_test.cpp ;
run pointer_traits_element_type_test.cpp ;
run pointer_traits_difference_type_test.cpp ;
@@ -381,7 +392,7 @@ run sv_stream_insert_test.cpp
: : : $(pedantic-errors) ;
run sv_conversion_test.cpp
: : : $(pedantic-errors) ;
run sv_conversion_test2.cpp : ;
run sv_conversion_test2.cpp : : : <library>/boost/utility//boost_utility ;
run sv_common_reference_test.cpp
: : : $(pedantic-errors) ;
compile sv_common_reference_test2.cpp ;
@@ -392,6 +403,8 @@ compile-fail sv_nullptr_fail.cpp
compile sv_construct_test_cx.cpp ;
compile sv_construct_test_cx2.cpp ;
run sv_hash_test.cpp : : : $(CPP11) <library>/boost/container_hash//boost_container_hash ;
run span_test.cpp ;
run span_types_test.cpp ;
run span_constructible_test.cpp ;
@@ -419,11 +432,15 @@ run memory_resource_test.cpp ;
run data_test.cpp ;
run size_test.cpp ;
import ../../config/checks/config : requires ;
local CPP11 = [ requires cxx11_variadic_templates cxx11_template_aliases cxx11_decltype cxx11_constexpr cxx11_noexcept ] ;
local with-serialization = <library>/boost//serialization/<warnings>off $(warnings-as-errors-off) <undefined-sanitizer>norecover:<link>static $(CPP11) ;
local with-serialization =
<library>/boost/serialization//boost_serialization/<warnings>off
$(warnings-as-errors-off)
<undefined-sanitizer>norecover:<link>static
$(CPP11)
# Serialization no longer builds under classic MinGW
# and <toolset>gcc,<target-os>windows,<address-model>32 fails for some reason
<toolset>gcc,<target-os>windows:<build>no
;
run serialization_nvp_test.cpp : : : $(with-serialization) <undefined-sanitizer>norecover:<build>no ;
run serialization_split_free_test.cpp : : : $(with-serialization) ;

View File

@@ -14,4 +14,4 @@ target_link_libraries(quick Boost::core)
enable_testing()
add_test(quick quick)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
add_custom_target(check VERBATIM COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)

View File

@@ -18,4 +18,4 @@ target_link_libraries(quick Boost::core)
enable_testing()
add_test(quick quick)
add_custom_target(check COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)
add_custom_target(check VERBATIM COMMAND ${CMAKE_CTEST_COMMAND} --output-on-failure -C $<CONFIG>)

48
test/sv_hash_test.cpp Normal file
View File

@@ -0,0 +1,48 @@
// Copyright 2021-2024 Peter Dimov
// Distributed under the Boost Software License, Version 1.0.
// https://www.boost.org/LICENSE_1_0.txt
#include <boost/core/detail/string_view.hpp>
#include <boost/container_hash/hash.hpp>
#include <boost/core/lightweight_test.hpp>
#include <boost/config.hpp>
#include <string>
template<class T> std::size_t hv( T const& t )
{
return boost::hash<T>()( t );
}
template<class Ch> void test( Ch const* p )
{
std::basic_string<Ch> s( p );
boost::core::basic_string_view<Ch> sv( s );
BOOST_TEST_EQ( hv( s ), hv( sv ) );
}
int main()
{
test( "123" );
test( L"123" );
#if !defined(BOOST_NO_CXX11_CHAR16_T)
test( u"123" );
#endif
#if !defined(BOOST_NO_CXX11_CHAR32_T)
test( U"123" );
#endif
#if defined(__cpp_char8_t) && __cpp_char8_t >= 201811L
test( u8"123" );
#endif
return boost::report_errors();
}