JLS-01#

The nlohmann/json library project CI executes on each pull request (opened, reopened, synchronized) the integration test suite, and failures in these runs are investigated by contributors.

Supported Requests:

Supporting Items:

None

References:

  • .github/workflows/parent-workflow.yml

name: Parent Workflow

on: 
  pull_request:
  push: 
    branches:
      - main
  schedule:
    - cron: '0 0 * * *' # Runs daily at midnight UTC

permissions:
  contents: read

jobs:
  labeler:
    permissions:
      contents: read
      pages: write
      pull-requests: write
    name: Run Labeler Workflow
    uses: ./.github/workflows/labeler.yml
    with:
      artifact_id: "labeler-${{ github.sha }}"

  check_amalgamation:
    name: Run Amalgamation Workflow
    if: ${{ github.event_name == 'pull_request' }} # only run check_amalgamation for PRs
    uses: ./.github/workflows/check_amalgamation.yml
    with:
      artifact_id: "check_amalgamation-${{ github.sha }}"
      
  test_trudag_extensions:
    name: Run Test Trudag Extensions Workflow
    uses: ./.github/workflows/test_trudag_extensions.yml
    with:
      artifact_id: "test_trudag_extensions-${{ github.sha }}"

  codeql:
    permissions:
      contents: read
      security-events: write
    name: Run Codeql analysis Workflow
    uses: ./.github/workflows/codeql-analysis.yml
    with:
      artifact_id: "codeql-${{ github.sha }}"

  ubuntu:
    name: Run Ubuntu Workflow
    permissions:
      contents: write
    needs: [codeql] # Error if CodeQL and Ubuntu triggered at the same time due to conflicting priorities
    uses: ./.github/workflows/ubuntu.yml
    with:
      artifact_id: "ubuntu-${{ github.sha }}"

  dependency_review:
    name: Run dependency_review Workflow
    if: ${{ github.event_name == 'pull_request' }}  # only run dependency_review for PRs
    uses: ./.github/workflows/dependency-review.yml
    with:
      artifact_id: "dependency_review-${{ github.sha }}"

  collect_artifacts_pr:
    name: "Collect Results & Deploy (PR)"
    if: github.event_name == 'pull_request'
    needs: [labeler, check_amalgamation, test_trudag_extensions, dependency_review, codeql, ubuntu]
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target: [labeler, check_amalgamation, test_trudag_extensions, dependency_review, codeql, ubuntu]

    steps:
      - name: Checkout code
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Check child workflow results 
        run: |
          echo "=== Checking Child Workflow Results ==="
          result="${{ needs[matrix.target].result }}"
          echo "${{ matrix.target }} workflow result: $result"

          if [[ "$result" != "success" ]]; then
            echo "❌ ${{ matrix.target }} workflow failed! Exiting..."
            exit 1
          fi
          echo "✅ Child workflows completed successfully!" 
        env:
          current_workflow: ${{ matrix.target }}

      - name: Download artifacts
        uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: "${{ matrix.target }}-${{ github.sha }}"
          path: artifacts/

  collect_artifacts_non_pr:
    name: "Collect Results & Deploy (Non-PR)"
    if: github.event_name != 'pull_request'
    needs: [labeler, test_trudag_extensions, codeql, ubuntu]  # no check_amalgamation or dependency_review if non PR
    runs-on: ubuntu-latest
    strategy:
      matrix:
        target: [labeler, test_trudag_extensions, codeql, ubuntu]

    steps:
      - name: Checkout code
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2

      - name: Check child workflow results 
        run: |
          echo "=== Checking Child Workflow Results ==="
          result="${{ needs[matrix.target].result }}"
          echo "${{ matrix.target }} workflow result: $result"

          if [[ "$result" != "success" ]]; then
            echo "❌ ${{ matrix.target }} workflow failed! Exiting..."
            exit 1
          fi
          echo "✅ Child workflows completed successfully!" 
        env:
          current_workflow: ${{ matrix.target }}

      - name: Download artifacts
        uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
        with:
          name: "${{ matrix.target }}-${{ github.sha }}"
          path: artifacts/

  test_publish_documentation:
    permissions:
      contents: write
      pages: write
      pull-requests: write
      id-token: write
      security-events: read
    name: Test publish_documentation Workflow
    if: github.event_name == 'pull_request'            # Whenever on Pull-request, test publication
    needs: [collect_artifacts_pr]
    uses: ./.github/workflows/test_publication.yml
    with:
      artifact_id: "ubuntu-${{ github.sha }}"

  publish_documentation:
    permissions:
      contents: write
      pages: write
      pull-requests: write
      id-token: write
      security-events: read
    name: Run publish_documentation Workflow
    if: github.event_name == 'push'            # Publish documentation should only run on push to main
    needs: [collect_artifacts_non_pr]
    uses: ./.github/workflows/publish_documentation.yml
    with:
      artifact_id: "ubuntu-${{ github.sha }}"
  • website: https://github.com/score-json/json/settings/branch_protection_rules/65227858

https://github.com/score-json/json/settings/branch_protection_rules/65227858 - branch protection rule for main branch specifying that failures of tests prevent merge.

Fallacies:

None

Graph:

No Historic Data Found


JLS-02#

