Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
924ac2e
adding skeleton workspace for cpp implementation
daantimmer Jul 19, 2026
0884174
first two test passing
daantimmer Jul 19, 2026
e42c783
Enable CountMostSevereTestStepResultStatus and FindAllPickleSteps met…
daantimmer Jul 20, 2026
4970dcb
Enabled FindAllStepDefinitions, FindAllTestCaseFinished, FindAllTestC…
daantimmer Jul 21, 2026
9bef1d8
Enabled FindAllTestCaseFinishedOrderBy. FindAllTestCases, FindAllTest…
daantimmer Jul 22, 2026
ca7a991
let each test return a json object
daantimmer Jul 23, 2026
fcb6d2b
Added findAllTestRunHookStarted, findAllTestStepFinished, findAllTest…
daantimmer Aug 6, 2026
14572b5
removed obsolete tests
daantimmer Aug 6, 2026
606501b
Added findHookBy
daantimmer Aug 6, 2026
2b84c50
add FindLineageBy
daantimmer Aug 7, 2026
9ff311b
Added FindLocationOf
daantimmer Aug 7, 2026
7718294
Added FindMeta
daantimmer Aug 7, 2026
a6a5c0e
Added FindMostSevereTestStepResultBy
daantimmer Aug 7, 2026
78f5465
Added FindPickleBy, FindPickleStepBy, FindStepBy, FindStepDefinitionsBy
daantimmer Aug 7, 2026
cf23d8c
Added FindSuggestionsBy
daantimmer Aug 7, 2026
d007cb8
Added FindTestCaseBy, FindTestCaseDurationBy, FindTestCaseFinishedBy,…
daantimmer Aug 7, 2026
98852ab
Added FindTestRunDuration, FindTestRunFinished, FindTestRunHookFinish…
daantimmer Aug 7, 2026
2ad670b
Added FindTestStepBy, FindTestStepFinishedAndTestStepBy
daantimmer Aug 7, 2026
c2baac5
Merge remote-tracking branch 'origin/main' into feature/cpp
daantimmer Aug 7, 2026
6ffde7e
Added FindTestStepsFinishedBy
daantimmer Aug 7, 2026
6c40e4d
Added FindTestStepsStartedBy, FindUnambiguousStepDefinitionBy
daantimmer Aug 7, 2026
d0b3fa5
convert ot use trailing return types
daantimmer Aug 7, 2026
dda5e91
refactor TestQuery to use google test's parameterized tests
daantimmer Aug 7, 2026
43b1afc
add clang tidy preset
daantimmer Aug 7, 2026
85b7d9c
Removed variants from Query
daantimmer Aug 7, 2026
e0efad9
add gcovr feature to devcontainer configuration
daantimmer Aug 7, 2026
2b3ca35
add coverage vscode settings to devcontainer
daantimmer Aug 7, 2026
22f0564
replace throws will nullopt returnsd
daantimmer Aug 7, 2026
ccadca2
fix clang-tidy warnings
daantimmer Aug 7, 2026
2a223c7
add coverage preset/target
daantimmer Aug 7, 2026
eed51e5
add sanitizers
daantimmer Aug 8, 2026
56c79ab
update version file
daantimmer Aug 8, 2026
e24298d
add CI
daantimmer Aug 8, 2026
3ccc02d
add Python setup and gcovr installation to CI workflow
daantimmer Aug 8, 2026
2fb4307
updated messages dependency to remove designated initializers
daantimmer Aug 8, 2026
b684c6a
remove pip cache from Python setup in CI workflow
daantimmer Aug 8, 2026
f64fbca
add command to check gcovr version in lcov report generation
daantimmer Aug 8, 2026
ffab826
update gcovr version to 8.6 in CI workflow
daantimmer Aug 8, 2026
cedd4a4
update gtest discovery mode to PRE_TEST for cucumber_query_lib.test
daantimmer Aug 8, 2026
ea28f1d
enable test discovery for cucumber_query_lib.test and remove GoogleTe…
daantimmer Aug 8, 2026
8ed8d3e
add support for undefined behavior sanitizer on Apple platforms
daantimmer Aug 8, 2026
6957456
refine sanitizer options for Apple platforms and restrict to GNU comp…
daantimmer Aug 8, 2026
286f593
remove redundant test registration and ensure test discovery for cucu…
daantimmer Aug 8, 2026
407149e
Merge remote-tracking branch 'origin/main' into feature/cpp
daantimmer Aug 9, 2026
0c55515
Add a check to ensure an error is reported when tests are added to te…
daantimmer Aug 9, 2026
a47b6dd
add install support
daantimmer Aug 9, 2026
66c2be5
Replaced std pair with aggregate type
daantimmer Aug 9, 2026
d470362
fix post run coverage target
daantimmer Aug 9, 2026
814f6fa
Merge remote-tracking branch 'origin/main' into feature/cpp
daantimmer Aug 10, 2026
0ef13ca
update changelog
daantimmer Aug 10, 2026
765a057
fix for uibuntu 24
daantimmer Aug 10, 2026
1900844
Update CONTRIBUTING.md
daantimmer Aug 12, 2026
7749664
Refactor CMake configuration and integrate Conan for dependency manag…
daantimmer Aug 20, 2026
bf7aba2
Add ToJson utility function for optional values and update JSON seria…
daantimmer Aug 21, 2026
75e149c
Update CMake configuration and ignore compile_commands.json
daantimmer Aug 21, 2026
528e225
Update CMakePresets.json to set build type to Debug for host-system a…
daantimmer Aug 21, 2026
2d43235
Update MESSAGES_REF in workflow files to match the latest dependency …
daantimmer Aug 21, 2026
ee1f3e6
fix private include directory
daantimmer Aug 22, 2026
0c19142
Remove clangd and supporting code
daantimmer Aug 22, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
82 changes: 82 additions & 0 deletions .devcontainer/cpp/devcontainer-lock.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
{
"features": {
"ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential@sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8",
"integrity": "sha256:e396b09fdd04aef5ca8d35b9957547142761575575513d12fd8dc3c98c1728f8"
},
"ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/ccache.dev@sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061",
"integrity": "sha256:7288d603484d8c40c7d1c3b2c09ef7599fe50a9fcd8d5cf5f6118311e328f061"
},
"ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-format@sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e",
"integrity": "sha256:fd4a701f3d067e74caa5e8e229eaf13e45e85385dcac5ad81401c4e7678b735e"
},
"ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/clang-tidy@sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5",
"integrity": "sha256:e120a41ca26d1638ffd5407a1c27cd75ee1b79c9bce1b7f17ede2fa20bc6d5b5"
},
"ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/cmake.org@sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e",
"integrity": "sha256:3f498a612eb69d006535cbe49bc7344108a7106e116cc85123d5e7bfcbe79a6e"
},
"ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": {
"version": "1.0.3",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp@sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325",
"integrity": "sha256:f9c47d6a760dd17d54a96ba35958c40afea09d7b9b9975b2f44803469045c325",
"dependsOn": [
"ghcr.io/devcontainer-community/devcontainer-features/cmake.org:latest",
"ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest",
"ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest",
"ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest",
"ghcr.io/devcontainer-community/devcontainer-features/ccache.dev:latest",
"ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest",
"ghcr.io/devcontainer-community/devcontainer-features/clang-format:latest",
"ghcr.io/devcontainer-community/devcontainer-features/clang-tidy:latest",
"ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest",
"ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest",
"ghcr.io/devcontainer-community/devcontainer-features/apt-build-essential:latest"
]
},
"ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/danmar-cppcheck@sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56",
"integrity": "sha256:7b1fa136d884d4f90b3696b20713753e5d5d2507c7b589a9adc37f784d2bdc56"
},
"ghcr.io/devcontainer-community/devcontainer-features/distcc.org:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/distcc.org@sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391",
"integrity": "sha256:7a1c3a4c76cd4200ae2773268eee9372c620f05806faa3c7b8bb487c57ffe391"
},
"ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/ninja-build.org@sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac",
"integrity": "sha256:9df3174efc44643c61204fb1b1c0579a091f433246b581d88c7419f6cd4de3ac"
},
"ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/sourceware.org-gdb@sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528",
"integrity": "sha256:c6db6642afafecd431b655dad060e3b3998a46884473cb2a21bf867d4bd30528"
},
"ghcr.io/devcontainer-community/devcontainer-features/valgrind.org:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/valgrind.org@sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba",
"integrity": "sha256:0422a1ed5cdd2e1b997be8c5f67f729d94f9f1b51ad6144b3e9c0346a7347bba"
},
"ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io:latest": {
"version": "1.0.2",
"resolved": "ghcr.io/devcontainer-community/devcontainer-features/vcpkg.io@sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae",
"integrity": "sha256:aa1c839509ab397336da9c187c89b16e5cb85666f1c8756a2919f401ed3b44ae"
},
"ghcr.io/devcontainers-extra/features/gcovr:1": {
"version": "1.0.0",
"resolved": "ghcr.io/devcontainers-extra/features/gcovr@sha256:2aa70bfc2b1d5a62333ec52a58f3c087135b82f8ada3d420f9ba52d8620123f3",
"integrity": "sha256:2aa70bfc2b1d5a62333ec52a58f3c087135b82f8ada3d420f9ba52d8620123f3"
}
}
}
35 changes: 35 additions & 0 deletions .devcontainer/cpp/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
{
"name": "cpp",
"image": "mcr.microsoft.com/devcontainers/base:resolute",
"features": {
"ghcr.io/devcontainer-community/devcontainer-features/collection-c-cpp:1": {},
"ghcr.io/devcontainers-extra/features/gcovr:1": {}
},
"customizations": {
"vscode": {
"settings": {
"clangd.arguments": [
"--compile-commands-dir=${userHome}/.cpp"
],
"cmake.copyCompileCommands": "${userHome}/.cpp/compile_commands.json",
"cmake.sourceDirectory": "${workspaceFolder}/cpp",
"cmake.useCMakePresets": "auto",
"cmake.postRunCoverageTarget": "generate-lcov-report",
"cmake.coverageInfoFiles": [
"${workspaceFolder}/cpp/build/coverage/lcov.info"
]
},
"extensions": [
"llvm-vs-code-extensions.vscode-clangd",
"ms-vscode.cmake-tools",
"ms-vscode.cpptools"
]
}
},
"remoteEnv": {
"CPM_SOURCE_CACHE": "~/cache/.cpm",
"DEBUGINFOD_URLS": ""
}
}
22 changes: 22 additions & 0 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
// README at: https://github.com/devcontainers/templates/tree/main/src/alpine
{
"name": "Alpine",
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
"image": "mcr.microsoft.com/devcontainers/base:alpine-3.22"

// Features to add to the dev container. More info: https://containers.dev/features.
// "features": {},

// Use 'forwardPorts' to make a list of ports inside the container available locally.
// "forwardPorts": [],

// Use 'postCreateCommand' to run commands after the container is created.
// "postCreateCommand": "uname -a",

// Configure tool-specific properties.
// "customizations": {},

// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
// "remoteUser": "root"
}
82 changes: 82 additions & 0 deletions .github/workflows/codeql-cpp.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
name: codeql-cpp

