cb000809b0
see https://github.com/toml-lang/toml/issues/698 for info about TOML v1.0.0 also: - fixed some parser error-paths not returning early enough when exceptions were disabled - added more specific error messages for parsing errors relating to prohibited codepoints - added compilation speed improvements (particularly for platforms lacking floating-point `std::to_chars`) - added many minor documentation improvements - added additional tests
172 lines
4.1 KiB
Meson
172 lines
4.1 KiB
Meson
test_sources = [
|
|
'impl_toml.cpp',
|
|
'impl_catch2.cpp',
|
|
'parsing_arrays.cpp',
|
|
'parsing_booleans.cpp',
|
|
'parsing_comments.cpp',
|
|
'parsing_dates_and_times.cpp',
|
|
'parsing_floats.cpp',
|
|
'parsing_integers.cpp',
|
|
'parsing_key_value_pairs.cpp',
|
|
'parsing_spec_example.cpp',
|
|
'parsing_strings.cpp',
|
|
'parsing_tables.cpp',
|
|
'manipulating_arrays.cpp',
|
|
'manipulating_tables.cpp',
|
|
'tests.cpp'
|
|
]
|
|
|
|
disable_exceptions = 'cpp_eh=none'
|
|
no_unreleased_features = '-DTOML_UNRELEASED_FEATURES=0'
|
|
toml_char8_strings = '-DTOML_CHAR_8_STRINGS=1'
|
|
manually_set_cpp_std = 'cpp_std=none'
|
|
cpp20 = '-std=c++2a'
|
|
use_tloptional = '-DTARTANLLAMA_OPTIONAL'
|
|
compiler_supports_char8_strings = compiler.compiles('''
|
|
#include <string_view>
|
|
#include <string>
|
|
using namespace std::string_view_literals;
|
|
std::u8string func()
|
|
{
|
|
return std::u8string{ u8"this is a test."sv };
|
|
}
|
|
''',
|
|
name : 'char8 string check',
|
|
args : [ '-std=c++2a' ]
|
|
)
|
|
|
|
############################################################################
|
|
### char
|
|
############################################################################
|
|
|
|
|
|
char = executable(
|
|
'char',
|
|
test_sources,
|
|
include_directories : inc
|
|
)
|
|
test('char', char)
|
|
|
|
|
|
char_noexcept = executable(
|
|
'char_noexcept',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ disable_exceptions ]
|
|
)
|
|
test('char_noexcept', char_noexcept)
|
|
|
|
|
|
char_strict = executable(
|
|
'char_strict',
|
|
test_sources,
|
|
include_directories : inc,
|
|
cpp_args : [ no_unreleased_features ]
|
|
)
|
|
test('char_strict', char_strict)
|
|
|
|
|
|
char_strict_noexcept = executable(
|
|
'char_strict_noexcept',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ disable_exceptions ],
|
|
cpp_args : [ no_unreleased_features ]
|
|
)
|
|
test('char_strict_noexcept', char_strict_noexcept)
|
|
|
|
|
|
############################################################################
|
|
### char w/ tl::optional
|
|
############################################################################
|
|
|
|
|
|
char_tlopt = executable(
|
|
'char_tlopt',
|
|
test_sources,
|
|
include_directories : inc,
|
|
cpp_args : [ use_tloptional ]
|
|
)
|
|
test('char_tlopt', char_tlopt)
|
|
|
|
|
|
char_tlopt_strict = executable(
|
|
'char_tlopt_strict',
|
|
test_sources,
|
|
include_directories : inc,
|
|
cpp_args : [ no_unreleased_features, use_tloptional ]
|
|
)
|
|
test('char_tlopt_strict', char_tlopt_strict)
|
|
|
|
|
|
if compiler_supports_char8_strings
|
|
|
|
|
|
############################################################################
|
|
### char8
|
|
############################################################################
|
|
|
|
|
|
char8 = executable(
|
|
'char8',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std ],
|
|
cpp_args : [ cpp20, toml_char8_strings ]
|
|
)
|
|
test('char8', char8)
|
|
|
|
char8_noexcept = executable(
|
|
'char8_noexcept',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std, disable_exceptions ],
|
|
cpp_args : [ cpp20, toml_char8_strings ]
|
|
)
|
|
test('char8_noexcept', char8_noexcept)
|
|
|
|
char8_strict = executable(
|
|
'char8_strict',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std ],
|
|
cpp_args : [ cpp20, toml_char8_strings, no_unreleased_features ]
|
|
)
|
|
test('char8_strict', char8_strict)
|
|
|
|
char8_strict_noexcept = executable(
|
|
'char8_strict_noexcept',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std, disable_exceptions ],
|
|
cpp_args : [ cpp20, toml_char8_strings, no_unreleased_features ]
|
|
)
|
|
test('char8_strict_noexcept', char8_strict_noexcept)
|
|
|
|
|
|
############################################################################
|
|
### char8 w/ tl::optional
|
|
############################################################################
|
|
|
|
|
|
char8_tlopt = executable(
|
|
'char8_tlopt',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std ],
|
|
cpp_args : [ cpp20, toml_char8_strings, use_tloptional ]
|
|
)
|
|
test('char8_tlopt', char8_tlopt)
|
|
|
|
char8_tlopt_strict = executable(
|
|
'char8_tlopt_strict',
|
|
test_sources,
|
|
include_directories : inc,
|
|
override_options : [ manually_set_cpp_std ],
|
|
cpp_args : [ cpp20, toml_char8_strings, no_unreleased_features, use_tloptional ]
|
|
)
|
|
test('char8_tlopt_strict', char8_tlopt_strict)
|
|
|
|
|
|
endif
|