Fuzz testing is used in the original nlohmann/json repository (https://github.com/nlohmann/json) to uncover edge cases and failure modes throughout development. (https://github.com/nlohmann/json/blob/develop/tests/fuzzing.md)

Supported Requests:

Supporting Items:

None

References:

  • website: https://introspector.oss-fuzz.com/project-profile?project=json

https://introspector.oss-fuzz.com/project-profile?project=json - most recent report for fuzzing introspection of nlohmann/json with historical plots

  • website: https://storage.googleapis.com/oss-fuzz-introspector/json/inspector-report/20250824/fuzz_report.html

https://storage.googleapis.com/oss-fuzz-introspector/json/inspector-report/20250824/fuzz_report.html - persistent storage of fuzz-testing-report for nlohmann/json version 3.12.0 on 24.08.2025

  • website: https://raw.githubusercontent.com/nlohmann/json/refs/heads/develop/.github/workflows/cifuzz.yml

https://raw.githubusercontent.com/nlohmann/json/refs/heads/develop/.github/workflows/cifuzz.yml - Configuration file for Fuzz-Testing pipeline in the original nlohmann/json repository

Fallacies:

None

Graph:

No Historic Data Found


JLS-03#

Automated tests are reviewed by a Subject Matter Expert to verify they test the properties they claim to.

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-04#

External dependencies are checked for potential security vulnerabilities with each pull request to main. Merging is blocked until all warnings are resolved.

Supported Requests:

Supporting Items:

None

References:

  • .github/workflows/dependency-review.yml

# Dependency Review Action
#
# This Action will scan dependency manifest files that change as part of a Pull Request,
# surfacing known-vulnerable versions of the packages declared or updated in the PR.
# Once installed, if the workflow run is marked as required,
# PRs introducing known-vulnerable packages will be blocked from merging.
#
# Source repository: https://github.com/actions/dependency-review-action
name: 'Dependency Review'

on:  
  workflow_call:
    inputs:
      artifact_id:
        description: 'Unique identifier for artifacts'
        required: true
        type: string

permissions:
  contents: read

jobs:
  dependency-review:
    runs-on: ubuntu-latest
    steps:
      - name: Harden Runner
        uses: step-security/harden-runner@c6295a65d1254861815972266d5933fd6e532bdf # v2.11.1
        with:
          egress-policy: audit

      - name: 'Checkout Repository'
        uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - name: 'Dependency Review'
        uses: actions/dependency-review-action@ce3cf9537a52e8119d91fd484ab5b8a807627bf8 # v4.6.0


      - name: Generate dependency_review artifact
        run: |
          echo "Generating Dependency Review artifact..."
          mkdir -p dependency_review
          echo "dependency review processed for ${{ inputs.artifact_id }}" > dependency_review/dependency_review.txt

      - name: Upload dependency_review artifact
        uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
        with:
          name: ${{ inputs.artifact_id }}
          path: dependency_review/
  • Description: The workflow scans PRs for dependency changes and vulnerabilities.

Fallacies:

None

Graph:

No Historic Data Found


JLS-05#

The OSS nlohmann/json is widely used, actively maintained and uses github issues to track bugs and misbehaviours.

Supported Requests:

Supporting Items:

None

References:

  • website: https://github.com/nlohmann/json/issues

https://github.com/nlohmann/json/issues - contains the collected github-issues for nlohmann/json

  • website: https://github.com/nlohmann/json/graphs/commit-activity

https://github.com/nlohmann/json/graphs/commit-activity - presents the commit activity of the past year

  • website: https://github.com/nlohmann/json/graphs/contributors

https://github.com/nlohmann/json/graphs/contributors - presents commits over time and per contributor

  • website: https://github.com/nlohmann/json/forks?include=active&page=1&period=&sort_by=last_updated

https://github.com/nlohmann/json/forks?include=active&page=1&period=&sort_by=last_updated - lists all forks of nlohmann/json by last updated

  • website: https://github.com/nlohmann/json/pulse

https://github.com/nlohmann/json/pulse - presents activity over the past week

Fallacies:

None

Graph:

No Historic Data Found


JLS-06#

Changes to the code (main branch) are applied only after code review and passing of all pipelines.

Supported Requests:

Supporting Items:

None

References:

  • website: https://github.com/score-json/json/settings/branches

https://github.com/score-json/json/settings/branches - Branch protection policies

Fallacies:

None

Graph:

No Historic Data Found


JLS-07#

Main branch is protected, i.e. no direct commits are possible.

Supported Requests:

Supporting Items:

None

References:

  • website: https://github.com/score-json/json/settings/branch_protection_rules/65227858

https://github.com/score-json/json/settings/branch_protection_rules/65227858 - branch protection rule for main branch specifying that failures of tests prevent merge.

Fallacies:

None

Graph:

No Historic Data Found


JLS-08#

Each statement is scored based on SME reviews or automatic validation functions. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-09#

Scores are reasonably, systematically and repeatably accumulated. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-10#

Every release includes source code, build instructions, tests and attestations. (TODO: Test result summary)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-11#

A score based on outstanding, fixed and mitigated faults is calculated based on github issues in nlohmann/json. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-12#

The S-Core change process management is followed.

Supported Requests:

Supporting Items:

None

References:

  • website: https://eclipse-score.github.io/process_description/main/process_areas/change_management/index.html

https://eclipse-score.github.io/process_description/main/process_areas/change_management/index.html - Documentation of S-CORE change process management

Fallacies:

None

Graph:

No Historic Data Found


JLS-13#

The S-Core methodologies are followed.

Supported Requests:

Supporting Items:

None

References:

  • website: https://eclipse-score.github.io/process_description/main/general_concepts/score_review_concept.html

https://eclipse-score.github.io/process_description/main/general_concepts/score_review_concept.html - Documentation of S-CORE methodologies

Fallacies:

None

Graph:

No Historic Data Found


JLS-14#

The builds are repeatable (i.e. different builds lead to the same SHA value). (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-16#

A list of tests, which is extracted from the test execution, is provided, along with a list of test environments. (TODO)

Supported Requests:

Supporting Items:

None

References:

  • List of all unit-tests

List of all unit-tests with test environments#

This list contains all unit-tests possibly running in this project. These tests are compiled from the source-code, where the individual unit-tests are arranged in TEST_CASEs containing possibly nested SECTIONs. To reflect the structure of the nested sections, nested lists are utilised, where the top-level list represents the list of TEST_CASEs.

It should be noted that not all unit-tests in a test-file are executed with every compiler-configuration.

List of tests in file unit-32bit.cpp#

  • value_in_range_of trait

  • 32bit

  • BJData

    • parse errors

      • array

        • optimized array: negative size

        • optimized array: integer value overflow

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

List of tests in file unit-algorithms.cpp#

  • algorithms

    • non-modifying sequence operations

      • std::all_of

      • std::any_of

      • std::none_of

      • std::for_each

        • reading

        • writing

      • std::count

      • std::count_if

      • std::mismatch

      • std::equal

        • using operator==

        • using user-defined comparison

      • std::find

      • std::find_if

      • std::find_if_not

      • std::adjacent_find

    • modifying sequence operations

      • std::reverse

      • std::rotate

      • std::partition

    • sorting operations

      • std::sort

        • with standard comparison

        • with user-defined comparison

        • sorting an object

      • std::partial_sort

    • set operations

      • std::merge

      • std::set_difference

      • std::set_intersection

      • std::set_union

      • std::set_symmetric_difference

    • heap operations

    • iota

      • int

      • double

      • char

    • copy

      • copy without if

      • copy if

      • copy n

      • copy n chars

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-allocator.cpp#

  • bad_alloc

    • bad_alloc

  • controlled bad_alloc

    • class json_value

      • json_value(value_t)

        • object

        • array

        • string

      • json_value(const string_t&)

    • class basic_json

      • basic_json(const CompatibleObjectType&)

      • basic_json(const CompatibleArrayType&)

      • basic_json(const typename string_t::value_type*)

      • basic_json(const typename string_t::value_type*)

  • bad my_allocator::construct

    • my_allocator::construct doesn’t forward

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-alt-string.cpp#

  • alternative string type

    • dump

    • parse

    • items

    • equality

    • JSON pointer

    • patch

    • diff

    • flatten

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-arrays.cpp#

  • accept

    • boundaries

  • parse

    • whitespace

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-assert_macro.cpp#

  • JSON_ASSERT(x)

    • basic_json(first, second)

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-binary_formats.cpp#

  • Binary Formats

    • canada.json

    • twitter.json

    • citm_catalog.json

    • jeopardy.json

    • sample.json

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-bjdata.cpp#

  • value_in_range_of trait

  • BJData

    • binary_reader BJData LUT arrays are sorted

    • individual values

      • discarded

      • null

      • boolean

        • true

        • false

      • byte

        • 0..255 (uint8)

      • number

        • signed

          • -9223372036854775808..-2147483649 (int64)

          • -2147483648..-32769 (int32)

          • -32768..-129 (int16)

          • -9263 (int16)

          • -128..-1 (int8)

          • 0..127 (int8)

          • 128..255 (uint8)

          • 256..32767 (int16)

          • 32768..65535 (uint16)

          • 65536..2147483647 (int32)

          • 2147483648..4294967295 (uint32)

          • 4294967296..9223372036854775807 (int64)

          • 9223372036854775808..18446744073709551615 (uint64)

        • unsigned

          • 0..127 (int8)

          • 128..255 (uint8)

          • 256..32767 (int16)

          • 32768..65535 (uint16)

          • 65536..2147483647 (int32)

          • 2147483648..4294967295 (uint32)

          • 4294967296..9223372036854775807 (int64)

          • 9223372036854775808..18446744073709551615 (uint64)

        • float64

          • 3.1415925

        • half-precision float

          • simple half floats

          • errors

            • no byte follows

            • only one byte follows

        • half-precision float (edge cases)

          • exp = 0b00000

            • 0 (0 00000 0000000000)

            • -0 (1 00000 0000000000)

            • 2**-24 (0 00000 0000000001)

          • exp = 0b11111

            • infinity (0 11111 0000000000)

            • -infinity (1 11111 0000000000)

          • other values from https://en.wikipedia.org/wiki/Half-precision_floating-point_format

            • 1 (0 01111 0000000000)

            • -2 (1 10000 0000000000)

            • 65504 (0 11110 1111111111)

          • infinity

          • NaN

        • high-precision number

          • unsigned integer number

          • signed integer number

          • floating-point number

          • errors

      • string

        • N = 0..127

        • N = 128..255

        • N = 256..32767

        • N = 32768..65535

        • N = 65536..2147483647

      • binary

        • N = 0..127

        • N = 128..255

        • N = 256..32767

        • N = 32768..65535

        • N = 65536..2147483647

        • Other Serializations

          • No Count No Type

          • Yes Count No Type

    • array

      • empty

        • size=false type=false

        • size=true type=false

        • size=true type=true

      • [null]

        • size=false type=false

        • size=true type=false

        • size=true type=true

      • [1,2,3,4,5]

        • size=false type=false

        • size=true type=false

        • size=true type=true

      • [[[[]]]]

        • size=false type=false

        • size=true type=false

        • size=true type=true

      • array with int16_t elements

        • size=false type=false

        • size=true type=false

      • array with uint16_t elements

        • size=false type=false

        • size=true type=false

      • array with int32_t elements

        • size=false type=false

        • size=true type=false

    • object

      • empty

        • size=false type=false

        • size=true type=false

        • size=true type=true

      • {\

        • size=false type=false

        • size=true type=false

      • {\

        • size=false type=false

        • size=true type=false

        • size=true type=true ignore object type marker

  • errors

    • strict mode

      • non-strict mode

      • strict mode

  • SAX aborts

    • start_array()

    • start_object()

    • key() in object

    • start_array(len)

    • start_object(len)

    • key() in object with length

    • start_array() in ndarray ArraySize

    • number_integer() in ndarray ArraySize

    • key() in ndarray ArrayType

    • string() in ndarray ArrayType

    • key() in ndarray ArrayData

    • string() in ndarray ArrayData

    • string() in ndarray ArrayType

    • start_array() in ndarray ArrayData

  • parsing values

    • strings

    • number

      • float

    • array

      • optimized version (length only)

      • optimized version (type and length)

      • optimized ndarray (type and vector-size as optimized 1D array)

      • optimized ndarray (type and vector-size ndarray with JData annotations)

      • optimized ndarray (type and vector-size as 1D array)

      • optimized ndarray (type and vector-size as size-optimized array)

      • invalid ndarray annotations remains as object

  • parse errors

    • empty byte vector

    • char

      • eof after C byte

      • byte out of range

    • byte

      • parse bjdata markers in ubjson

    • strings

      • eof after S byte

      • invalid byte

      • parse bjdata markers in ubjson

    • array

      • optimized array: no size following type

      • optimized array: negative size

      • optimized array: integer value overflow

      • do not accept NTFZ markers in ndarray optimized type (with count)

      • do not accept NTFZ markers in ndarray optimized type (without count)

    • strings

    • sizes

    • parse bjdata markers as array size in ubjson

    • types

    • arrays

    • ndarrays

    • objects

  • writing optimized values

    • integer

      • array of i

      • array of U

      • array of I

      • array of u

      • array of l

      • array of m

      • array of L

    • unsigned integer

      • array of i

      • array of U

      • array of I

      • array of u

      • array of l

      • array of m

      • array of L

      • array of M

  • Universal Binary JSON Specification Examples 1

    • Null Value

    • No-Op Value

    • Boolean Types

    • Numeric Types

    • Char Type

    • Byte Type

    • String Type

      • English

      • Russian

      • Russian

    • Array Type

      • size=false type=false

      • size=true type=false

      • size=true type=true

    • Object Type

      • size=false type=false

      • size=true type=false

      • size=true type=true

    • Optimized Format

      • Array Example

        • No Optimization

        • Optimized with count

        • Optimized with type & count

      • Object Example

        • No Optimization

        • Optimized with count

        • Optimized with type & count

      • Special Cases (Null, No-Op and Boolean)

        • Array

        • Object

  • all BJData first bytes

  • BJData roundtrips

    • input from self-generated BJData files

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-bson.cpp#

  • BSON

    • individual values not supported

      • null

      • boolean

        • true

        • false

      • number

      • float

      • string

      • array

    • keys containing code-point U+0000 cannot be serialized to BSON

    • string length must be at least 1

    • objects

      • empty object

      • non-empty object with bool

      • non-empty object with bool

      • non-empty object with double

      • non-empty object with string

      • non-empty object with null member

      • non-empty object with integer (32-bit) member

      • non-empty object with integer (64-bit) member

      • non-empty object with negative integer (32-bit) member

      • non-empty object with negative integer (64-bit) member

      • non-empty object with unsigned integer (64-bit) member

      • non-empty object with small unsigned integer member

      • non-empty object with object member

      • non-empty object with array member

      • non-empty object with non-empty array member

      • non-empty object with binary member

      • non-empty object with binary member with subtype

      • Some more complex document

    • Examples from https://bsonspec.org/faq.html

      • Example 1

      • Example 2

  • BSON input/output_adapters

    • roundtrips

      • std::ostringstream

      • std::string

      • std::vector

  • Incomplete BSON Input

    • Incomplete BSON Input 1

    • Incomplete BSON Input 2

    • Incomplete BSON Input 3

    • Incomplete BSON Input 4

    • Improve coverage

      • key

      • array

  • Negative size of binary value

  • Unsupported BSON input

  • BSON numerical data

    • number

      • signed

        • std::int64_t: INT64_MIN .. INT32_MIN-1

        • signed std::int32_t: INT32_MIN .. INT32_MAX

        • signed std::int64_t: INT32_MAX+1 .. INT64_MAX

      • unsigned

        • unsigned std::uint64_t: 0 .. INT32_MAX

        • unsigned std::uint64_t: INT32_MAX+1 .. INT64_MAX

        • unsigned std::uint64_t: INT64_MAX+1 .. UINT64_MAX

  • BSON roundtrips

    • reference files

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-byte_container_with_subtype.cpp#

  • byte_container_with_subtype

    • empty container

    • subtyped container

    • comparisons

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-byte_order_mark.cpp#

  • accept

    • UTF-8

      • single BOM

      • multiple BOM

      • unexpected BOM

    • Other byte-order marks

      • UTF-16

      • UTF-32

  • parse

    • UTF-8

      • multiple BOM

      • unexpected BOM

    • other BOM

      • UTF-16

      • UTF-32

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-capacity.cpp#

  • capacity

    • empty()

      • boolean

        • result of empty

        • definition of empty

      • string

        • result of empty

        • definition of empty

      • array

        • empty array

          • result of empty

          • definition of empty

        • filled array

          • result of empty

          • definition of empty

      • object

        • empty object

          • result of empty

          • definition of empty

        • filled object

          • result of empty

          • definition of empty

      • number (integer)

        • result of empty

        • definition of empty

      • number (unsigned)

        • result of empty

        • definition of empty

      • number (float)

        • result of empty

        • definition of empty

      • null

        • result of empty

        • definition of empty

    • size()

      • boolean

        • result of size

        • definition of size

      • string

        • result of size

        • definition of size

      • array

        • empty array

          • result of size

          • definition of size

        • filled array

          • result of size

          • definition of size

      • object

        • empty object

          • result of size

          • definition of size

        • filled object

          • result of size

          • definition of size

      • number (integer)

        • result of size

        • definition of size

      • number (unsigned)

        • result of size

        • definition of size

      • number (float)

        • result of size

        • definition of size

      • null

        • result of size

        • definition of size

    • max_size()

      • boolean

        • result of max_size

      • string

        • result of max_size

      • array

        • empty array

          • result of max_size

        • filled array

          • result of max_size

      • object

        • empty object

          • result of max_size

        • filled object

          • result of max_size

      • number (integer)

        • result of max_size

      • number (unsigned)

        • result of max_size

      • number (float)

        • result of max_size

      • null

        • result of max_size

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-cbor.cpp#

  • CBOR

    • individual values

      • discarded

      • NaN

      • Infinity

      • null

      • boolean

        • true

        • false

      • number

        • signed

          • -9223372036854775808..-4294967297

          • -4294967296..-65537

          • -65536..-257

          • -9263 (int 16)

          • -256..-24

          • -24..-1

          • 0..23

          • 24..255

          • 256..65535

          • 65536..4294967295

          • 4294967296..4611686018427387903

          • -32768..-129 (int 16)

        • unsigned

          • 0..23 (Integer)

          • 24..255 (one-byte uint8_t)

          • 256..65535 (two-byte uint16_t)

          • 65536..4294967295 (four-byte uint32_t)

          • 4294967296..4611686018427387903 (eight-byte uint64_t)

        • double-precision float

          • 3.1415925

        • single-precision float

          • 0.5

          • 0.0

          • -0.0

          • 100.0

          • 200.0

          • 3.40282e+38(max float)

          • -3.40282e+38(lowest float)

          • 1 + 3.40282e+38(more than max float)

          • -1 - 3.40282e+38(less than lowest float)

        • half-precision float (edge cases)

          • errors

            • no byte follows

            • only one byte follows

          • exp = 0b00000

            • 0 (0 00000 0000000000)

            • -0 (1 00000 0000000000)

            • 2**-24 (0 00000 0000000001)

          • exp = 0b11111

            • infinity (0 11111 0000000000)

            • -infinity (1 11111 0000000000)

          • other values from https://en.wikipedia.org/wiki/Half-precision_floating-point_format

            • 1 (0 01111 0000000000)

            • -2 (1 10000 0000000000)

            • 65504 (0 11110 1111111111)

          • infinity

          • NaN

      • string

        • N = 0..23

        • N = 24..255

        • N = 256..65535

        • N = 65536..4294967295

      • array

        • empty

        • [null]

        • [1,2,3,4,5]

        • [[[[]]]]

        • array with uint16_t elements

        • array with uint32_t elements

      • object

        • empty

        • {\

        • {\

        • object with uint8_t elements

        • object with uint16_t elements

        • object with uint32_t elements

      • binary

        • N = 0..23

        • N = 24..255

        • N = 256..65535

        • N = 65536..4294967295

        • indefinite size

        • binary in array

        • binary in object

        • SAX callback with binary

    • additional deserialization

      • 0x5b (byte array)

      • 0x7b (string)

      • 0x9b (array)

      • 0xbb (map)

    • errors

      • empty byte vector

      • too short byte vector

      • unsupported bytes

        • concrete examples

        • all unsupported bytes

      • invalid string in map

      • strict mode

        • non-strict mode

        • strict mode

    • SAX aborts

      • start_array(len)

      • start_object(len)

      • key()

  • single CBOR roundtrip

    • sample.json

      • roundtrips

        • std::ostringstream

        • std::string

  • CBOR regressions

    • fuzz test results

  • CBOR roundtrips

    • input from flynn

  • all CBOR first bytes

  • examples from RFC 7049 Appendix A

    • numbers

    • simple values

    • strings

    • byte arrays

    • arrays

    • objects

  • Tagged values

    • 0xC6..0xD4

    • 0xD8 - 1 byte follows

      • success

      • missing byte after tag

    • 0xD9 - 2 byte follow

      • success

      • missing byte after tag

    • 0xDA - 4 bytes follow

      • success

      • missing bytes after tag

    • 0xDB - 8 bytes follow

      • success

      • missing byte after tag

    • tagged binary

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-class_const_iterator.cpp#

  • const_iterator class

    • construction

      • constructor

        • null

        • object

        • array

      • copy assignment

      • copy constructor from non-const iterator

        • create from uninitialized iterator

        • create from initialized iterator

    • initialization

      • set_begin

        • null

        • object

        • array

      • set_end

        • null

        • object

        • array

    • element access

      • operator*

        • null

        • number

        • object

        • array

      • operator->

        • null

        • number

        • object

        • array

    • increment/decrement

      • post-increment

        • null

        • number

        • object

        • array

      • pre-increment

        • null

        • number

        • object

        • array

      • post-decrement

        • null

        • number

        • object

        • array

      • pre-decrement

        • null

        • number

        • object

        • array

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-class_iterator.cpp#

  • iterator class

    • construction

      • constructor

        • null

        • object

        • array

      • copy assignment

    • initialization

      • set_begin

        • null

        • object

        • array

      • set_end

        • null

        • object

        • array

    • element access

      • operator*

        • null

        • number

        • object

        • array

      • operator->

        • null

        • number

        • object

        • array

    • increment/decrement

      • post-increment

        • null

        • number

        • object

        • array

      • pre-increment

        • null

        • number

        • object

        • array

      • post-decrement

        • null

        • number

        • object

        • array

      • pre-decrement

        • null

        • number

        • object

        • array

    • equality-preserving

      • post-increment

        • primitive_iterator_t

        • iter_impl

        • json_reverse_iterator

      • post-decrement

        • primitive_iterator_t

        • iter_impl

        • json_reverse_iterator

    • cert-dcl21-cpp

      • post-increment

        • primitive_iterator_t

        • iter_impl

        • json_reverse_iterator

      • post-decrement

        • primitive_iterator_t

        • iter_impl

        • json_reverse_iterator

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-class_lexer.cpp#

  • lexer class

    • scan

      • structural characters

      • literal names

      • numbers

      • whitespace

    • token_type_name

    • parse errors on first character

    • very large string

    • fail on comments

    • ignore comments

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-class_parser.cpp#

  • parser class

    • parse

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

          • additional test for null byte

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • accept

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • parse errors

    • parse errors (accept)

    • tests found by mutate++

    • callback function

      • filter nothing

      • filter everything

      • filter specific element

      • filter object in array

      • filter specific events

        • first closing event

      • special cases

    • constructing from contiguous containers

      • from std::vector

      • from std::array

      • from array

      • from char literal

      • from std::string

      • from std::initializer_list

      • from std::valarray

    • improve test coverage

      • parser with callback

      • SAX parser

        • } without value

        • } with value

        • second key

        • ] without value

        • ] with value

        • float

        • false

        • null

        • true

        • unsigned

        • integer

        • string

    • error messages for comments

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-class_parser_core.cpp#

  • parser class - core

    • parse

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

          • additional test for null byte

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • accept

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • parse errors

    • parse errors (accept)

    • tests found by mutate++

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-class_parser_diagnostic_positions.cpp#

  • parser class

    • parse

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

          • additional test for null byte

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • accept

      • null

      • true

      • false

      • array

        • empty array

        • nonempty array

      • object

        • empty object

        • nonempty object

      • string

        • errors

        • escaped

      • number

        • integers

          • without exponent

          • with exponent

          • edge cases

          • over the edge cases

        • floating-point

          • without exponent

          • with exponent

        • overflow

        • invalid numbers

    • parse errors

    • parse errors (accept)

    • tests found by mutate++

    • callback function

      • filter nothing

      • filter everything

      • filter specific element

      • filter object in array

      • filter specific events

        • first closing event

      • special cases

    • constructing from contiguous containers

      • from std::vector

      • from std::array

      • from array

      • from char literal

      • from std::string

      • from std::initializer_list

      • from std::valarray

    • improve test coverage

      • parser with callback

      • SAX parser

        • } without value

        • } with value

        • second key

        • ] without value

        • ] with value

        • float

        • false

        • null

        • true

        • unsigned

        • integer

        • string

    • error messages for comments

    • with callback

      • filter nothing

      • filter element

    • without callback

    • retrieve start position and end position

      • for object

      • for array

      • for array with objects

      • for two levels of nesting objects

      • for simple types

        • no nested

          • with callback

          • without callback

        • string type

        • number type

        • boolean type

        • null type

      • with leading whitespace and newlines around root JSON

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-comparison.cpp#

  • lexicographical comparison operators

    • types

      • comparison: less

      • comparison: 3-way

    • values

      • compares unordered

      • compares unordered (inverse)

      • comparison: equal

      • comparison: not equal

      • comparison: less

      • comparison: less than or equal equal

      • comparison: greater than

      • comparison: greater than or equal

      • comparison: 3-way

    • parser callback regression

      • filter specific element

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++23