permissions: {}

on:
push:
branches:
- main
paths:
- cpp/**
- testdata/**
- .github/**
pull_request:
branches:
- main
paths:
- cpp/**
- testdata/**
- .github/**
schedule:
- cron: '48 5 * * 0'

concurrency:
# Cancels in-progress runs only for pull requests
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze C++
runs-on: ubuntu-latest
permissions:
security-events: write
env:
# Git ref (tag, branch, or SHA) of the cucumber_messages dependency to
# build against. Must match the version required in cpp/CMakeLists.txt and
# cpp/conanfile.py, or the messages branch under test.
MESSAGES_REF: 8cd6cacecd0a657095c93b069c850f51009e0499
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: ccache
uses: hendrikmuhs/ccache-action@d62db5f07c26379fc4b4e0916f098a92573c3b03 # v1.2.23
with:
key: ${{ github.job }}-${{ github.ref }}
append-timestamp: false
save: ${{ github.ref == 'refs/heads/main' }}

- name: Checkout cucumber/messages
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
repository: cucumber/messages
ref: ${{ env.MESSAGES_REF }}
path: messages-src
persist-credentials: false

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y ccache nlohmann-json3-dev

- name: Build and install cucumber_messages
working-directory: messages-src/cpp
run: |
cmake --workflow --preset host-system
sudo cmake --install build/host-system

- uses: github/codeql-action/init@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
languages: c-cpp
build-mode: manual
tools: linked

- name: Configure
working-directory: cpp
run: cmake --workflow --preset host-system

- uses: github/codeql-action/analyze@5595ccaf912efad79be6eef63a5619ff05969be3 # v4.37.6
with:
category: "/language:cpp"
Loading
Loading