Adds Visual Studio 2017 to CI (for real) and adapt our build/tests (#1444)
This commit is contained in:
parent
4c63a929bc
commit
610b3ad302
|
@ -14,26 +14,22 @@ jobs:
|
|||
! contains(toJSON(github.event.commits.*.message), '[skip ci]') &&
|
||||
! contains(toJSON(github.event.commits.*.message), '[skip github]')
|
||||
name: windows-vs15
|
||||
runs-on: windows-latest
|
||||
runs-on: windows-2016
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- {gen: Visual Studio 15 2017, arch: Win32}
|
||||
- {gen: Visual Studio 15 2017, arch: x64}
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: dependencies/.cache
|
||||
key: ${{ hashFiles('dependencies/CMakeLists.txt') }}
|
||||
- name: 'Run CMake with VS15'
|
||||
uses: lukka/run-cmake@v2
|
||||
with:
|
||||
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
|
||||
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
|
||||
buildDirectory: "${{ github.workspace }}/../../_temp/windows"
|
||||
cmakeBuildType: Release
|
||||
buildWithCMake: true
|
||||
cmakeGenerator: VS15Win64
|
||||
cmakeAppendedArgs: -DSIMDJSON_COMPETITION=OFF
|
||||
buildWithCMakeArgs: --config Release
|
||||
|
||||
- name: Configure
|
||||
run: |
|
||||
mkdir build
|
||||
cd build && cmake -DSIMDJSON_COMPETITION=OFF -G "${{matrix.gen}}" -A ${{matrix.arch}} ..
|
||||
- name: Build
|
||||
run: cmake --build build --config Release --parallel
|
||||
- name: 'Run CTest'
|
||||
run: ctest -C Release -LE explicitonly --output-on-failure
|
||||
working-directory: "${{ github.workspace }}/../../_temp/windows"
|
||||
|
||||
run: |
|
||||
cd build
|
||||
ctest -C Release -LE explicitonly --output-on-failure
|
|
@ -1,39 +0,0 @@
|
|||
name: VS15Win32Legacy-CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
|
||||
jobs:
|
||||
ci:
|
||||
if: >-
|
||||
! contains(toJSON(github.event.commits.*.message), '[skip ci]') &&
|
||||
! contains(toJSON(github.event.commits.*.message), '[skip github]')
|
||||
name: windows-vs15win32
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/cache@v2
|
||||
with:
|
||||
path: dependencies/.cache
|
||||
key: ${{ hashFiles('dependencies/CMakeLists.txt') }}
|
||||
- name: 'Run CMake with VS15 under Win32 (legacy)'
|
||||
uses: lukka/run-cmake@v2
|
||||
with:
|
||||
cmakeListsOrSettingsJson: CMakeListsTxtAdvanced
|
||||
cmakeListsTxtPath: '${{ github.workspace }}/CMakeLists.txt'
|
||||
buildDirectory: "${{ github.workspace }}/../../_temp/windows"
|
||||
cmakeBuildType: Release
|
||||
buildWithCMake: true
|
||||
cmakeGenerator: VS15Win32
|
||||
cmakeAppendedArgs: -DSIMDJSON_COMPETITION=OFF
|
||||
buildWithCMakeArgs: --config Release
|
||||
|
||||
- name: 'Run CTest'
|
||||
run: ctest -C Release -LE explicitonly --output-on-failure
|
||||
working-directory: "${{ github.workspace }}/../../_temp/windows"
|
||||
|
|
@ -29,7 +29,6 @@ jobs:
|
|||
buildDirectory: "${{ github.workspace }}/../../_temp/windows"
|
||||
cmakeBuildType: Release
|
||||
buildWithCMake: true
|
||||
cmakeGenerator: VS16Win64
|
||||
cmakeAppendedArgs: -DSIMDJSON_COMPETITION=OFF
|
||||
buildWithCMakeArgs: --config Release
|
||||
|
||||
|
|
|
@ -29,7 +29,6 @@ jobs:
|
|||
buildDirectory: "${{ github.workspace }}/../../_temp/windows"
|
||||
cmakeBuildType: Release
|
||||
buildWithCMake: true
|
||||
cmakeGenerator: VS16Win64
|
||||
cmakeAppendedArgs: -T ClangCL -DSIMDJSON_COMPETITION=OFF -DSIMDJSON_BUILD_STATIC=ON
|
||||
buildWithCMakeArgs: --config Release
|
||||
|
||||
|
|
|
@ -29,7 +29,6 @@ jobs:
|
|||
buildDirectory: "${{ github.workspace }}/../../_temp/windows"
|
||||
cmakeBuildType: Release
|
||||
buildWithCMake: true
|
||||
cmakeGenerator: VS16Win64
|
||||
cmakeAppendedArgs: -G Ninja -DSIMDJSON_COMPETITION=OFF -DSIMDJSON_BUILD_STATIC=ON
|
||||
buildWithCMakeArgs: --config Release
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@
|
|||
|
||||
# Clone the repository if it's not there
|
||||
find_package(Git QUIET)
|
||||
if (Git_FOUND AND (GIT_VERSION_STRING VERSION_GREATER "2.1.4") AND (NOT CMAKE_GENERATOR MATCHES Ninja) ) # We use "-C" which requires a recent git
|
||||
if (Git_FOUND AND (GIT_VERSION_STRING VERSION_GREATER "2.1.4") AND (NOT CMAKE_GENERATOR MATCHES Ninja) AND (NOT MSVC) ) # We use "-C" which requires a recent git
|
||||
message(STATUS "Git is available and it is recent. We are enabling checkperf targets.")
|
||||
# sync_git_repository(myrepo ...) creates two targets:
|
||||
# myrepo - if the repo does not exist, creates and syncs it against the origin branch
|
||||
|
|
|
@ -72,6 +72,10 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
|
|||
|
||||
option(SIMDJSON_VISUAL_STUDIO_BUILD_WITH_DEBUG_INFO_FOR_PROFILING "Under Visual Studio, add Zi to the compile flag and DEBUG to the link file to add debugging information to the release build for easier profiling inside tools like VTune" OFF)
|
||||
if(MSVC)
|
||||
if("${MSVC_TOOLSET_VERSION}" STRLESS "142")
|
||||
set(SIMDJSON_LEGACY_VISUAL_STUDIO TRUE)
|
||||
message (STATUS "A legacy Visual Studio version was detected. We recommend Visual Studio 2019 or better on a 64-bit system.")
|
||||
endif()
|
||||
if("${MSVC_TOOLSET_VERSION}" STREQUAL "140")
|
||||
# Visual Studio 2015 issues warnings and we tolerate it, cmake -G"Visual Studio 14" ..
|
||||
target_compile_options(simdjson-internal-flags INTERFACE /W0 /sdl)
|
||||
|
|
|
@ -1,4 +1,9 @@
|
|||
option(ENABLE_FUZZING "enable building the fuzzers" ON)
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
option(ENABLE_FUZZING "enable building the fuzzers" ON)
|
||||
else()
|
||||
option(ENABLE_FUZZING "enable building the fuzzers" OFF)
|
||||
endif()
|
||||
|
||||
|
||||
if(ENABLE_FUZZING)
|
||||
|
||||
|
|
|
@ -165,6 +165,7 @@ constexpr size_t DEFAULT_MAX_DEPTH = 1024;
|
|||
// C++17 requires string_view.
|
||||
#if SIMDJSON_CPLUSPLUS17
|
||||
#define SIMDJSON_HAS_STRING_VIEW
|
||||
#include <string_view> // by the standard, this has to be safe.
|
||||
#endif
|
||||
|
||||
// This macro (__cpp_lib_string_view) has to be defined
|
||||
|
|
|
@ -120,15 +120,18 @@ include(${PROJECT_SOURCE_DIR}/cmake/add_compile_only_test.cmake)
|
|||
#
|
||||
# Test the generated simdjson.cpp/simdjson.h using the generated amalgamate_demo.cpp
|
||||
#
|
||||
add_executable(amalgamate_demo $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamate_demo.cpp>)
|
||||
target_link_libraries(amalgamate_demo simdjson-singleheader-include-source simdjson-internal-flags)
|
||||
add_test(amalgamate_demo amalgamate_demo ${EXAMPLE_JSON} ${EXAMPLE_NDJSON})
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
add_executable(amalgamate_demo $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/amalgamate_demo.cpp>)
|
||||
target_link_libraries(amalgamate_demo simdjson-singleheader-include-source simdjson-internal-flags)
|
||||
add_test(amalgamate_demo amalgamate_demo ${EXAMPLE_JSON} ${EXAMPLE_NDJSON})
|
||||
endif()
|
||||
|
||||
install(FILES simdjson.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
|
||||
|
||||
add_library(simdjson-singleheader STATIC "")
|
||||
target_link_libraries(simdjson-singleheader simdjson-singleheader-source simdjson-internal-flags)
|
||||
add_compile_only_test(simdjson-singleheader)
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
add_library(simdjson-singleheader STATIC "")
|
||||
target_link_libraries(simdjson-singleheader simdjson-singleheader-source simdjson-internal-flags)
|
||||
add_compile_only_test(simdjson-singleheader)
|
||||
endif()
|
||||
|
||||
#
|
||||
# Test the existing simdjson.cpp/simdjson.h using the existing amalgamate_demo.cpp, using
|
||||
|
@ -145,8 +148,9 @@ if (NOT (${CMAKE_CURRENT_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_BINARY_DIR}))
|
|||
target_sources(simdjson-singleheader-source-direct-from-repository INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
target_link_libraries(simdjson-singleheader-source-direct-from-repository INTERFACE simdjson-singleheader-include-source-direct-from-repository)
|
||||
|
||||
add_executable(amalgamate_demo_direct_from_repository ${CMAKE_CURRENT_SOURCE_DIR}/amalgamate_demo.cpp)
|
||||
target_link_libraries(amalgamate_demo_direct_from_repository simdjson-singleheader-include-source-direct-from-repository simdjson-internal-flags)
|
||||
add_test(amalgamate_demo_direct_from_repository amalgamate_demo_direct_from_repository ${EXAMPLE_JSON} ${EXAMPLE_NDJSON})
|
||||
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
add_executable(amalgamate_demo_direct_from_repository ${CMAKE_CURRENT_SOURCE_DIR}/amalgamate_demo.cpp)
|
||||
target_link_libraries(amalgamate_demo_direct_from_repository simdjson-singleheader-include-source-direct-from-repository simdjson-internal-flags)
|
||||
add_test(amalgamate_demo_direct_from_repository amalgamate_demo_direct_from_repository ${EXAMPLE_JSON} ${EXAMPLE_NDJSON})
|
||||
endif()
|
||||
endif()
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* auto-generated on 2021-01-20 13:20:49 -0500. Do not edit! */
|
||||
/* auto-generated on 2021-02-10 16:52:04 -0500. Do not edit! */
|
||||
/* begin file src/simdjson.cpp */
|
||||
#include "simdjson.h"
|
||||
|
||||
|
@ -1476,7 +1476,8 @@ namespace internal {
|
|||
{ INVALID_JSON_POINTER, "Invalid JSON pointer syntax." },
|
||||
{ INVALID_URI_FRAGMENT, "Invalid URI fragment syntax." },
|
||||
{ UNEXPECTED_ERROR, "Unexpected error, consider reporting this problem as you may have found a bug in simdjson" },
|
||||
{ PARSER_IN_USE, "Cannot parse a new document while a document is still in use." }
|
||||
{ PARSER_IN_USE, "Cannot parse a new document while a document is still in use." },
|
||||
{ OUT_OF_ORDER_ITERATION, "Objects and arrays can only be iterated when they are first encountered." }
|
||||
}; // error_messages[]
|
||||
|
||||
} // namespace internal
|
||||
|
@ -2639,7 +2640,7 @@ SIMDJSON_DLLIMPORTEXPORT const internal::available_implementation_list available
|
|||
SIMDJSON_DLLIMPORTEXPORT internal::atomic_ptr<const implementation> active_implementation{&internal::detect_best_supported_implementation_on_first_use_singleton};
|
||||
|
||||
simdjson_warn_unused error_code minify(const char *buf, size_t len, char *dst, size_t &dst_len) noexcept {
|
||||
return active_implementation->minify((const uint8_t *)buf, len, (uint8_t *)dst, dst_len);
|
||||
return active_implementation->minify(reinterpret_cast<const uint8_t *>(buf), len, reinterpret_cast<uint8_t *>(dst), dst_len);
|
||||
}
|
||||
simdjson_warn_unused bool validate_utf8(const char *buf, size_t len) noexcept {
|
||||
return active_implementation->validate_utf8(buf, len);
|
||||
|
@ -3016,7 +3017,7 @@ private:
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
buf[i] = int8_t(text[i]) < ' ' ? '_' : int8_t(text[i]);
|
||||
}
|
||||
|
@ -3026,8 +3027,8 @@ simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
in.store((uint8_t*)buf);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
in.store(reinterpret_cast<uint8_t*>(buf));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
if (buf[i] < ' ') { buf[i] = '_'; }
|
||||
}
|
||||
|
@ -3036,7 +3037,7 @@ simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
|||
}
|
||||
|
||||
simdjson_unused static char * format_mask(uint64_t mask) {
|
||||
static char *buf = (char*)malloc(64 + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(64 + 1));
|
||||
for (size_t i=0; i<64; i++) {
|
||||
buf[i] = (mask & (size_t(1) << i)) ? 'X' : ' ';
|
||||
}
|
||||
|
@ -3811,7 +3812,7 @@ bool generic_validate_utf8(const uint8_t * input, size_t length) {
|
|||
}
|
||||
|
||||
bool generic_validate_utf8(const char * input, size_t length) {
|
||||
return generic_validate_utf8<utf8_checker>((const uint8_t *)input,length);
|
||||
return generic_validate_utf8<utf8_checker>(reinterpret_cast<const uint8_t *>(input),length);
|
||||
}
|
||||
|
||||
} // namespace stage1
|
||||
|
@ -3880,7 +3881,7 @@ namespace logger {
|
|||
printf("| %*s%s%-*s ", log_depth*2, "", title_prefix, LOG_EVENT_LEN - log_depth*2 - int(strlen(title_prefix)), title);
|
||||
auto current_index = structurals.at_beginning() ? nullptr : structurals.next_structural-1;
|
||||
auto next_index = structurals.next_structural;
|
||||
auto current = current_index ? &structurals.buf[*current_index] : (const uint8_t*)" ";
|
||||
auto current = current_index ? &structurals.buf[*current_index] : reinterpret_cast<const uint8_t*>(" ");
|
||||
auto next = &structurals.buf[*next_index];
|
||||
{
|
||||
// Print the next N characters in the buffer.
|
||||
|
@ -5034,7 +5035,7 @@ simdjson_warn_unused error_code implementation::minify(const uint8_t *buf, size_
|
|||
|
||||
// credit: based on code from Google Fuchsia (Apache Licensed)
|
||||
simdjson_warn_unused bool implementation::validate_utf8(const char *buf, size_t len) const noexcept {
|
||||
const uint8_t *data = (const uint8_t *)buf;
|
||||
const uint8_t *data = reinterpret_cast<const uint8_t *>(buf);
|
||||
uint64_t pos = 0;
|
||||
uint32_t code_point = 0;
|
||||
while (pos < len) {
|
||||
|
@ -5157,7 +5158,7 @@ namespace logger {
|
|||
printf("| %*s%s%-*s ", log_depth*2, "", title_prefix, LOG_EVENT_LEN - log_depth*2 - int(strlen(title_prefix)), title);
|
||||
auto current_index = structurals.at_beginning() ? nullptr : structurals.next_structural-1;
|
||||
auto next_index = structurals.next_structural;
|
||||
auto current = current_index ? &structurals.buf[*current_index] : (const uint8_t*)" ";
|
||||
auto current = current_index ? &structurals.buf[*current_index] : reinterpret_cast<const uint8_t*>(" ");
|
||||
auto next = &structurals.buf[*next_index];
|
||||
{
|
||||
// Print the next N characters in the buffer.
|
||||
|
@ -6296,7 +6297,7 @@ private:
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
buf[i] = int8_t(text[i]) < ' ' ? '_' : int8_t(text[i]);
|
||||
}
|
||||
|
@ -6306,8 +6307,8 @@ simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
in.store((uint8_t*)buf);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
in.store(reinterpret_cast<uint8_t*>(buf));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
if (buf[i] < ' ') { buf[i] = '_'; }
|
||||
}
|
||||
|
@ -6316,7 +6317,7 @@ simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
|||
}
|
||||
|
||||
simdjson_unused static char * format_mask(uint64_t mask) {
|
||||
static char *buf = (char*)malloc(64 + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(64 + 1));
|
||||
for (size_t i=0; i<64; i++) {
|
||||
buf[i] = (mask & (size_t(1) << i)) ? 'X' : ' ';
|
||||
}
|
||||
|
@ -7091,7 +7092,7 @@ bool generic_validate_utf8(const uint8_t * input, size_t length) {
|
|||
}
|
||||
|
||||
bool generic_validate_utf8(const char * input, size_t length) {
|
||||
return generic_validate_utf8<utf8_checker>((const uint8_t *)input,length);
|
||||
return generic_validate_utf8<utf8_checker>(reinterpret_cast<const uint8_t *>(input),length);
|
||||
}
|
||||
|
||||
} // namespace stage1
|
||||
|
@ -7159,7 +7160,7 @@ namespace logger {
|
|||
printf("| %*s%s%-*s ", log_depth*2, "", title_prefix, LOG_EVENT_LEN - log_depth*2 - int(strlen(title_prefix)), title);
|
||||
auto current_index = structurals.at_beginning() ? nullptr : structurals.next_structural-1;
|
||||
auto next_index = structurals.next_structural;
|
||||
auto current = current_index ? &structurals.buf[*current_index] : (const uint8_t*)" ";
|
||||
auto current = current_index ? &structurals.buf[*current_index] : reinterpret_cast<const uint8_t*>(" ");
|
||||
auto next = &structurals.buf[*next_index];
|
||||
{
|
||||
// Print the next N characters in the buffer.
|
||||
|
@ -8289,7 +8290,7 @@ private:
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
buf[i] = int8_t(text[i]) < ' ' ? '_' : int8_t(text[i]);
|
||||
}
|
||||
|
@ -8299,8 +8300,8 @@ simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
in.store((uint8_t*)buf);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
in.store(reinterpret_cast<uint8_t*>(buf));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
if (buf[i] < ' ') { buf[i] = '_'; }
|
||||
}
|
||||
|
@ -8309,7 +8310,7 @@ simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
|||
}
|
||||
|
||||
simdjson_unused static char * format_mask(uint64_t mask) {
|
||||
static char *buf = (char*)malloc(64 + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(64 + 1));
|
||||
for (size_t i=0; i<64; i++) {
|
||||
buf[i] = (mask & (size_t(1) << i)) ? 'X' : ' ';
|
||||
}
|
||||
|
@ -9084,7 +9085,7 @@ bool generic_validate_utf8(const uint8_t * input, size_t length) {
|
|||
}
|
||||
|
||||
bool generic_validate_utf8(const char * input, size_t length) {
|
||||
return generic_validate_utf8<utf8_checker>((const uint8_t *)input,length);
|
||||
return generic_validate_utf8<utf8_checker>(reinterpret_cast<const uint8_t *>(input),length);
|
||||
}
|
||||
|
||||
} // namespace stage1
|
||||
|
@ -9153,7 +9154,7 @@ namespace logger {
|
|||
printf("| %*s%s%-*s ", log_depth*2, "", title_prefix, LOG_EVENT_LEN - log_depth*2 - int(strlen(title_prefix)), title);
|
||||
auto current_index = structurals.at_beginning() ? nullptr : structurals.next_structural-1;
|
||||
auto next_index = structurals.next_structural;
|
||||
auto current = current_index ? &structurals.buf[*current_index] : (const uint8_t*)" ";
|
||||
auto current = current_index ? &structurals.buf[*current_index] : reinterpret_cast<const uint8_t*>(" ");
|
||||
auto next = &structurals.buf[*next_index];
|
||||
{
|
||||
// Print the next N characters in the buffer.
|
||||
|
@ -10318,7 +10319,7 @@ private:
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
buf[i] = int8_t(text[i]) < ' ' ? '_' : int8_t(text[i]);
|
||||
}
|
||||
|
@ -10328,8 +10329,8 @@ simdjson_unused static char * format_input_text_64(const uint8_t *text) {
|
|||
|
||||
// Routines to print masks and text for debugging bitmask operations
|
||||
simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
||||
static char *buf = (char*)malloc(sizeof(simd8x64<uint8_t>) + 1);
|
||||
in.store((uint8_t*)buf);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(sizeof(simd8x64<uint8_t>) + 1));
|
||||
in.store(reinterpret_cast<uint8_t*>(buf));
|
||||
for (size_t i=0; i<sizeof(simd8x64<uint8_t>); i++) {
|
||||
if (buf[i] < ' ') { buf[i] = '_'; }
|
||||
}
|
||||
|
@ -10338,7 +10339,7 @@ simdjson_unused static char * format_input_text(const simd8x64<uint8_t>& in) {
|
|||
}
|
||||
|
||||
simdjson_unused static char * format_mask(uint64_t mask) {
|
||||
static char *buf = (char*)malloc(64 + 1);
|
||||
static char *buf = reinterpret_cast<char*>(malloc(64 + 1));
|
||||
for (size_t i=0; i<64; i++) {
|
||||
buf[i] = (mask & (size_t(1) << i)) ? 'X' : ' ';
|
||||
}
|
||||
|
@ -11113,7 +11114,7 @@ bool generic_validate_utf8(const uint8_t * input, size_t length) {
|
|||
}
|
||||
|
||||
bool generic_validate_utf8(const char * input, size_t length) {
|
||||
return generic_validate_utf8<utf8_checker>((const uint8_t *)input,length);
|
||||
return generic_validate_utf8<utf8_checker>(reinterpret_cast<const uint8_t *>(input),length);
|
||||
}
|
||||
|
||||
} // namespace stage1
|
||||
|
@ -11181,7 +11182,7 @@ namespace logger {
|
|||
printf("| %*s%s%-*s ", log_depth*2, "", title_prefix, LOG_EVENT_LEN - log_depth*2 - int(strlen(title_prefix)), title);
|
||||
auto current_index = structurals.at_beginning() ? nullptr : structurals.next_structural-1;
|
||||
auto next_index = structurals.next_structural;
|
||||
auto current = current_index ? &structurals.buf[*current_index] : (const uint8_t*)" ";
|
||||
auto current = current_index ? &structurals.buf[*current_index] : reinterpret_cast<const uint8_t*>(" ");
|
||||
auto next = &structurals.buf[*next_index];
|
||||
{
|
||||
// Print the next N characters in the buffer.
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -10,16 +10,20 @@ add_subdirectory(ondemand)
|
|||
#
|
||||
# These tests explicitly do #include "simdjson.cpp" so they can override stuff
|
||||
#
|
||||
add_cpp_test(numberparsingcheck LABELS acceptance per_implementation)
|
||||
target_link_libraries(numberparsingcheck simdjson-include-source simdjson-windows-headers)
|
||||
target_compile_definitions(numberparsingcheck PRIVATE NOMINMAX)
|
||||
add_cpp_test(stringparsingcheck LABELS acceptance per_implementation)
|
||||
target_link_libraries(stringparsingcheck simdjson-include-source simdjson-windows-headers)
|
||||
target_compile_definitions(stringparsingcheck PRIVATE NOMINMAX)
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
add_cpp_test(numberparsingcheck LABELS acceptance per_implementation)
|
||||
target_link_libraries(numberparsingcheck simdjson-include-source simdjson-windows-headers)
|
||||
target_compile_definitions(numberparsingcheck PRIVATE NOMINMAX)
|
||||
add_cpp_test(stringparsingcheck LABELS acceptance per_implementation)
|
||||
target_link_libraries(stringparsingcheck simdjson-include-source simdjson-windows-headers)
|
||||
target_compile_definitions(stringparsingcheck PRIVATE NOMINMAX)
|
||||
endif()
|
||||
|
||||
# All remaining tests link with simdjson proper
|
||||
link_libraries(simdjson)
|
||||
add_cpp_test(random_string_number_tests LABELS dom acceptance per_implementation)
|
||||
if(NOT SIMDJSON_LEGACY_VISUAL_STUDIO)
|
||||
add_cpp_test(random_string_number_tests LABELS dom acceptance per_implementation)
|
||||
endif()
|
||||
add_cpp_test(basictests LABELS dom acceptance per_implementation)
|
||||
add_cpp_test(document_stream_tests LABELS dom acceptance per_implementation)
|
||||
add_cpp_test(document_tests LABELS dom acceptance per_implementation)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include <cctype>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "simdjson.h"
|
||||
|
|
Loading…
Reference in New Issue