List of tests in file unit-concepts.cpp#

  • concepts

    • container requirements for json

    • class json

      • DefaultConstructible

      • MoveConstructible

      • CopyConstructible

      • MoveAssignable

      • CopyAssignable

      • Destructible

      • StandardLayoutType

    • class iterator

      • CopyConstructible

      • CopyAssignable

      • Destructible

      • Swappable

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-constructor1.cpp#

  • constructors

    • create an empty value with a given type

      • null

      • discarded

      • object

      • array

      • boolean

      • string

      • number_integer

      • number_unsigned

      • number_float

      • binary

    • create a null object (implicitly)

      • no parameter

    • create a null object (explicitly)

      • parameter

    • create an object (explicit)

      • empty object

      • filled object

    • create an object (implicit)

      • std::map<json::string_t, json>

      • std::map<std::string, std::string> #600

      • std::map<const char*, json>

      • std::multimap<json::string_t, json>

      • std::unordered_map<json::string_t, json>

      • std::unordered_multimap<json::string_t, json>

      • associative container literal

    • create an array (explicit)

      • empty array

      • filled array

    • create an array (implicit)

      • std::list<json>

      • std::pair

      • std::pair with discarded values

      • std::tuple

      • std::tuple with discarded values

      • std::pair/tuple/array failures

      • std::forward_list<json>

      • std::array<json, 6>

      • std::valarray<int>

      • std::valarray<double>

      • std::vector<json>

      • std::deque<json>

      • std::set<json>

      • std::unordered_set<json>

      • sequence container literal

    • create a string (explicit)

      • empty string

      • filled string

    • create a string (implicit)

      • std::string

      • char[]

      • const char*

      • string literal

    • create a boolean (explicit)

      • empty boolean

      • filled boolean (true)

      • filled boolean (false)

      • from std::vector<bool>::reference

      • from std::vector<bool>::const_reference

    • create a binary (explicit)

      • empty binary

      • filled binary

    • create an integer number (explicit)

      • uninitialized value

      • initialized value

    • create an integer number (implicit)

      • short

      • unsigned short

      • int

      • unsigned int

      • long

      • unsigned long

      • long long

      • unsigned long long

      • int8_t

      • int16_t

      • int32_t

      • int64_t

      • int_fast8_t

      • int_fast16_t

      • int_fast32_t

      • int_fast64_t

      • int_least8_t

      • int_least16_t

      • int_least32_t

      • int_least64_t

      • uint8_t

      • uint16_t

      • uint32_t

      • uint64_t

      • uint_fast8_t

      • uint_fast16_t

      • uint_fast32_t

      • uint_fast64_t

      • uint_least8_t

      • uint_least16_t

      • uint_least32_t

      • uint_least64_t

      • integer literal without suffix

      • integer literal with u suffix

      • integer literal with l suffix

      • integer literal with ul suffix

      • integer literal with ll suffix

      • integer literal with ull suffix

    • create a floating-point number (explicit)

      • uninitialized value

      • initialized value

      • NaN

      • infinity

    • create a floating-point number (implicit)

      • float

      • double

      • long double

      • floating-point literal without suffix

      • integer literal with f suffix

      • integer literal with l suffix

    • create a container (array or object) from an initializer list

      • empty initializer list

        • explicit

        • implicit

      • one element

        • array

          • explicit

          • implicit

        • object

          • explicit

          • implicit

        • string

          • explicit

          • implicit

        • boolean

          • explicit

          • implicit

        • number (integer)

          • explicit

          • implicit

        • number (unsigned)

          • explicit

          • implicit

        • number (floating-point)

          • explicit

          • implicit

      • more elements

        • explicit

        • implicit

      • implicit type deduction

        • object

        • array

      • explicit type deduction

        • empty object

        • object

        • object with error

        • empty array

        • array

      • move from initializer_list

        • string

          • constructor with implicit types (array)

          • constructor with implicit types (object)

          • constructor with implicit types (object key)

        • array

          • constructor with implicit types (array)

          • constructor with implicit types (object)

          • assignment with implicit types (array)

          • assignment with implicit types (object)

        • object

          • constructor with implicit types (array)

          • constructor with implicit types (object)

          • assignment with implicit types (array)

          • assignment with implicit types (object)

        • json

          • constructor with implicit types (array)

          • constructor with implicit types (object)

          • assignment with implicit types (array)

          • assignment with implicit types (object)

    • create an array of n copies of a given value

      • cnt = 0

      • cnt = 1

      • cnt = 3

    • create a JSON container from an iterator range

      • object

        • json(begin(), end())

        • json(begin(), begin())

        • construct from subrange

        • incompatible iterators

      • array

        • json(begin(), end())

        • json(begin(), begin())

        • construct from subrange

        • incompatible iterators

      • other values

        • construct with two valid iterators

          • null

          • string

          • number (boolean)

          • number (integer)

          • number (unsigned)

          • number (floating point)

          • binary

        • construct with two invalid iterators

          • string

          • number (boolean)

          • number (integer)

          • number (integer)

          • number (floating point)

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-constructor2.cpp#

  • other constructors and destructor

    • copy constructor

      • object

      • array

      • null

      • boolean

      • string

      • number (integer)

      • number (unsigned)

      • number (floating-point)

      • binary

    • move constructor

    • copy assignment

      • object

      • array

      • null

      • boolean

      • string

      • number (integer)

      • number (unsigned)

      • number (floating-point)

      • binary

    • destructor

      • object

      • array

      • string

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-convenience.cpp#

  • convenience functions

    • type name as string

    • string escape

    • string concat

      • std::string

      • alt_string_iter

      • alt_string_data

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-conversions.cpp#

  • value conversion

    • get an object (explicit)

      • json::object_t

      • std::map<json::string_t, json>

      • std::multimap<json::string_t, json>

      • std::unordered_map<json::string_t, json>

      • std::unordered_multimap<json::string_t, json>

      • exception in case of a non-object type

    • get an object (explicit, get_to)

      • json::object_t

      • std::map<json::string_t, json>

      • std::multimap<json::string_t, json>

      • std::unordered_map<json::string_t, json>

      • std::unordered_multimap<json::string_t, json>

    • get an object (implicit)

      • json::object_t

      • std::map<json::string_t, json>

      • std::multimap<json::string_t, json>

      • std::unordered_map<json::string_t, json>

      • std::unordered_multimap<json::string_t, json>

    • get an array (explicit)

      • json::array_t

      • std::list<json>

      • std::forward_list<json>

      • std::vector<json>

        • reserve is called on containers that supports it

      • built-in arrays

      • std::deque<json>

      • exception in case of a non-array type

    • get an array (explicit, get_to)

      • json::array_t

      • std::valarray<json>

      • std::list<json>

      • std::forward_list<json>

      • std::vector<json>

      • built-in arrays

      • built-in arrays: 2D

      • built-in arrays: 3D

      • built-in arrays: 4D

      • std::deque<json>

    • get an array (implicit)

      • json::array_t

      • std::list<json>

      • std::forward_list<json>

      • std::vector<json>

      • std::deque<json>

    • get a string (explicit)

      • string_t

      • std::string

      • std::string_view

      • exception in case of a non-string type

      • exception in case of a non-string type using string_view

    • get a string (explicit, get_to)

      • string_t

      • std::string

      • std::string_view

    • get null (explicit)

    • get a string (implicit)

      • string_t

      • std::string_view

      • std::string

    • get a boolean (explicit)

      • boolean_t

      • uint8_t

      • bool

      • exception in case of a non-number type

    • get a boolean (implicit)

      • boolean_t

      • bool

    • get an integer number (explicit)

      • number_integer_t

      • number_unsigned_t

      • short

      • unsigned short

      • int

      • unsigned int

      • long

      • unsigned long

      • long long

      • unsigned long long

      • int8_t

      • int16_t

      • int32_t

      • int64_t

      • int8_fast_t

      • int16_fast_t

      • int32_fast_t

      • int64_fast_t

      • int8_least_t

      • int16_least_t

      • int32_least_t

      • int64_least_t

      • uint8_t

      • uint16_t

      • uint32_t

      • uint64_t

      • uint8_fast_t

      • uint16_fast_t

      • uint32_fast_t

      • uint64_fast_t

      • uint8_least_t

      • uint16_least_t

      • uint32_least_t

      • uint64_least_t

      • exception in case of a non-number type

    • get an integer number (implicit)

      • number_integer_t

      • number_unsigned_t

      • short

      • unsigned short

      • int

      • unsigned int

      • long

      • unsigned long

      • long long

      • unsigned long long

      • int8_t

      • int16_t

      • int32_t

      • int64_t

      • int8_fast_t

      • int16_fast_t

      • int32_fast_t

      • int64_fast_t

      • int8_least_t

      • int16_least_t

      • int32_least_t

      • int64_least_t

      • uint8_t

      • uint16_t

      • uint32_t

      • uint64_t

      • uint8_fast_t

      • uint16_fast_t

      • uint32_fast_t

      • uint64_fast_t

      • uint8_least_t

      • uint16_least_t

      • uint32_least_t

      • uint64_least_t

    • get a floating-point number (explicit)

      • number_float_t

      • float

      • double

      • exception in case of a non-string type

    • get a floating-point number (implicit)

      • number_float_t

      • float

      • double

    • get a binary value (explicit)

      • binary_t

      • get_binary()

        • non-const

        • non-const

      • exception in case of a non-string type

    • get a binary value (implicit)

      • binary_t

    • get an enum

    • more involved conversions

      • object-like STL containers

        • std::map

        • std::unordered_map

        • std::multimap

        • std::unordered_multimap

        • exception in case of a non-object type

      • array-like STL containers

        • std::list

        • std::forward_list

        • std::array

          • std::array is larger than JSON

          • std::array is smaller than JSON

        • std::valarray

        • std::vector

        • std::deque

        • std::set

        • std::unordered_set

        • std::map (array of pairs)

          • superfluous entries

        • std::unordered_map (array of pairs)

          • superfluous entries

        • exception in case of a non-object type

  • JSON to enum mapping

    • enum class

    • traditional enum

  • std::filesystem::path

    • ascii

    • utf-8

  • std::optional

    • null

    • string

    • bool

    • number

    • array

    • object

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-g++-6 with standard gnu++14

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-g++-5 with standard gnu++14

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-g++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.8 with standard gnu++11

  • Linux-g++-4.8 with standard gnu++14

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++-4.9 with standard gnu++14

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-g++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++14

  • Linux-icpc with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++23

List of tests in file unit-custom-base-class.cpp#

  • JSON Node Metadata

    • type int

    • type vector<int>

    • copy ctor

    • move ctor

    • move assign

    • copy assign

    • type unique_ptr<int>

    • type vector<int> in json array

  • JSON Visit Node

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-deserialization.cpp#

  • deserialization

    • successful deserialization

      • stream

      • string literal

      • string_t

      • operator<<

      • operator>>

      • user-defined string literal

    • unsuccessful deserialization

      • stream

      • string

      • operator<<

      • operator>>

      • user-defined string literal

    • contiguous containers

      • directly

        • from std::vector

        • from std::array

        • from array

        • from chars

        • from std::string

        • from std::initializer_list

        • empty container

      • via iterator range

        • from std::vector

        • from std::array

        • from array

        • from std::string

        • from std::initializer_list

        • from std::valarray

        • with empty range

        • iterator_input_adapter advances iterators correctly

      • error cases

        • case 1

        • case 2

        • case 3

        • case 4

        • case 5

        • case 6

        • case 7

        • case 8

        • case 9

        • case 10

        • case 11

        • case 12

        • case 13

        • case 14

        • case 15

        • case 16

    • ignoring byte-order marks

      • BOM only

      • BOM and content

      • 2 byte of BOM

      • 1 byte of BOM

      • variations

      • preserve state after parsing

    • SAX and early abort

    • JSON Lines

      • Example file

      • Example file without trailing newline

  • deserialization of different character types (ASCII)

  • deserialization of different character types (UTF-8)

  • deserialization of different character types (UTF-16)

  • deserialization of different character types (UTF-32)

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++23

List of tests in file unit-diagnostic-positions-only.cpp#

  • Better diagnostics with positions only

    • invalid type

    • invalid type without positions

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-diagnostic-positions.cpp#

  • Better diagnostics with positions

    • invalid type

    • invalid type without positions

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-diagnostics.cpp#

  • Better diagnostics

    • empty JSON Pointer

    • invalid type

    • missing key

    • array index out of range

    • array index at wrong type

    • wrong iterator

    • JSON Pointer escaping

    • Parse error

    • Wrong type in update()

  • Regression tests for extended diagnostics

    • Regression test for https://github.com/nlohmann/json/pull/2562#pullrequestreview-574858448

    • Regression test for https://github.com/nlohmann/json/pull/2562/files/380a613f2b5d32425021129cd1f371ddcfd54ddf#r563259793

    • Regression test for issue #2838 - Assertion failure when inserting into arrays with JSON_DIAGNOSTICS set

    • Regression test for issue #2962 - JSON_DIAGNOSTICS assertion for ordered_json

    • Regression test for issue #3007 - Parent pointers properly set when using update()

    • Regression test for issue #3032 - Yet another assertion failure when inserting into arrays with JSON_DIAGNOSTICS set

    • Regression test for issue #3915 - JSON_DIAGNOSTICS trigger assertion

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-disabled_exceptions.cpp#

  • Tests with disabled exceptions

    • issue #2824 - encoding of json::exception::what()

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-element_access1.cpp#

  • element access 1

    • array

      • access specified element with bounds checking

        • access within bounds

        • access outside bounds

        • access on non-array type

          • null

          • boolean

          • string

          • object

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • front and back

      • access specified element

        • access within bounds

        • access on non-array type

          • null

            • standard tests

            • implicit transformation to properly filled array

          • boolean

          • string

          • object

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • remove specified element

        • remove element by index

        • remove element by iterator

          • erase(begin())

          • erase(begin(), end())

          • erase(begin(), begin())

          • erase at offset

          • erase subrange

          • different arrays

        • remove element by index in non-array type

          • null

          • boolean

          • string

          • object

          • number (integer)

          • number (unsigned)

          • number (floating-point)

    • other values

      • front and back

        • null

        • string

        • number (boolean)

        • number (integer)

        • number (unsigned)

        • number (floating point)

      • erase with one valid iterator

        • null

        • string

        • number (boolean)

        • number (integer)

        • number (unsigned)

        • number (floating point)

        • binary

      • erase with one invalid iterator

        • string

        • number (boolean)

        • number (integer)

        • number (unsigned)

        • number (floating point)

      • erase with two valid iterators

        • null

        • string

        • number (boolean)

        • number (integer)

        • number (unsigned)

        • number (floating point)

        • binary

      • erase with two invalid iterators

        • string

        • number (boolean)

        • number (integer)

        • number (unsigned)

        • number (floating point)

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-element_access2.cpp#

  • element access 2

    • object

      • access specified element with bounds checking

        • access within bounds

        • access outside bounds

        • access on non-object type

          • null

          • boolean

          • string

          • array

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • access specified element with default value

        • given a key

          • access existing value

          • access non-existing value

          • access on non-object type

            • null

            • boolean

            • string

            • array

            • number (integer)

            • number (unsigned)

            • number (floating-point)

        • given a JSON pointer

          • access existing value

          • access on non-object type

            • null

            • boolean

            • string

            • array

            • number (integer)

            • number (unsigned)

            • number (floating-point)

      • non-const operator[]

      • front and back

      • access specified element

        • access within bounds

        • access within bounds (string_view)

        • access on non-object type

          • null

          • boolean

          • string

          • array

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • remove specified element

        • remove element by key

        • remove element by key (string_view)

        • remove element by iterator

          • erase(begin())

          • erase(begin(), end())

          • erase(begin(), begin())

          • erase at offset

          • erase subrange

          • different objects

        • remove element by key in non-object type

          • null

          • boolean

          • string

          • array

          • number (integer)

          • number (floating-point)

      • find an element in an object

        • existing element

        • nonexisting element

        • all types

          • null

          • string

          • object

          • array

          • boolean

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • count keys in an object

        • existing element

        • nonexisting element

        • all types

          • null

          • string

          • object

          • array

          • boolean

          • number (integer)

          • number (unsigned)

          • number (floating-point)

      • check existence of key in an object

        • existing element

        • nonexisting element

        • all types

          • null

          • string

          • object

          • array

          • boolean

          • number (integer)

          • number (unsigned)

          • number (floating-point)

  • element access 2 (throwing tests)

    • object

      • access specified element with default value

        • given a JSON pointer

          • access non-existing value

  • element access 2 (additional value() tests)

    • deduced ValueType

      • literal key

      • const char * key

      • const char(&)[] key

      • string_t/object_t::key_type key

      • std::string_view key

    • explicit ValueType

      • literal key

      • const char * key

      • const char(&)[] key

      • string_t/object_t::key_type key

      • std::string_view key

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-g++-6 with standard gnu++14

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-g++-5 with standard gnu++14

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-g++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.8 with standard gnu++11

  • Linux-g++-4.8 with standard gnu++14

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++-4.9 with standard gnu++14

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-g++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++14

  • Linux-icpc with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++23

List of tests in file unit-hash.cpp#

  • hash<nlohmann::json>

  • hash<nlohmann::ordered_json>

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-inspection.cpp#

  • object inspection

    • convenience type checker

      • object

      • array

      • null

      • boolean

      • string

      • number (integer)

      • number (unsigned)

      • number (floating-point)

      • binary

      • discarded

    • serialization

      • no indent / indent=-1

      • indent=0

      • indent=1, space=’\t’

      • indent=4

      • indent=x

      • dump and floating-point numbers

      • dump and small floating-point numbers

      • dump and non-ASCII characters

      • dump with ensure_ascii and non-ASCII characters

      • full Unicode escaping to ASCII

        • parsing yields the same JSON value

        • dumping yields the same JSON text

      • serialization of discarded element

      • check that precision is reset after serialization

    • round trips

    • return the type of the object (explicit)

      • null

      • object

      • array

      • boolean

      • string

      • number (integer)

      • number (unsigned)

      • number (floating-point)

    • return the type of the object (implicit)

      • null

      • object

      • array

      • boolean

      • string

      • number (integer)

      • number (unsigned)

      • number (floating-point)

      • binary

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-items.cpp#

  • iterator_wrapper

    • object

      • value

      • reference

      • const value

      • const reference

    • const object

      • value

      • reference

      • const value

      • const reference

    • array

      • value

      • reference

      • const value

      • const reference

    • const array

      • value

      • reference

      • const value

      • const reference

    • primitive

      • value

      • reference

      • const value

      • const reference

    • const primitive

      • value

      • reference

      • const value

      • const reference

  • items()

    • object

      • value

      • reference

      • const value

      • const reference

      • structured bindings

    • const object

      • value

      • reference

      • const value

      • const reference

    • array

      • value

      • reference

      • const value

      • const reference

    • const array

      • value

      • reference

      • const value

      • const reference

    • primitive

      • value

      • reference

      • const value

      • const reference

    • const primitive

      • value

      • reference

      • const value

      • const reference

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++23

List of tests in file unit-iterators1.cpp#

  • iterators 1

    • basic behavior

      • uninitialized

      • boolean

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • additional tests

          • !(begin != begin)

          • !(end != end)

          • begin < end

          • begin <= end

          • end > begin

          • end >= begin

          • end == end

          • end <= end

          • begin == begin

          • begin <= begin

          • begin >= begin

          • !(begin == end)

          • begin != end

          • begin+1 == end

          • begin == end-1

          • begin != end+1

          • end != end+1

          • begin+1 != begin+2

          • begin+1 < begin+2

          • begin+1 <= begin+2

          • end+1 != end+2

        • key/value

      • string

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • array

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • object

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • number (integer)

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • number (unsigned)

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • number (float)

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

      • null

        • json + begin/end

        • const json + begin/end

        • json + cbegin/cend

        • const json + cbegin/cend

        • json + rbegin/rend

        • json + crbegin/crend

        • const json + crbegin/crend

        • key/value

    • conversion from iterator to const iterator

      • boolean

      • string

      • array

      • object

      • number (integer)

      • number (unsigned)

      • number (float)

      • null

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-iterators2.cpp#

  • iterators 2

    • iterator comparisons

    • iterator arithmetic

      • addition and subtraction

        • object

        • array

        • null

        • value

      • subscript operator

        • object

        • array

        • null

        • value

    • reverse iterator comparisons

    • reverse iterator arithmetic

      • addition and subtraction

        • object

        • array

        • null

        • value

      • subscript operator

        • object

        • array

        • null

        • value

    • ranges

      • concepts

      • algorithms

        • copy

        • find_if

      • views

        • reverse

        • transform

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++23

List of tests in file unit-iterators3.cpp#

  • checking forward-iterators

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-g++-6 with standard gnu++14

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-g++-5 with standard gnu++14

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++-4.8 with standard gnu++11

  • Linux-g++-4.8 with standard gnu++14

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++-4.9 with standard gnu++14

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++14

  • Linux-g++ with standard gnu++23

List of tests in file unit-json_patch.cpp#

  • JSON patch

    • examples from RFC 6902

        1. Operations

      • 4.1 add

      • 4.2 remove

      • A.1. Adding an Object Member

      • A.2. Adding an Array Element

      • A.3. Removing an Object Member

      • A.4. Removing an Array Element

      • A.5. Replacing a Value

      • A.6. Moving a Value

      • A.7. Moving a Value

      • A.8. Testing a Value: Success

      • A.9. Testing a Value: Error

      • A.10. Adding a Nested Member Object

      • A.11. Ignoring Unrecognized Elements

      • A.12. Adding to a Nonexistent Target

      • A.14. Escape Ordering

      • A.15. Comparing Strings and Numbers

      • A.16. Adding an Array Value

    • own examples

      • add

        • add to the root element

        • add to end of the array

      • copy

      • replace

      • documentation GIF

    • errors

      • unknown operation

        • not an array

        • not an array of objects

        • missing ‘op’

        • non-string ‘op’

        • invalid operation

      • add

        • missing ‘path’

        • non-string ‘path’

        • missing ‘value’

        • invalid array index

      • remove

        • missing ‘path’

        • non-string ‘path’

        • nonexisting target location (array)

        • nonexisting target location (object)

        • root element as target location

      • replace

        • missing ‘path’

        • non-string ‘path’

        • missing ‘value’

        • nonexisting target location (array)

        • nonexisting target location (object)

      • move

        • missing ‘path’

        • non-string ‘path’

        • missing ‘from’

        • non-string ‘from’

        • nonexisting from location (array)

        • nonexisting from location (object)

      • copy

        • missing ‘path’

        • non-string ‘path’

        • missing ‘from’

        • non-string ‘from’

        • nonexisting from location (array)

        • nonexisting from location (object)

      • test

        • missing ‘path’

        • non-string ‘path’

        • missing ‘value’

    • Examples from jsonpatch.com

      • Simple Example

      • Operations

        • add

        • remove

        • replace

        • copy

        • move

        • test

    • Examples from bruth.github.io/jsonpatch-js

      • add

      • remove

      • replace

      • move

      • copy

      • copy

    • Tests from github.com/json-patch/json-patch-tests

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-json_pointer.cpp#

  • JSON pointers

    • errors

      • array index error

    • examples from RFC 6901

      • nonconst access

      • const access

      • user-defined string literal

    • array access

      • nonconst access

      • const access

    • flatten

    • string representation

    • conversion

      • array

      • object

    • empty, push, pop and parent

    • operators

    • equality comparison

      • exceptions

    • less-than comparison

    • usable as map key

    • backwards compatibility and mixing

      • equality comparison

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++23

List of tests in file unit-large_json.cpp#

  • tests on very large JSONs

    • issue #1419 - Segmentation fault (stack overflow) due to unbounded recursion

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-literals.cpp#

  • accept

    • unicode

    • capitalisation

      • true

      • null

      • false

    • illegal literals

      • nil

      • truth

      • const

      • none

      • self

      • super

      • this

      • undefined

    • illegal literal numbers

      • inf

      • infinity

      • NaN

  • parse

    • values

    • whitespace

    • capitalisation

      • true

      • null

      • false

    • illegal literals

      • nil

      • truth

      • const

      • none

      • self

      • super

      • this

      • undefined

    • illegal literal numbers

      • inf

      • infinity

      • NaN

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-locale-cpp.cpp#

  • locale-dependent test (LC_NUMERIC=C)

    • check if locale is properly set

    • parsing

    • SAX parsing

  • locale-dependent test (LC_NUMERIC=de_DE)

    • check if locale is properly set

    • parsing

    • SAX parsing

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-merge_patch.cpp#

  • JSON Merge Patch

    • examples from RFC 7396

      • Section 1

      • Section 3

      • Appendix A

        • Example 1

        • Example 2

        • Example 3

        • Example 4

        • Example 5

        • Example 6

        • Example 7

        • Example 8

        • Example 9

        • Example 10

        • Example 11

        • Example 12

        • Example 13

        • Example 14

        • Example 15

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-meta.cpp#

  • version information

    • meta()

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-modifiers.cpp#

  • modifiers

    • clear()

      • boolean

      • string

      • array

        • empty array

        • filled array

      • object

        • empty object

        • filled object

      • binary

        • empty binary

        • filled binary

      • number (integer)

      • number (unsigned)

      • number (float)

      • null

    • push_back()

      • to array

        • json&&

          • null

          • array

          • other type

        • const json&

          • null

          • array

          • other type

      • to object

        • null

        • object

        • other type

      • with initializer_list

        • null

        • array

        • object

    • emplace_back()

      • to array

        • null

        • array

        • multiple values

      • other type

    • emplace()

      • to object

        • null

        • object

      • other type

    • operator+=

      • to array

        • json&&

          • null

          • array

          • other type

        • const json&

          • null

          • array

          • other type

      • to object

        • null

        • object

        • other type

      • with initializer_list

        • null

        • array

        • object

    • insert()

      • value at position

        • insert before begin()

        • insert in the middle

        • insert before end()

      • rvalue at position

        • insert before begin()

        • insert in the middle

        • insert before end()

      • copies at position

        • insert before begin()

        • insert in the middle

        • insert before end()

        • insert nothing (count = 0)

      • range for array

        • proper usage

        • empty range

        • invalid iterators

      • range for object

        • proper usage

        • empty range

        • invalid iterators

      • initializer list at position

        • insert before begin()

        • insert in the middle

        • insert before end()

      • invalid iterator

      • non-array type

    • update()

      • non-recursive (default)

        • const reference

          • proper usage

          • wrong types

        • iterator range

          • proper usage

          • empty range

          • invalid iterators

      • recursive

        • const reference

          • extend object

          • replace object

    • swap()

      • json

        • member swap

        • nonmember swap

      • array_t

        • array_t type

        • non-array_t type

      • object_t

        • object_t type

        • non-object_t type

      • string_t

        • string_t type

        • non-string_t type

      • binary_t

        • binary_t type

        • binary_t::container_type type

        • non-binary_t type

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-msgpack.cpp#

  • MessagePack

    • individual values

      • discarded

      • null

      • boolean

        • true

        • false

      • number

        • signed

          • -32..-1 (negative fixnum)

          • 0..127 (positive fixnum)

          • 128..255 (int 8)

          • 256..65535 (int 16)

          • 65536..4294967295 (int 32)

          • 4294967296..9223372036854775807 (int 64)

          • -128..-33 (int 8)

          • -9263 (int 16)

          • -32768..-129 (int 16)

          • -32769..-2147483648

          • -9223372036854775808..-2147483649 (int 64)

        • unsigned

          • 0..127 (positive fixnum)

          • 128..255 (uint 8)

          • 256..65535 (uint 16)

          • 65536..4294967295 (uint 32)

          • 4294967296..18446744073709551615 (uint 64)

        • float

          • 3.1415925

          • 1.0

          • 128.128

      • string

        • N = 0..31

        • N = 32..255

        • N = 256..65535

        • N = 65536..4294967295

      • array

        • empty

        • [null]

        • [1,2,3,4,5]

        • [[[[]]]]

        • array 16

        • array 32

      • object

        • empty

        • {\

        • {\

        • map 16

        • map 32

      • extension

        • N = 0..255

        • N = 256..65535

        • N = 65536..4294967295

      • binary

        • N = 0..255

        • N = 256..65535

        • N = 65536..4294967295

    • from float32

    • errors

      • empty byte vector

      • too short byte vector

      • unexpected end inside int with stream

      • misuse wchar for binary

      • unsupported bytes

        • concrete examples

        • all unsupported bytes

      • invalid string in map

      • strict mode

        • non-strict mode

        • strict mode

    • SAX aborts

      • start_array(len)

      • start_object(len)

      • key()

  • single MessagePack roundtrip

    • sample.json

      • roundtrips

        • std::ostringstream

        • std::string

  • MessagePack roundtrips

    • input from msgpack-python

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-no-mem-leak-on-adl-serialize.cpp#

  • check_for_mem_leak_on_adl_to_json-1

  • check_for_mem_leak_on_adl_to_json-2

  • check_for_mem_leak_on_adl_to_json-2

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-noexcept.cpp#

  • noexcept

    • nothrow-copy-constructible exceptions

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-numbers.cpp#

  • accept

    • exponents

      • U+0425

      • U+0436

      • leading zeroes

    • operators

      • plus

      • minus

      • brackets

      • factorial

      • multiplication

      • division

      • comma

    • whitespace

      • space

      • tab

      • new line

      • Carriage return

      • Leading and tailing

        • space

        • tab

        • newline

        • Carriage return

        • Mixed

    • Leading zeroes

    • bases

      • Octal

      • Hexadecimal

  • parse

    • exponents

      • U+0425

      • U+0436

      • leading zeroes

      • leading plus

      • Capitalisation

    • operators

      • plus

      • minus

      • brackets

      • factorial

      • multiplication

      • division

      • comma

    • trailing zeroes

    • whitespace

    • invalid whitespace

      • space

      • tab

      • new line

      • Carriage return

    • Leading zeroes

    • Precision

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-objects.cpp#

  • accept

    • names

      • numbers

      • arrays

      • objects

      • literals

      • strings

        • control characters

        • unicode

        • escaped UTF-16 surrogates

    • whitespace

      • empty object

      • non-empty object

    • member separator

  • parse

    • whitespace

      • empty object

      • non-empty object

    • member separator

    • names

      • numbers

      • arrays

      • objects

      • literals

    • duplicate names

      • 100,000 identical keys

      • first and last key duplicate

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-ordered_json.cpp#

  • ordered_json

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-ordered_map.cpp#

  • ordered_map

    • constructor

      • constructor from iterator range

      • copy assignment

    • at

      • with Key&&

      • with const Key&&

      • with string literal

    • operator[]

      • with Key&&

      • with const Key&&

      • with string literal

    • erase

      • with Key&&

      • with const Key&&

      • with string literal

      • with iterator

      • with iterator pair

        • range in the middle

        • range at the beginning

        • range at the end

    • count

    • find

    • insert

      • const value_type&

      • value_type&&

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-pointer_access.cpp#

  • pointer access

    • pointer access to object_t

    • pointer access to const object_t

    • pointer access to array_t

    • pointer access to const array_t

    • pointer access to string_t

    • pointer access to const string_t

    • pointer access to boolean_t

    • pointer access to const boolean_t

    • pointer access to number_integer_t

    • pointer access to const number_integer_t

    • pointer access to number_unsigned_t

    • pointer access to const number_unsigned_t

    • pointer access to number_float_t

    • pointer access to const number_float_t

    • pointer access to const binary_t

    • pointer access to const binary_t

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-readme.cpp#

  • README

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-reference_access.cpp#

  • reference access

    • reference access to object_t

    • const reference access to const object_t

    • reference access to array_t

    • reference access to string_t

    • reference access to boolean_t

    • reference access to number_integer_t

    • reference access to number_unsigned_t

    • reference access to number_float_t

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-regression1.cpp#

  • regression tests 1

    • issue #60 - Double quotation mark is not parsed correctly

      • escape_doublequote

    • issue #70 - Handle infinity and NaN cases

      • NAN value

      • infinity

      • NAN value

      • infinity

    • pull request #71 - handle enum type

    • issue #76 - dump() / parse() not idempotent

    • issue #82 - lexer::get_number return NAN

    • issue #89 - nonstandard integer type

    • issue #93 reverse_iterator operator inheritance problem

    • issue #100 - failed to iterator json object with reverse_iterator

    • issue #101 - binary string causes numbers to be dumped as hex

    • issue #111 - subsequent unicode chars

    • issue #144 - implicit assignment to std::string fails

    • issue #146 - character following a surrogate pair is skipped

    • issue #171 - Cannot index by key of type static constexpr const char*

    • issue #186 miloyip/nativejson-benchmark: floating-point parsing

    • issue #228 - double values are serialized with commas as decimal points

    • issue #378 - locale-independent num-to-str

    • issue #379 - locale-independent str-to-num

    • issue #233 - Can’t use basic_json::iterator as a base iterator for std::move_iterator

    • issue #235 - ambiguous overload for ‘push_back’ and ‘operator+=’

    • issue #269 - diff generates incorrect patch when removing multiple array elements

    • issue #283 - value() does not work with _json_pointer types

    • issue #304 - Unused variable warning

    • issue #306 - Parsing fails without space at end of file

    • issue #310 - make json_benchmarks no longer working in 2.0.4

    • issue #323 - add nested object capabilities to pointers

    • issue #329 - serialized value not always can be parsed

    • issue #360 - Loss of precision when serializing <double>

    • issue #366 - json::parse on failed stream gets stuck

    • issue #367 - calling stream at EOF

    • issue #367 - behavior of operator>> should more closely resemble that of built-in overloads

      • (empty)

      • (whitespace)

      • one value

      • one value + whitespace

      • whitespace + one value

      • three values

      • literals without whitespace

      • example from #529

      • second example from #529

    • issue #389 - Integer-overflow (OSS-Fuzz issue 267)

    • issue #380 - bug in overflow detection when parsing integers

    • issue #405 - Heap-buffer-overflow (OSS-Fuzz issue 342)

    • issue #407 - Heap-buffer-overflow (OSS-Fuzz issue 343)

    • issue #408 - Heap-buffer-overflow (OSS-Fuzz issue 344)

    • issue #411 - Heap-buffer-overflow (OSS-Fuzz issue 366)

    • issue #412 - Heap-buffer-overflow (OSS-Fuzz issue 367)

    • issue #414 - compare with literal 0)

    • issue #416 - Use-of-uninitialized-value (OSS-Fuzz issue 377)

    • issue #452 - Heap-buffer-overflow (OSS-Fuzz issue 585)

    • issue #454 - doubles are printed as integers

    • issue #464 - VS2017 implicit to std::string conversion fix

    • issue #465 - roundtrip error while parsing 1000000000000000010E5

    • issue #473 - inconsistent behavior in conversion to array type

      • std::vector

      • std::list

      • std::forward_list

    • issue #486 - json::value_t can’t be a map’s key type in VC++ 2015

    • issue #494 - conversion from vector<bool> to json fails to build

    • issue #504 - assertion error (OSS-Fuzz 856)

    • issue #512 - use of overloaded operator ‘<=’ is ambiguous

    • issue #575 - heap-buffer-overflow (OSS-Fuzz 1400)

    • issue #600 - how does one convert a map in Json back to std::map?

      • example 1

      • example 2

    • issue #602 - BOM not skipped when using json:parse(iterator)

    • issue #702 - conversion from valarray<double> to json fails to build

      • original example

      • full example

    • issue #367 - Behavior of operator>> should more closely resemble that of built-in overloads.

      • example 1

    • issue #714 - throw std::ios_base::failure exception when failbit set to true

    • issue #805 - copy constructor is used with std::initializer_list constructor.

    • issue #838 - incorrect parse error with binary data in keys

    • issue #843 - converting to array not working

    • issue #894 - invalid RFC6902 copy operation succeeds

    • issue #961 - incorrect parsing of indefinite length CBOR strings

    • issue #962 - Timeout (OSS-Fuzz 6034)

    • issue #971 - Add a SAX parser - late bug

    • issue #972 - Segmentation fault on G++ when trying to assign json string literal to custom json type

    • issue #977 - Assigning between different json types

  • regression tests, exceptions dependent

    • issue #1340 - eof not set on exhausted input stream

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-g++ with standard gnu++23

List of tests in file unit-regression2.cpp#

  • regression tests 2

    • issue #1001 - Fix memory leak during parser callback

    • issue #1021 - to/from_msgpack only works with standard typization

    • issue #1045 - Using STL algorithms with JSON containers with expected results?

    • issue #1292 - Serializing std::variant causes stack overflow

    • issue #1299 - compile error in from_json converting to container

    • issue #1445 - buffer overflow in dumping invalid utf-8 strings

      • a bunch of -1, ensure_ascii=true

      • a bunch of -2, ensure_ascii=false

      • test case in issue #1445

    • issue #1447 - Integer Overflow (OSS-Fuzz 12506)

    • issue #1708 - minimum value of int64_t can be outputted

    • issue #1727 - Contains with non-const lvalue json_pointer picks the wrong overload

    • issue #1647 - compile error when deserializing enum if both non-default from_json and non-member operator== exists for other type

    • issue #1715 - json::from_cbor does not respect allow_exceptions = false when input is string literal

      • string literal

      • string array

      • std::string

    • issue #1805 - A pair<T1, T2> is json constructible only if T1 and T2 are json constructible

    • issue #1825 - A tuple<Args..> is json constructible only if all T in Args are json constructible

    • issue #1983 - JSON patch diff for op=add formation is not as per standard (RFC 6902)

    • issue #2067 - cannot serialize binary data to text JSON

    • PR #2181 - regression bug with lvalue

    • issue #2293 - eof doesn’t cause parsing to stop

    • issue #2315 - json.update and vector<pair>does not work with ordered_json

    • issue #2330 - ignore_comment=true fails on multiple consecutive lines starting with comments

    • issue #2546 - parsing containers of std::byte

    • issue #2574 - Deserialization to std::array, std::pair, and std::tuple with non-default constructable types fails

      • std::array

      • std::pair

      • std::tuple

    • issue #4530 - Serialization of empty tuple

    • issue #2865 - ASAN detects memory leaks

    • issue #2824 - encoding of json::exception::what()

    • issue #2825 - Properly constrain the basic_json conversion operator

    • issue #2958 - Inserting in unordered json using a pointer retains the leading slash

    • issue #2982 - to_{binary format} does not provide a mechanism for specifying a custom allocator for the returned type

    • issue #3070 - Version 3.10.3 breaks backward-compatibility with 3.10.2

    • issue #3077 - explicit constructor with default does not compile

    • issue #3108 - ordered_json doesn’t support range based erase

    • issue #3343 - json and ordered_json are not interchangeable

    • issue #3171 - if class is_constructible from std::string wrong from_json overload is being selected, compilation failed

    • issue #3312 - Parse to custom class from unordered_json breaks on G++11.2.0 with C++20

    • issue #3428 - Error occurred when converting nlohmann::json to std::any

    • issue #3204 - ambiguous regression

    • issue #3333 - Ambiguous conversion from nlohmann::basic_json<> to custom class

    • issue #3810 - ordered_json doesn’t support construction from C array of custom type

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-icpc with standard gnu++11

  • Linux-icpc with standard gnu++17

  • Linux-icpc with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-clang++-20 with standard gnu++11

  • Linux-clang++-20 with standard gnu++17

  • Linux-clang++-20 with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++17

  • Linux-c++ with standard gnu++20

  • Linux-g++ with standard gnu++23

List of tests in file unit-serialization.cpp#

  • serialization

    • operator<<

      • no given width

      • given width

      • given fill

    • operator>>

      • no given width

      • given width

      • given fill

    • dump

      • invalid character

      • ending with incomplete character

      • unexpected character

      • U+FFFD Substitution of Maximal Subparts

    • to_string

  • serialization for extreme integer values

    • minimum

    • maximum

  • dump with binary values

    • normal

    • pretty-printed

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-strings.cpp#

  • accept

    • noncharacter code positions

    • overlong sequences

      • Examples of an overlong ASCII character

      • Maximum overlong sequences

      • Overlong representation of the NUL character

    • malformed sequences

      • Unexpected continuation bytes

      • Lonely start characters

      • Sequences with last continuation byte missing

      • Concatenation of incomplete sequences

      • Impossible bytes

  • Unicode

    • escaped unicode

    • unescaped unicode

    • escaped utf-16 surrogates

      • well-formed

      • ill-formed

  • parse

    • whitespace

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-testsuites.cpp#

  • compliance tests from json.org

    • expected failures

    • no failures with trailing literals (relaxed)

    • expected passes

  • compliance tests from nativejson-benchmark

    • doubles

    • strings

    • roundtrip

  • test suite from json-test-suite

    • read all sample.json

  • json.org examples

    • 1.json

    • 2.json

    • 3.json

    • 4.json

    • 5.json

    • FILE 1.json

    • FILE 2.json

    • FILE 3.json

    • FILE 4.json

    • FILE 5.json

  • RFC 8259 examples

      1. Strings

    • 8.3 String Comparison

    • 13 Examples

  • nst’s JSONTestSuite

    • test_parsing

      • y

      • n

      • n -> y (relaxed)

      • i -> y

      • i/y -> n (out of range)

      • i -> n

  • nst’s JSONTestSuite (2)

    • test_parsing

      • y

      • n

      • n (previously overflowed)

      • i -> y

      • i -> n

  • Big List of Naughty Strings

    • parsing blns.json

    • roundtripping

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-to_chars.cpp#

  • digit gen

    • single precision

    • double precision

  • formatting

    • single precision

    • double precision

    • integer

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-type_traits.cpp#

  • type traits

    • is_c_string

      • char *

      • char[]

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-ubjson.cpp#

  • UBJSON

    • individual values

      • discarded

      • null

      • boolean

        • true

        • false

      • number

        • signed

          • -9223372036854775808..-2147483649 (int64)

          • -2147483648..-32769 (int32)

          • -32768..-129 (int16)

          • -9263 (int16)

          • -128..-1 (int8)

          • 0..127 (int8)

          • 128..255 (uint8)

          • 256..32767 (int16)

          • 65536..2147483647 (int32)

          • 2147483648..9223372036854775807 (int64)

        • unsigned

          • 0..127 (int8)

          • 128..255 (uint8)

          • 256..32767 (int16)

          • 65536..2147483647 (int32)

          • 2147483648..9223372036854775807 (int64)

        • float64

          • 3.1415925

        • high-precision number

          • unsigned integer number

          • signed integer number

          • floating-point number

          • errors

          • serialization

      • string

        • N = 0..127

        • N = 128..255

        • N = 256..32767

        • N = 65536..2147483647

      • binary

        • N = 0..127

        • N = 128..255

        • N = 256..32767

        • N = 32768..2147483647

        • Other Serializations

          • No Count No Type

          • Yes Count No Type

      • array

        • empty

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • [null]

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • [1,2,3,4,5]

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • [[[[]]]]

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • array with uint16_t elements

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • array with uint32_t elements

          • size=false type=false

          • size=true type=false

          • size=true type=true

      • object

        • empty

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • {\

          • size=false type=false

          • size=true type=false

          • size=true type=true

        • {\

          • size=false type=false

          • size=true type=false

          • size=true type=true

    • errors

      • strict mode

        • non-strict mode

        • strict mode

      • excessive size

        • array

        • object

    • SAX aborts

      • start_array()

      • start_object()

      • key() in object

      • start_array(len)

      • start_object(len)

      • key() in object with length

    • parsing values

      • strings

      • number

        • float

      • array

        • optimized version (length only)

        • optimized version (type and length)

    • parse errors

      • empty byte vector

      • char

        • eof after C byte

        • byte out of range

      • strings

        • eof after S byte

        • invalid byte

      • array

        • optimized array: no size following type

      • strings

      • sizes

      • types

      • arrays

      • objects

    • writing optimized values

      • integer

        • array of i

        • array of U

        • array of I

        • array of l

        • array of L

      • unsigned integer

        • array of i

        • array of U

        • array of I

        • array of l

        • array of L

      • discarded

  • Universal Binary JSON Specification Examples 1

    • Null Value

    • No-Op Value

    • Boolean Types

    • Numeric Types

    • Char Type

    • String Type

      • English

      • Russian

      • Russian

    • Array Type

      • size=false type=false

      • size=true type=false

      • size=true type=true

    • Object Type

      • size=false type=false

      • size=true type=false

      • size=true type=true

    • Optimized Format

      • Array Example

        • No Optimization

        • Optimized with count

        • Optimized with type & count

      • Object Example

        • No Optimization

        • Optimized with count

        • Optimized with type & count

      • Special Cases (Null, No-Op and Boolean)

        • Array

        • Object

  • all UBJSON first bytes

  • UBJSON roundtrips

    • input from self-generated UBJSON files

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-g++-6 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-g++-5 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.8 with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++-4.9 with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-icpc with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-udl.cpp#

  • user-defined string literals

    • using namespace nlohmann::literals::json_literals

    • using namespace nlohmann::json_literals

    • using namespace nlohmann::literals

    • using namespace nlohmann

    • global namespace

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-udt.cpp#

  • basic usage

    • conversion to json via free-functions

    • conversion from json via free-functions

      • via explicit calls to get

      • via explicit calls to get_to

      • implicit conversions

  • adl_serializer specialization

    • partial specialization

      • to_json

      • from_json

    • total specialization

      • to_json

      • from_json

  • even supported types can be specialized

  • Non-copyable types

    • to_json

    • from_json

  • custom serializer for pods

  • custom serializer that does adl by default

  • different basic_json types conversions

    • null

    • boolean

    • discarded

    • array

    • integer

    • float

    • unsigned

    • string

    • binary

    • object

    • get<custom_json>

  • an incomplete type does not trigger a compiler error in non-evaluated context

  • Issue #924

  • Issue #1237

  • compatible array type, without iterator type alias

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-udt_macro.cpp#

  • Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

    • person

  • Serialization/deserialization via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE

    • person

  • Serialization/deserialization via NLOHMANN_DEFINE_TYPE_INTRUSIVE_WITH_DEFAULT and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_WITH_DEFAULT

    • person with default values

  • Serialization/deserialization via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_WITH_DEFAULT and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_WITH_DEFAULT

    • derived person with default values

  • Serialization/deserialization of classes with 26 public/private member variables via NLOHMANN_DEFINE_TYPE_INTRUSIVE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE

    • alphabet

  • Serialization of non-default-constructible classes via NLOHMANN_DEFINE_TYPE_INTRUSIVE_ONLY_SERIALIZE and NLOHMANN_DEFINE_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

    • person

  • Serialization of non-default-constructible classes via NLOHMANN_DEFINE_DERIVED_TYPE_INTRUSIVE_ONLY_SERIALIZE and NLOHMANN_DEFINE_DERIVED_TYPE_NON_INTRUSIVE_ONLY_SERIALIZE

    • derived person only serialize

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-unicode1.cpp#

  • Unicode (1/5)

    • \uxxxx sequences

      • correct sequences

      • incorrect sequences

        • incorrect surrogate values

      • incorrect sequences

        • high surrogate without low surrogate

        • high surrogate with wrong low surrogate

        • low surrogate without high surrogate

    • read all unicode characters

      • check JSON Pointers

    • ignore byte-order-mark

      • in a stream

      • with an iterator

    • error for incomplete/wrong BOM

  • Markus Kuhn’s UTF-8 decoder capability and stress test

    • 1 Some correct UTF-8 text

    • 2 Boundary condition test cases

      • 2.1 First possible sequence of a certain length

      • 2.2 Last possible sequence of a certain length

      • 2.3 Other boundary conditions

    • 3 Malformed sequences

      • 3.1 Unexpected continuation bytes

      • 3.2 Lonely start characters

      • 3.3 Sequences with last continuation byte missing

      • 3.4 Concatenation of incomplete sequences

      • 3.5 Impossible bytes

    • 4 Overlong sequences

      • 4.1 Examples of an overlong ASCII character

      • 4.2 Maximum overlong sequences

      • 4.3 Overlong representation of the NUL character

    • 5 Illegal code positions

      • 5.1 Single UTF-16 surrogates

      • 5.2 Paired UTF-16 surrogates

      • 5.3 Noncharacter code positions

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-unicode2.cpp#

  • Unicode (2/5)

    • RFC 3629

      • ill-formed first byte

      • UTF8-1 (x00-x7F)

        • well-formed

      • UTF8-2 (xC2-xDF UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: wrong second byte

      • UTF8-3 (xE0 xA0-BF UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

      • UTF8-3 (xE1-xEC UTF8-tail UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

      • UTF8-3 (xED x80-9F UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

      • UTF8-3 (xEE-xEF UTF8-tail UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-unicode3.cpp#

  • Unicode (3/5)

    • RFC 3629

      • UTF8-4 (xF0 x90-BF UTF8-tail UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: missing fourth byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

        • ill-formed: wrong fourth byte

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-unicode4.cpp#

  • Unicode (4/5)

    • RFC 3629

      • UTF8-4 (xF1-F3 UTF8-tail UTF8-tail UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: missing fourth byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

        • ill-formed: wrong fourth byte

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-unicode5.cpp#

  • Unicode (5/5)

    • RFC 3629

      • UTF8-4 (xF4 x80-8F UTF8-tail UTF8-tail)

        • well-formed

        • ill-formed: missing second byte

        • ill-formed: missing third byte

        • ill-formed: missing fourth byte

        • ill-formed: wrong second byte

        • ill-formed: wrong third byte

        • ill-formed: wrong fourth byte

All tests in this file were run in the following configurations:

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

In the following configuration, however, some test-cases were skipped:

  • 1 test case was skipped when using Linux-g++ with standard gnu++20

  • 1 test case was skipped when using Linux-g++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++14

  • 1 test case was skipped when using Linux-clang++ with standard gnu++14

  • 1 test case was skipped when using Linux-g++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++17

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++23

  • 1 test case was skipped when using Linux-clang++ with standard gnu++11

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-clang++ with standard gnu++20

  • 1 test case was skipped when using Linux-c++ with standard gnu++11

  • 1 test case was skipped when using Linux-g++ with standard gnu++23

List of tests in file unit-user_defined_input.cpp#

  • Use arbitrary stdlib container

  • Custom container non-member begin/end

  • Custom container member begin/end

  • Custom iterator

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-windows_h.cpp#

  • include windows.h

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

List of tests in file unit-wstring.cpp#

  • wide strings

    • std::wstring

    • invalid std::wstring

    • std::u16string

    • invalid std::u16string

    • std::u32string

    • invalid std::u32string

All tests in this file were run in the following configurations:

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++17

  • Linux-g++-6 with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-g++-5 with standard gnu++11

  • Linux-clang++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.8 with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++14

  • Linux-g++ with standard gnu++14

  • Linux-clang++ with standard gnu++14

  • Linux-c++ with standard gnu++11

  • Linux-g++-4.9 with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-clang++ with standard gnu++17

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-icpc with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++23

  • Linux-clang++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++ with standard gnu++20

  • Linux-c++ with standard gnu++11

  • Linux-clang++-20 with standard gnu++11

  • Linux-c++ with standard gnu++11

  • Linux-g++ with standard gnu++23

Fallacies:

None

Graph:

No Historic Data Found


JLS-17#

A github workflow calculates the fraction of expectations covered by tests (TODO).

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-18#

Results from tests are accurately captured. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-19#

All components, dependencies and tools are listed in a manifest.

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-20#

A github workflow saves the history of scores in the trustable graph to derive trends. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-21#

A score is calculated based on the number of mirrored and unmirrored things. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-22#

The github workflow executes the unit tests daily and saves the results as time-series data. (TODO)

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-23#

The Eclipse S-CORE organization mirrors the nlohmann/json project in a github fork.

Supported Requests:

Supporting Items:

None

References:

  • website: https://github.com/nlohmann/json

https://github.com/nlohmann/json - Start-page of the original nlohmann/json project

  • website: https://github.com/eclipse-score/inc_nlohmann_json

https://github.com/eclipse-score/inc_nlohmann_json - Start-page of the mirror of nlohmann/json within Eclipse S-CORE

Fallacies:

None

Graph:

No Historic Data Found


JLS-24#

The nlohmann/json library recognizes malformed JSON and returns an exception.

Supported Requests:

Supporting Items:

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-25#

Malicious code changes are mitigated by code reviews, adhering to Eclipse S-core contribution procedures and vigilance from the open-source community.

Supported Requests:

Supporting Items:

None

References:

None

Fallacies:

None

Graph:

No Historic Data Found


JLS-26#

Pipeline execution results are analyzed in the fork and the original nlohmann/json repository.

Supported Requests:

Supporting Items:

None

References:

  • website: https://github.com/score-json/json/settings/branch_protection_rules/65227858

https://github.com/score-json/json/settings/branch_protection_rules/65227858 - branch protection rule for main branch specifying that failures of any workflow prevent merge.

Fallacies:

None

Graph:

No Historic Data Found