From 1ed8245f623a9453b4d991169d4cd0ae559ea371 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 10:21:40 +0200 Subject: [PATCH 01/24] .github/workflows/ci: Add building natively on Windows and MacOS --- .github/workflows/ci.yml | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 76a30c7..1919eb2 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -97,3 +97,31 @@ jobs: if: always() with: files: test-report.xml + + host_build_test: + name: Host Build & Test + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [macos-latest, windows-latest, windows-2019] + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + persist-credentials: false + - uses: hendrikmuhs/ccache-action@c92f40bee50034e84c763e33b317c77adaa81c92 # v1.2.13 + with: + key: ${{ github.job }}-${{ matrix.os }} + max-size: 2G + variant: sccache + - uses: lukka/run-cmake@2ce8982be71b8e9a3c4d5e432135035afd1e76a7 # v10.7 + with: + configurePreset: "host" + buildPreset: "host-Debug" + testPreset: "host-Debug" + configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=sccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=sccache']" + - name: Upload test logs + if: ${{ failure() }} + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + with: + name: test-logs + path: build/host/Testing/Temporary/ From 32a82a13a6f6463f793d9cca2a09310f596c9c10 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 10:33:04 +0200 Subject: [PATCH 02/24] .github/workflows/ci: fix casing --- .github/workflows/ci.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1919eb2..58edecf 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,13 +115,13 @@ jobs: variant: sccache - uses: lukka/run-cmake@2ce8982be71b8e9a3c4d5e432135035afd1e76a7 # v10.7 with: - configurePreset: "host" - buildPreset: "host-Debug" - testPreset: "host-Debug" + configurePreset: "Host" + buildPreset: "Host-Debug" + testPreset: "Host-Debug" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=sccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=sccache']" - name: Upload test logs if: ${{ failure() }} uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 with: name: test-logs - path: build/host/Testing/Temporary/ + path: build/Host/Testing/Temporary/ From 4d09369ae1e007f8f0d1b53f9a51715fa2c5d0ea Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 10:41:19 +0200 Subject: [PATCH 03/24] Use host-single-Debug which specifies no generator for non-Unix native builds --- .github/workflows/ci.yml | 8 ++++---- CMakePresets.json | 31 ++++++++++++++++++++++++++----- 2 files changed, 30 insertions(+), 9 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 58edecf..d6eb59e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -115,13 +115,13 @@ jobs: variant: sccache - uses: lukka/run-cmake@2ce8982be71b8e9a3c4d5e432135035afd1e76a7 # v10.7 with: - configurePreset: "Host" - buildPreset: "Host-Debug" - testPreset: "Host-Debug" + configurePreset: "host-single-Debug" + buildPreset: "host-single-Debug" + testPreset: "host-single-Debug" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=sccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=sccache']" - name: Upload test logs if: ${{ failure() }} uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 with: name: test-logs - path: build/Host/Testing/Temporary/ + path: build/host-single-Dbebug/Testing/Temporary/ diff --git a/CMakePresets.json b/CMakePresets.json index 26316b1..283dfb7 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -16,19 +16,28 @@ "CMAKE_C_COMPILER_LAUNCHER": "ccache", "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", "CMAKE_CONFIGURATION_TYPES": "Debug;Release" - }, - "generator": "Ninja Multi-Config" + } }, { "name": "Host", - "inherits": "defaults" + "inherits": "defaults", + "generator": "Ninja Multi-Config" + }, + { + "name": "host-single-Debug", + "displayName": "Configuration for Host Tooling and Tests, Single Config Generator, Debug", + "inherits": "defaults", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } }, { "name": "Host-Iwyu", "inherits": "defaults", "cacheVariables": { "CMAKE_CXX_INCLUDE_WHAT_YOU_USE": "include-what-you-use;-Wno-unknown-warning-option;-Xiwyu;--no_comments;-Xiwyu;--cxx17ns;-Xiwyu;--no_fwd_decls" - } + }, + "generator": "Ninja Multi-Config" }, { "name": "Windows", @@ -37,7 +46,8 @@ "environment": { "CCACHE_DEPEND": "true", "CCACHE_COMPILERTYPE": "clang-cl" - } + }, + "generator": "Ninja Multi-Config" } ], "buildPresets": [ @@ -56,6 +66,11 @@ "configuration": "Debug", "configurePreset": "Host-Iwyu" }, + { + "name": "host-single-Debug", + "configuration": "Debug", + "configurePreset": "host-single-Debug" + }, { "name": "Windows-Release", "configuration": "Release", @@ -90,6 +105,12 @@ "configurePreset": "Host", "configuration": "Release", "inherits": "defaults" + }, + { + "name": "host-single-Debug", + "configurePreset": "host-single-Debug", + "configuration": "Debug", + "inherits": "defaults" } ] } From c4075f7f9d15db83f37b4ac3e03ba4b48ae4600d Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 11:09:45 +0200 Subject: [PATCH 04/24] cucumber-cpp/StepRegistry: Fix compilation for MacOS --- cucumber-cpp/StepRegistry.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cucumber-cpp/StepRegistry.hpp b/cucumber-cpp/StepRegistry.hpp index 07190e1..7641188 100644 --- a/cucumber-cpp/StepRegistry.hpp +++ b/cucumber-cpp/StepRegistry.hpp @@ -28,6 +28,10 @@ namespace cucumber_cpp template T As(std::source_location sourceLocation = std::source_location::current()) const; + explicit TableValue(const std::string& value) + : value(value) + {} + std::string value; }; From 8f89c2769c1ec9f3f48d005a46344abebc6313e6 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 11:10:06 +0200 Subject: [PATCH 05/24] Move ccache compiler selection to workflows/ci --- .github/workflows/ci.yml | 17 ++++++++++++----- CMakePresets.json | 2 -- 2 files changed, 12 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6eb59e..c5eb8a0 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -38,9 +38,11 @@ jobs: with: key: ${{ github.job }} max-size: 2G - - run: | - cmake --preset=Windows - cmake --build --preset=Windows-Release + - uses: lukka/run-cmake@2ce8982be71b8e9a3c4d5e432135035afd1e76a7 # v10.7 + with: + configurePreset: "Windows" + buildPreset: "Windows-Release" + configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" build-linux: name: Linux Host Build @@ -57,6 +59,7 @@ jobs: configurePreset: "Host" buildPreset: "Host-Release" testPreset: "Host-Release" + configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" build-linux-devcontainer: name: Linux Host Build in Devcontainer @@ -73,6 +76,7 @@ jobs: configurePreset: "Host" buildPreset: "Host-Release" testPreset: "Host-Release" + configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" test-linux: name: Linux Host Test @@ -89,9 +93,12 @@ jobs: with: key: ${{ github.job }} max-size: 2G + - uses: lukka/run-cmake@af1be47fd7c933593f687731bc6fdbee024d3ff4 # v10.8 + with: + configurePreset: "Host" + buildPreset: "Host-Debug" + configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" - run: | - cmake --preset=Host - cmake --build --preset=Host-Debug bats --formatter junit test/test.bats | tee test-report.xml - uses: EnricoMi/publish-unit-test-result-action@82082dac68ad6a19d980f8ce817e108b9f496c2a # v2.17.1 if: always() diff --git a/CMakePresets.json b/CMakePresets.json index 283dfb7..c491bfe 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -13,8 +13,6 @@ "installDir": "${sourceDir}/.install/${presetName}", "cacheVariables": { "CMAKE_EXPORT_COMPILE_COMMANDS": "On", - "CMAKE_C_COMPILER_LAUNCHER": "ccache", - "CMAKE_CXX_COMPILER_LAUNCHER": "ccache", "CMAKE_CONFIGURATION_TYPES": "Debug;Release" } }, From 69bfc8f7fa8272d078f35e7722f6a22731ac0e5b Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 11:47:43 +0200 Subject: [PATCH 06/24] cucumber-cpp/StepRegistry and HookRegistry: Fix compilation for MacOS --- cucumber-cpp/HookRegistry.hpp | 12 ++++++++++++ cucumber-cpp/StepRegistry.hpp | 17 +++++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/cucumber-cpp/HookRegistry.hpp b/cucumber-cpp/HookRegistry.hpp index 82a7c6b..051556f 100644 --- a/cucumber-cpp/HookRegistry.hpp +++ b/cucumber-cpp/HookRegistry.hpp @@ -67,6 +67,12 @@ namespace cucumber_cpp struct HookMatch { + HookMatch(std::unique_ptr tagExpressionMatch, std::unique_ptr (&factory)(Context& context), const HookTagExpression& hookRegex) + : tagExpressionMatch(std::move(tagExpressionMatch)) + , factory(factory) + , hookRegex(hookRegex) + {} + std::unique_ptr tagExpressionMatch; std::unique_ptr (&factory)(Context& context); const HookTagExpression& hookRegex; @@ -76,6 +82,12 @@ namespace cucumber_cpp { struct Entry { + Entry(HookType type, HookTagExpression hookTagExpression, std::unique_ptr (&factory)(Context& context)) + : type(type) + , hookTagExpression(hookTagExpression) + , factory(factory) + {} + HookType type; HookTagExpression hookTagExpression; std::unique_ptr (&factory)(Context& context); diff --git a/cucumber-cpp/StepRegistry.hpp b/cucumber-cpp/StepRegistry.hpp index 7641188..61c6a04 100644 --- a/cucumber-cpp/StepRegistry.hpp +++ b/cucumber-cpp/StepRegistry.hpp @@ -105,6 +105,12 @@ namespace cucumber_cpp struct StepMatch { + StepMatch(std::unique_ptr (&factory)(Context& context, const Table& table), std::vector matches, std::string stepRegexStr) + : factory(factory) + , matches(matches) + , stepRegexStr(stepRegexStr) + {} + std::unique_ptr (&factory)(Context& context, const Table& table); std::vector matches{}; std::string stepRegexStr{}; @@ -128,6 +134,12 @@ namespace cucumber_cpp struct Entry { + Entry(StepType type, StepRegex regex, std::unique_ptr (&factory)(Context& context, const Table& table)) + : type(type) + , regex(regex) + , factory(factory) + {} + StepType type{}; StepRegex regex; std::unique_ptr (&factory)(Context& context, const Table& table); @@ -137,6 +149,11 @@ namespace cucumber_cpp struct EntryView { + EntryView(const StepRegex& stepRegex, const std::uint32_t& used) + : stepRegex(stepRegex) + , used(used) + {} + const StepRegex& stepRegex; const std::uint32_t& used; }; From e826d3d8c13ac815c6a37f31b2117c05b3d53560 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 11:53:04 +0200 Subject: [PATCH 07/24] cucumber-cpp-example/fixtures/Fixture: Fix compilation for MacOS --- cucumber-cpp-example/fixtures/Fixture.hpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/cucumber-cpp-example/fixtures/Fixture.hpp b/cucumber-cpp-example/fixtures/Fixture.hpp index 2673add..298baa5 100644 --- a/cucumber-cpp-example/fixtures/Fixture.hpp +++ b/cucumber-cpp-example/fixtures/Fixture.hpp @@ -8,6 +8,10 @@ struct NordicBleFixture struct StBleFixture { + StBleFixture(std::string_view coms) + : coms(coms) + {} + std::string_view coms; }; From da6c02a174d3d605bdbd64e88aaf6e6167593b31 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sat, 28 Sep 2024 13:20:10 +0200 Subject: [PATCH 08/24] Update .github/workflows/ci.yml --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c5eb8a0..93f877a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -110,7 +110,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [macos-latest, windows-latest, windows-2019] + os: [macos-latest, windows-latest] steps: - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 with: From 573ae65f828f329ddd08f68059c07fb8ba848eb4 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 07:41:51 +0200 Subject: [PATCH 09/24] Add linting --- .github/linters/.prettierrc.json | 3 ++ .github/linters/goodcheck.yml | 43 ++++++++++++++++++++++ .github/workflows/ci.yml | 12 ++++++ .github/workflows/linting-formatting.yml | 47 ++++++++++++++++++++++++ .ls-lint.yml | 12 ++++++ .mega-linter.yml | 29 +++++++++++++++ .trivyignore | 3 ++ 7 files changed, 149 insertions(+) create mode 100644 .github/linters/.prettierrc.json create mode 100644 .github/linters/goodcheck.yml create mode 100644 .github/workflows/linting-formatting.yml create mode 100644 .ls-lint.yml create mode 100644 .mega-linter.yml create mode 100644 .trivyignore diff --git a/.github/linters/.prettierrc.json b/.github/linters/.prettierrc.json new file mode 100644 index 0000000..36b3563 --- /dev/null +++ b/.github/linters/.prettierrc.json @@ -0,0 +1,3 @@ +{ + "trailingComma": "none" +} diff --git a/.github/linters/goodcheck.yml b/.github/linters/goodcheck.yml new file mode 100644 index 0000000..fe9899b --- /dev/null +++ b/.github/linters/goodcheck.yml @@ -0,0 +1,43 @@ +--- +rules: + - id: amp.suppressions.sonar + pattern: ///\s*NOSONAR/ + glob: "**/*.[c|h]pp" + severity: info + message: | + Try to minimize the use of static-analysis suppressions + + - id: amp.suppressions.compiler-warning + pattern: + - /#pragma.*diagnostic ignored.*/ + - /#pragma warning(\s*disable.*)/ + glob: "**/*.[c|h]pp" + severity: info + message: | + Try to minimize the use of warning suppressions + + - id: amp.no-pragma-once + pattern: /#pragma\s*once/ + glob: "**/*.hpp" + severity: error + message: | + Do not use #pragma once + fail: | + #pragma once + pass: | + #ifndef NAMESPACE_COMPONENT_HPP + #define NAMESPACE_COMPONENT_HPP + + - id: amp.no-global-tracer + pattern: /services::GlobalTracer().Trace().*/ + glob: "**/*.[c|h]pp" + severity: error + message: | + Do not use services::GlobalTracer() in production code + Write a tracing decorator class instead + +exclude: + - .build + - .install + +exclude_binary: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 93f877a..5801d72 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -60,6 +60,12 @@ jobs: buildPreset: "Host-Release" testPreset: "Host-Release" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" + - name: Upload test logs + if: ${{ failure() }} + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + with: + name: test-logs + path: build/Host/Testing/Temporary/ build-linux-devcontainer: name: Linux Host Build in Devcontainer @@ -77,6 +83,12 @@ jobs: buildPreset: "Host-Release" testPreset: "Host-Release" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" + - name: Upload test logs + if: ${{ failure() }} + uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + with: + name: test-logs + path: build/Host/Testing/Temporary/ test-linux: name: Linux Host Test diff --git a/.github/workflows/linting-formatting.yml b/.github/workflows/linting-formatting.yml new file mode 100644 index 0000000..32b7e9c --- /dev/null +++ b/.github/workflows/linting-formatting.yml @@ -0,0 +1,47 @@ +--- +name: Linting & Formatting + +on: + pull_request: + types: [opened, synchronize, reopened] + merge_group: + +permissions: + contents: read + +concurrency: + group: ${{ github.ref }}-${{ github.workflow }} + cancel-in-progress: true + +jobs: + linter: + name: Linting + runs-on: ubuntu-latest + permissions: + contents: read + pull-requests: write + security-events: write + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + fetch-depth: 0 + persist-credentials: false + - uses: oxsecurity/megalinter/flavors/c_cpp@bacb5f8674e3730b904ca4d20c8bd477bc51b1a7 # v7.13.0 + env: + APPLY_FIXES: all + VALIDATE_ALL_CODEBASE: true + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - run: git diff + - uses: github/codeql-action/upload-sarif@4fa2a7953630fd2f3fb380f21be14ede0169dd4f # v3.25.12 + if: ${{ success() || failure() }} + with: + sarif_file: megalinter-reports/megalinter-report.sarif + - uses: actions/upload-artifact@0b2256b8c012f0828dc542b3febcab082c67f72b # v4.3.4 + if: ${{ success() || failure() }} + with: + name: linter + path: | + megalinter-reports + - uses: reviewdog/action-suggester@63b8f8cc21dfa052ac44436e65ed31edcffcb6c1 # v1.17.0 + with: + tool_name: MegaLinter diff --git a/.ls-lint.yml b/.ls-lint.yml new file mode 100644 index 0000000..9772262 --- /dev/null +++ b/.ls-lint.yml @@ -0,0 +1,12 @@ +ls: + .dir: snake_case | kebab-case + .hpp: PascalCase + .cpp: PascalCase + +ignore: + - .devcontainer + - .git + - .github + - .vscode + - extern + - megalinter-reports diff --git a/.mega-linter.yml b/.mega-linter.yml new file mode 100644 index 0000000..3f15d11 --- /dev/null +++ b/.mega-linter.yml @@ -0,0 +1,29 @@ +ENABLE: + - ACTION + - CPP + - DOCKERFILE + - JSON + - MARKDOWN + - REPOSITORY + - SPELL + - XML + - YAML +DISABLE_LINTERS: + - CPP_CPPLINT + - REPOSITORY_DEVSKIM + - REPOSITORY_GITLEAKS + - REPOSITORY_KICS + - REPOSITORY_SEMGREP + - SPELL_CSPELL + - JSON_V8R +DISABLE_ERRORS_LINTERS: + - MARKDOWN_MARKDOWN_LINK_CHECK + - SPELL_PROSELINT + - SPELL_LYCHEE +CPP_CLANG_FORMAT_FILTER_REGEX_EXCLUDE: (external) +SPELL_PROSELINT_FILE_EXTENSIONS: [".md", ".adoc"] +SARIF_REPORTER: true +PRINT_ALPACA: false +SHOW_SKIPPED_LINTERS: false +REPOSITORY_GOODCHECK_RULES_PATH: .github/linters +JSON_JSONLINT_ARGUMENTS: --mode cjson diff --git a/.trivyignore b/.trivyignore new file mode 100644 index 0000000..4d0c37f --- /dev/null +++ b/.trivyignore @@ -0,0 +1,3 @@ +# See: https://avd.aquasec.com/misconfig/dockerfile/general/avd-ds-0002/ +# We allow root access in our container that we use for development purposes +DS002 From dffa0404b50a85db84fda858a5e53ecbc4047c18 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 07:50:10 +0200 Subject: [PATCH 10/24] Resolve linting issues --- cucumber-cpp-example/CMakeLists.txt | 2 +- cucumber-cpp-example/{main.cpp => Main.cpp} | 0 cucumber-cpp-example/fixtures/Fixture.hpp | 2 +- cucumber-cpp-example/hooks/CMakeLists.txt | 2 +- cucumber-cpp-example/hooks/{hooks.cpp => Hooks.cpp} | 0 cucumber-cpp-example/steps/CMakeLists.txt | 2 +- cucumber-cpp-example/steps/{steps.cpp => Steps.cpp} | 0 cucumber-cpp-runner/CMakeLists.txt | 2 +- cucumber-cpp-runner/{main.cpp => Main.cpp} | 0 cucumber-cpp/HookRegistry.hpp | 2 +- cucumber-cpp/StepRegistry.hpp | 4 ++-- test/CMakeLists.txt | 4 ++-- test/{main.cpp => Main.cpp} | 0 test/{main-custom.cpp => MainCustom.cpp} | 0 test/hooks/CMakeLists.txt | 2 +- test/hooks/{hooks.cpp => Hooks.cpp} | 0 test/steps/CMakeLists.txt | 2 +- test/steps/{steps.cpp => Steps.cpp} | 0 18 files changed, 12 insertions(+), 12 deletions(-) rename cucumber-cpp-example/{main.cpp => Main.cpp} (100%) rename cucumber-cpp-example/hooks/{hooks.cpp => Hooks.cpp} (100%) rename cucumber-cpp-example/steps/{steps.cpp => Steps.cpp} (100%) rename cucumber-cpp-runner/{main.cpp => Main.cpp} (100%) rename test/{main.cpp => Main.cpp} (100%) rename test/{main-custom.cpp => MainCustom.cpp} (100%) rename test/hooks/{hooks.cpp => Hooks.cpp} (100%) rename test/steps/{steps.cpp => Steps.cpp} (100%) diff --git a/cucumber-cpp-example/CMakeLists.txt b/cucumber-cpp-example/CMakeLists.txt index 93332a4..f9ec570 100644 --- a/cucumber-cpp-example/CMakeLists.txt +++ b/cucumber-cpp-example/CMakeLists.txt @@ -4,7 +4,7 @@ add_executable(cucumber-cpp-example ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-example PRIVATE fixtures/Fixture.hpp - main.cpp + Main.cpp ) target_link_libraries(cucumber-cpp-example PRIVATE diff --git a/cucumber-cpp-example/main.cpp b/cucumber-cpp-example/Main.cpp similarity index 100% rename from cucumber-cpp-example/main.cpp rename to cucumber-cpp-example/Main.cpp diff --git a/cucumber-cpp-example/fixtures/Fixture.hpp b/cucumber-cpp-example/fixtures/Fixture.hpp index 298baa5..124449d 100644 --- a/cucumber-cpp-example/fixtures/Fixture.hpp +++ b/cucumber-cpp-example/fixtures/Fixture.hpp @@ -8,7 +8,7 @@ struct NordicBleFixture struct StBleFixture { - StBleFixture(std::string_view coms) + explicit StBleFixture(std::string_view coms) : coms(coms) {} diff --git a/cucumber-cpp-example/hooks/CMakeLists.txt b/cucumber-cpp-example/hooks/CMakeLists.txt index 35be0ea..c0058f9 100644 --- a/cucumber-cpp-example/hooks/CMakeLists.txt +++ b/cucumber-cpp-example/hooks/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On) add_library(cucumber-cpp-example.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-example.hooks PRIVATE - hooks.cpp + Hooks.cpp TestHooks.cpp ) diff --git a/cucumber-cpp-example/hooks/hooks.cpp b/cucumber-cpp-example/hooks/Hooks.cpp similarity index 100% rename from cucumber-cpp-example/hooks/hooks.cpp rename to cucumber-cpp-example/hooks/Hooks.cpp diff --git a/cucumber-cpp-example/steps/CMakeLists.txt b/cucumber-cpp-example/steps/CMakeLists.txt index 4674254..a0c9111 100644 --- a/cucumber-cpp-example/steps/CMakeLists.txt +++ b/cucumber-cpp-example/steps/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On) add_library(cucumber-cpp-example.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-example.steps PRIVATE - steps.cpp + Steps.cpp ) target_link_libraries(cucumber-cpp-example.steps PRIVATE diff --git a/cucumber-cpp-example/steps/steps.cpp b/cucumber-cpp-example/steps/Steps.cpp similarity index 100% rename from cucumber-cpp-example/steps/steps.cpp rename to cucumber-cpp-example/steps/Steps.cpp diff --git a/cucumber-cpp-runner/CMakeLists.txt b/cucumber-cpp-runner/CMakeLists.txt index 87a7cc5..bb0ad25 100644 --- a/cucumber-cpp-runner/CMakeLists.txt +++ b/cucumber-cpp-runner/CMakeLists.txt @@ -2,7 +2,7 @@ add_library(cucumber-cpp-runner ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-runner PRIVATE - main.cpp + Main.cpp ) target_link_libraries(cucumber-cpp-runner PUBLIC diff --git a/cucumber-cpp-runner/main.cpp b/cucumber-cpp-runner/Main.cpp similarity index 100% rename from cucumber-cpp-runner/main.cpp rename to cucumber-cpp-runner/Main.cpp diff --git a/cucumber-cpp/HookRegistry.hpp b/cucumber-cpp/HookRegistry.hpp index 051556f..d4714ff 100644 --- a/cucumber-cpp/HookRegistry.hpp +++ b/cucumber-cpp/HookRegistry.hpp @@ -82,7 +82,7 @@ namespace cucumber_cpp { struct Entry { - Entry(HookType type, HookTagExpression hookTagExpression, std::unique_ptr (&factory)(Context& context)) + Entry(HookType type, const HookTagExpression& hookTagExpression, std::unique_ptr (&factory)(Context& context)) : type(type) , hookTagExpression(hookTagExpression) , factory(factory) diff --git a/cucumber-cpp/StepRegistry.hpp b/cucumber-cpp/StepRegistry.hpp index 61c6a04..0508b68 100644 --- a/cucumber-cpp/StepRegistry.hpp +++ b/cucumber-cpp/StepRegistry.hpp @@ -105,7 +105,7 @@ namespace cucumber_cpp struct StepMatch { - StepMatch(std::unique_ptr (&factory)(Context& context, const Table& table), std::vector matches, std::string stepRegexStr) + StepMatch(std::unique_ptr (&factory)(Context& context, const Table& table), const std::vector& matches, const std::string& stepRegexStr) : factory(factory) , matches(matches) , stepRegexStr(stepRegexStr) @@ -134,7 +134,7 @@ namespace cucumber_cpp struct Entry { - Entry(StepType type, StepRegex regex, std::unique_ptr (&factory)(Context& context, const Table& table)) + Entry(StepType type, const StepRegex& regex, std::unique_ptr (&factory)(Context& context, const Table& table)) : type(type) , regex(regex) , factory(factory) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index c586cbf..66fe84e 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On) add_executable(cucumber-cpp-test ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-test PRIVATE - main.cpp + Main.cpp ) target_link_libraries(cucumber-cpp-test PRIVATE cucumber-cpp @@ -14,7 +14,7 @@ target_link_libraries(cucumber-cpp-test PRIVATE add_executable(cucumber-cpp-test-custom ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-test-custom PRIVATE - main-custom.cpp + MainCustom.cpp ) target_link_libraries(cucumber-cpp-test-custom PRIVATE diff --git a/test/main.cpp b/test/Main.cpp similarity index 100% rename from test/main.cpp rename to test/Main.cpp diff --git a/test/main-custom.cpp b/test/MainCustom.cpp similarity index 100% rename from test/main-custom.cpp rename to test/MainCustom.cpp diff --git a/test/hooks/CMakeLists.txt b/test/hooks/CMakeLists.txt index 9e756b7..9fc74ec 100644 --- a/test/hooks/CMakeLists.txt +++ b/test/hooks/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On) add_library(cucumber-cpp-test.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-test.hooks PRIVATE - hooks.cpp + Hooks.cpp ) target_link_libraries(cucumber-cpp-test.hooks PRIVATE diff --git a/test/hooks/hooks.cpp b/test/hooks/Hooks.cpp similarity index 100% rename from test/hooks/hooks.cpp rename to test/hooks/Hooks.cpp diff --git a/test/steps/CMakeLists.txt b/test/steps/CMakeLists.txt index dfffb9a..e18133e 100644 --- a/test/steps/CMakeLists.txt +++ b/test/steps/CMakeLists.txt @@ -3,7 +3,7 @@ set(CMAKE_COMPILE_WARNING_AS_ERROR On) add_library(cucumber-cpp-test.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) target_sources(cucumber-cpp-test.steps PRIVATE - steps.cpp + Steps.cpp ) target_link_libraries(cucumber-cpp-test.steps PRIVATE diff --git a/test/steps/steps.cpp b/test/steps/Steps.cpp similarity index 100% rename from test/steps/steps.cpp rename to test/steps/Steps.cpp From 6518a0e2a94cc6ff8856fcce673130d0866cb279 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:02:48 +0200 Subject: [PATCH 11/24] Resolve linting issues --- .gitignore | 1 + README.md | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 921120f..7cf593e 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ .install .xwin-cache .vs/ +megalinter-reports/ diff --git a/README.md b/README.md index 16b9bbe..4cb19d0 100644 --- a/README.md +++ b/README.md @@ -40,4 +40,4 @@ Please refer to our [Contributing](CONTRIBUTING.md) guide when you want to contr ## License -amp-cucumber-cpp-runner is licensed under the [MIT](https://choosealicense.com/licenses/mit/) license. See [LICENSE file](License). +amp-cucumber-cpp-runner is licensed under the [MIT](https://choosealicense.com/licenses/mit/) license. See [LICENSE file](LICENSE). From 6ae5e60064877a2f68f60f6b525281ed6c69f6f2 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:06:07 +0200 Subject: [PATCH 12/24] Resolve linting issues --- CMakePresets.json | 222 +++++++++++++++++++++++----------------------- 1 file changed, 111 insertions(+), 111 deletions(-) diff --git a/CMakePresets.json b/CMakePresets.json index c491bfe..8dd7130 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -1,114 +1,114 @@ { - "version": 6, - "cmakeMinimumRequired": { - "major": 3, - "minor": 24, - "patch": 0 + "version": 6, + "cmakeMinimumRequired": { + "major": 3, + "minor": 24, + "patch": 0 + }, + "configurePresets": [ + { + "name": "defaults", + "hidden": true, + "binaryDir": "${sourceDir}/.build/${presetName}", + "installDir": "${sourceDir}/.install/${presetName}", + "cacheVariables": { + "CMAKE_EXPORT_COMPILE_COMMANDS": "On", + "CMAKE_CONFIGURATION_TYPES": "Debug;Release" + } }, - "configurePresets": [ - { - "name": "defaults", - "hidden": true, - "binaryDir": "${sourceDir}/.build/${presetName}", - "installDir": "${sourceDir}/.install/${presetName}", - "cacheVariables": { - "CMAKE_EXPORT_COMPILE_COMMANDS": "On", - "CMAKE_CONFIGURATION_TYPES": "Debug;Release" - } - }, - { - "name": "Host", - "inherits": "defaults", - "generator": "Ninja Multi-Config" - }, - { - "name": "host-single-Debug", - "displayName": "Configuration for Host Tooling and Tests, Single Config Generator, Debug", - "inherits": "defaults", - "cacheVariables": { - "CMAKE_BUILD_TYPE": "Debug" - } - }, - { - "name": "Host-Iwyu", - "inherits": "defaults", - "cacheVariables": { - "CMAKE_CXX_INCLUDE_WHAT_YOU_USE": "include-what-you-use;-Wno-unknown-warning-option;-Xiwyu;--no_comments;-Xiwyu;--cxx17ns;-Xiwyu;--no_fwd_decls" - }, - "generator": "Ninja Multi-Config" - }, - { - "name": "Windows", - "inherits": "defaults", - "toolchainFile": "${sourceDir}/cmake/toolchain-clang-x86_64-pc-windows-msvc.cmake", - "environment": { - "CCACHE_DEPEND": "true", - "CCACHE_COMPILERTYPE": "clang-cl" - }, - "generator": "Ninja Multi-Config" - } - ], - "buildPresets": [ - { - "name": "Host-Release", - "configuration": "Release", - "configurePreset": "Host" - }, - { - "name": "Host-Debug", - "configuration": "Debug", - "configurePreset": "Host" - }, - { - "name": "Host-Iwyu-Debug", - "configuration": "Debug", - "configurePreset": "Host-Iwyu" - }, - { - "name": "host-single-Debug", - "configuration": "Debug", - "configurePreset": "host-single-Debug" - }, - { - "name": "Windows-Release", - "configuration": "Release", - "configurePreset": "Windows" - }, - { - "name": "Windows-RelWithDebInfo", - "configuration": "RelWithDebInfo", - "configurePreset": "Windows" - } - ], - "testPresets": [ - { - "name": "defaults", - "hidden": true, - "output": { - "outputOnFailure": true - }, - "execution": { - "noTestsAction": "error", - "stopOnFailure": true - } - }, - { - "name": "Host-Debug", - "configurePreset": "Host", - "configuration": "Debug", - "inherits": "defaults" - }, - { - "name": "Host-Release", - "configurePreset": "Host", - "configuration": "Release", - "inherits": "defaults" - }, - { - "name": "host-single-Debug", - "configurePreset": "host-single-Debug", - "configuration": "Debug", - "inherits": "defaults" - } - ] + { + "name": "Host", + "inherits": "defaults", + "generator": "Ninja Multi-Config" + }, + { + "name": "host-single-Debug", + "displayName": "Configuration for Host Tooling and Tests, Single Config Generator, Debug", + "inherits": "defaults", + "cacheVariables": { + "CMAKE_BUILD_TYPE": "Debug" + } + }, + { + "name": "Host-Iwyu", + "inherits": "defaults", + "cacheVariables": { + "CMAKE_CXX_INCLUDE_WHAT_YOU_USE": "include-what-you-use;-Wno-unknown-warning-option;-Xiwyu;--no_comments;-Xiwyu;--cxx17ns;-Xiwyu;--no_fwd_decls" + }, + "generator": "Ninja Multi-Config" + }, + { + "name": "Windows", + "inherits": "defaults", + "toolchainFile": "${sourceDir}/cmake/toolchain-clang-x86_64-pc-windows-msvc.cmake", + "environment": { + "CCACHE_DEPEND": "true", + "CCACHE_COMPILERTYPE": "clang-cl" + }, + "generator": "Ninja Multi-Config" + } + ], + "buildPresets": [ + { + "name": "Host-Release", + "configuration": "Release", + "configurePreset": "Host" + }, + { + "name": "Host-Debug", + "configuration": "Debug", + "configurePreset": "Host" + }, + { + "name": "Host-Iwyu-Debug", + "configuration": "Debug", + "configurePreset": "Host-Iwyu" + }, + { + "name": "host-single-Debug", + "configuration": "Debug", + "configurePreset": "host-single-Debug" + }, + { + "name": "Windows-Release", + "configuration": "Release", + "configurePreset": "Windows" + }, + { + "name": "Windows-RelWithDebInfo", + "configuration": "RelWithDebInfo", + "configurePreset": "Windows" + } + ], + "testPresets": [ + { + "name": "defaults", + "hidden": true, + "output": { + "outputOnFailure": true + }, + "execution": { + "noTestsAction": "error", + "stopOnFailure": true + } + }, + { + "name": "Host-Debug", + "configurePreset": "Host", + "configuration": "Debug", + "inherits": "defaults" + }, + { + "name": "Host-Release", + "configurePreset": "Host", + "configuration": "Release", + "inherits": "defaults" + }, + { + "name": "host-single-Debug", + "configurePreset": "host-single-Debug", + "configuration": "Debug", + "inherits": "defaults" + } + ] } From 103bf2180eeded840b7b91e2f4718d14074e3016 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:15:56 +0200 Subject: [PATCH 13/24] Use snake_case instead of kebab-case for directories --- .ls-lint.yml | 2 +- CMakeLists.txt | 8 +++---- .../Application.cpp | 20 ++++++++--------- .../Application.hpp | 10 ++++----- {cucumber-cpp => cucumber_cpp}/Body.hpp | 2 +- {cucumber-cpp => cucumber_cpp}/BodyMacro.hpp | 2 +- {cucumber-cpp => cucumber_cpp}/CMakeLists.txt | 0 {cucumber-cpp => cucumber_cpp}/Context.hpp | 0 .../HookRegistry.cpp | 6 ++--- .../HookRegistry.hpp | 4 ++-- {cucumber-cpp => cucumber_cpp}/HookScopes.cpp | 6 ++--- {cucumber-cpp => cucumber_cpp}/HookScopes.hpp | 4 ++-- {cucumber-cpp => cucumber_cpp}/Hooks.hpp | 4 ++-- .../InternalError.hpp | 0 .../OnTestPartResultEventListener.cpp | 2 +- .../OnTestPartResultEventListener.hpp | 0 {cucumber-cpp => cucumber_cpp}/Rtrim.cpp | 2 +- {cucumber-cpp => cucumber_cpp}/Rtrim.hpp | 0 .../StepRegistry.cpp | 4 ++-- .../StepRegistry.hpp | 4 ++-- {cucumber-cpp => cucumber_cpp}/Steps.hpp | 4 ++-- .../TagExpression.cpp | 4 ++-- .../TagExpression.hpp | 0 {cucumber-cpp => cucumber_cpp}/TagsToSet.hpp | 0 {cucumber-cpp => cucumber_cpp}/TraceTime.cpp | 2 +- {cucumber-cpp => cucumber_cpp}/TraceTime.hpp | 0 .../engine/CMakeLists.txt | 0 .../engine/ContextManager.cpp | 8 +++---- .../engine/ContextManager.hpp | 12 +++++----- .../engine/ExecutionEngine.hpp | 2 +- .../engine/FeatureFactory.cpp | 14 ++++++------ .../engine/FeatureFactory.hpp | 2 +- .../engine/FeatureInfo.cpp | 6 ++--- .../engine/FeatureInfo.hpp | 4 ++-- .../engine/Result.hpp | 0 .../engine/RuleInfo.cpp | 9 ++++---- .../engine/RuleInfo.hpp | 2 +- .../engine/ScenarioInfo.cpp | 8 +++---- .../engine/ScenarioInfo.hpp | 4 ++-- .../engine/StepInfo.cpp | 4 ++-- .../engine/StepInfo.hpp | 2 +- .../engine/TestRunner.cpp | 22 +++++++++---------- .../engine/TestRunner.hpp | 10 ++++----- .../report/CMakeLists.txt | 0 .../report/JunitReport.cpp | 14 ++++++------ .../report/JunitReport.hpp | 14 ++++++------ .../report/Report.cpp | 14 ++++++------ .../report/Report.hpp | 12 +++++----- .../report/StdOutReport.cpp | 16 +++++++------- .../report/StdOutReport.hpp | 14 ++++++------ .../test/CMakeLists.txt | 0 .../test/TestContext.cpp | 2 +- .../test/TestHooks.cpp | 6 ++--- .../test/TestSteps.cpp | 6 ++--- .../test/TestTagExpression.cpp | 2 +- .../CMakeLists.txt | 0 .../Main.cpp | 2 +- .../features/1very_long.feature | 0 .../features/2simple.feature | 0 .../features/debug.feature | 0 .../fixtures/Fixture.hpp | 0 .../hooks/CMakeLists.txt | 0 .../hooks/Hooks.cpp | 7 +++--- .../hooks/TestHooks.cpp | 2 +- .../steps/CMakeLists.txt | 0 .../steps/Steps.cpp | 4 ++-- .../CMakeLists.txt | 0 .../Main.cpp | 2 +- {extern => external}/CMakeLists.txt | 0 {extern => external}/cliutils/CMakeLists.txt | 0 .../cliutils/cli11/CMakeLists.txt | 0 {extern => external}/cucumber/CMakeLists.txt | 0 .../cucumber/gherkin/CMakeLists.txt | 0 .../cucumber/messages/CMakeLists.txt | 0 .../googletest/CMakeLists.txt | 0 {extern => external}/nlohmann/CMakeLists.txt | 0 .../nlohmann/json/CMakeLists.txt | 0 {extern => external}/zeux/CMakeLists.txt | 0 .../zeux/pugixml/CMakeLists.txt | 0 test/Main.cpp | 2 +- test/MainCustom.cpp | 2 +- test/hooks/Hooks.cpp | 2 +- test/steps/Steps.cpp | 2 +- 83 files changed, 161 insertions(+), 163 deletions(-) rename {cucumber-cpp => cucumber_cpp}/Application.cpp (94%) rename {cucumber-cpp => cucumber_cpp}/Application.hpp (91%) rename {cucumber-cpp => cucumber_cpp}/Body.hpp (97%) rename {cucumber-cpp => cucumber_cpp}/BodyMacro.hpp (98%) rename {cucumber-cpp => cucumber_cpp}/CMakeLists.txt (100%) rename {cucumber-cpp => cucumber_cpp}/Context.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/HookRegistry.cpp (94%) rename {cucumber-cpp => cucumber_cpp}/HookRegistry.hpp (98%) rename {cucumber-cpp => cucumber_cpp}/HookScopes.cpp (80%) rename {cucumber-cpp => cucumber_cpp}/HookScopes.hpp (96%) rename {cucumber-cpp => cucumber_cpp}/Hooks.hpp (95%) rename {cucumber-cpp => cucumber_cpp}/InternalError.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/OnTestPartResultEventListener.cpp (89%) rename {cucumber-cpp => cucumber_cpp}/OnTestPartResultEventListener.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/Rtrim.cpp (91%) rename {cucumber-cpp => cucumber_cpp}/Rtrim.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/StepRegistry.cpp (98%) rename {cucumber-cpp => cucumber_cpp}/StepRegistry.hpp (98%) rename {cucumber-cpp => cucumber_cpp}/Steps.hpp (92%) rename {cucumber-cpp => cucumber_cpp}/TagExpression.cpp (95%) rename {cucumber-cpp => cucumber_cpp}/TagExpression.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/TagsToSet.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/TraceTime.cpp (92%) rename {cucumber-cpp => cucumber_cpp}/TraceTime.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/engine/CMakeLists.txt (100%) rename {cucumber-cpp => cucumber_cpp}/engine/ContextManager.cpp (91%) rename {cucumber-cpp => cucumber_cpp}/engine/ContextManager.hpp (92%) rename {cucumber-cpp => cucumber_cpp}/engine/ExecutionEngine.hpp (88%) rename {cucumber-cpp => cucumber_cpp}/engine/FeatureFactory.cpp (97%) rename {cucumber-cpp => cucumber_cpp}/engine/FeatureFactory.hpp (89%) rename {cucumber-cpp => cucumber_cpp}/engine/FeatureInfo.cpp (91%) rename {cucumber-cpp => cucumber_cpp}/engine/FeatureInfo.hpp (94%) rename {cucumber-cpp => cucumber_cpp}/engine/Result.hpp (100%) rename {cucumber-cpp => cucumber_cpp}/engine/RuleInfo.cpp (87%) rename {cucumber-cpp => cucumber_cpp}/engine/RuleInfo.hpp (96%) rename {cucumber-cpp => cucumber_cpp}/engine/ScenarioInfo.cpp (93%) rename {cucumber-cpp => cucumber_cpp}/engine/ScenarioInfo.hpp (95%) rename {cucumber-cpp => cucumber_cpp}/engine/StepInfo.cpp (96%) rename {cucumber-cpp => cucumber_cpp}/engine/StepInfo.hpp (97%) rename {cucumber-cpp => cucumber_cpp}/engine/TestRunner.cpp (96%) rename {cucumber-cpp => cucumber_cpp}/engine/TestRunner.hpp (88%) rename {cucumber-cpp => cucumber_cpp}/report/CMakeLists.txt (100%) rename {cucumber-cpp => cucumber_cpp}/report/JunitReport.cpp (96%) rename {cucumber-cpp => cucumber_cpp}/report/JunitReport.hpp (87%) rename {cucumber-cpp => cucumber_cpp}/report/Report.cpp (92%) rename {cucumber-cpp => cucumber_cpp}/report/Report.hpp (95%) rename {cucumber-cpp => cucumber_cpp}/report/StdOutReport.cpp (95%) rename {cucumber-cpp => cucumber_cpp}/report/StdOutReport.hpp (85%) rename {cucumber-cpp => cucumber_cpp}/test/CMakeLists.txt (100%) rename {cucumber-cpp => cucumber_cpp}/test/TestContext.cpp (99%) rename {cucumber-cpp => cucumber_cpp}/test/TestHooks.cpp (98%) rename {cucumber-cpp => cucumber_cpp}/test/TestSteps.cpp (97%) rename {cucumber-cpp => cucumber_cpp}/test/TestTagExpression.cpp (98%) rename {cucumber-cpp-example => cucumber_cpp_example}/CMakeLists.txt (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/Main.cpp (93%) rename {cucumber-cpp-example => cucumber_cpp_example}/features/1very_long.feature (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/features/2simple.feature (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/features/debug.feature (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/fixtures/Fixture.hpp (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/hooks/CMakeLists.txt (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/hooks/Hooks.cpp (76%) rename {cucumber-cpp-example => cucumber_cpp_example}/hooks/TestHooks.cpp (93%) rename {cucumber-cpp-example => cucumber_cpp_example}/steps/CMakeLists.txt (100%) rename {cucumber-cpp-example => cucumber_cpp_example}/steps/Steps.cpp (96%) rename {cucumber-cpp-runner => cucumber_cpp_runner}/CMakeLists.txt (100%) rename {cucumber-cpp-runner => cucumber_cpp_runner}/Main.cpp (77%) rename {extern => external}/CMakeLists.txt (100%) rename {extern => external}/cliutils/CMakeLists.txt (100%) rename {extern => external}/cliutils/cli11/CMakeLists.txt (100%) rename {extern => external}/cucumber/CMakeLists.txt (100%) rename {extern => external}/cucumber/gherkin/CMakeLists.txt (100%) rename {extern => external}/cucumber/messages/CMakeLists.txt (100%) rename {extern => external}/googletest/CMakeLists.txt (100%) rename {extern => external}/nlohmann/CMakeLists.txt (100%) rename {extern => external}/nlohmann/json/CMakeLists.txt (100%) rename {extern => external}/zeux/CMakeLists.txt (100%) rename {extern => external}/zeux/pugixml/CMakeLists.txt (100%) diff --git a/.ls-lint.yml b/.ls-lint.yml index 9772262..c637795 100644 --- a/.ls-lint.yml +++ b/.ls-lint.yml @@ -1,5 +1,5 @@ ls: - .dir: snake_case | kebab-case + .dir: snake_case .hpp: PascalCase .cpp: PascalCase diff --git a/CMakeLists.txt b/CMakeLists.txt index 0b30d80..ba5265e 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -31,8 +31,8 @@ include(GNUInstallDirs) include(CTest) include(GoogleTest) -add_subdirectory(extern) -add_subdirectory(cucumber-cpp) -add_subdirectory(cucumber-cpp-runner) -add_subdirectory(cucumber-cpp-example) +add_subdirectory(external) +add_subdirectory(cucumber_cpp) +add_subdirectory(cucumber_cpp_runner) +add_subdirectory(cucumber_cpp_example) add_subdirectory(test) diff --git a/cucumber-cpp/Application.cpp b/cucumber_cpp/Application.cpp similarity index 94% rename from cucumber-cpp/Application.cpp rename to cucumber_cpp/Application.cpp index 362c543..abe7d1e 100644 --- a/cucumber-cpp/Application.cpp +++ b/cucumber_cpp/Application.cpp @@ -1,13 +1,13 @@ -#include "cucumber-cpp/Application.hpp" -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/engine/ContextManager.hpp" -#include "cucumber-cpp/engine/FeatureFactory.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/TestRunner.hpp" -#include "cucumber-cpp/report/JunitReport.hpp" -#include "cucumber-cpp/report/Report.hpp" -#include "cucumber-cpp/report/StdOutReport.hpp" +#include "cucumber_cpp/Application.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/engine/ContextManager.hpp" +#include "cucumber_cpp/engine/FeatureFactory.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/TestRunner.hpp" +#include "cucumber_cpp/report/JunitReport.hpp" +#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/report/StdOutReport.hpp" #include #include #include diff --git a/cucumber-cpp/Application.hpp b/cucumber_cpp/Application.hpp similarity index 91% rename from cucumber-cpp/Application.hpp rename to cucumber_cpp/Application.hpp index 10c9f5d..959190a 100644 --- a/cucumber-cpp/Application.hpp +++ b/cucumber_cpp/Application.hpp @@ -1,11 +1,11 @@ #ifndef CUCUMBER_CPP_APPLICATION_HPP #define CUCUMBER_CPP_APPLICATION_HPP -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/engine/ContextManager.hpp" -#include "cucumber-cpp/engine/FeatureFactory.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/report/Report.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/engine/ContextManager.hpp" +#include "cucumber_cpp/engine/FeatureFactory.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/report/Report.hpp" #include "cucumber/gherkin/app.hpp" #include #include diff --git a/cucumber-cpp/Body.hpp b/cucumber_cpp/Body.hpp similarity index 97% rename from cucumber-cpp/Body.hpp rename to cucumber_cpp/Body.hpp index 01a825c..1ca34ea 100644 --- a/cucumber-cpp/Body.hpp +++ b/cucumber_cpp/Body.hpp @@ -1,7 +1,7 @@ #ifndef CUCUMBER_CPP_BODY_HPP #define CUCUMBER_CPP_BODY_HPP -#include "cucumber-cpp/InternalError.hpp" +#include "cucumber_cpp/InternalError.hpp" #include #include #include diff --git a/cucumber-cpp/BodyMacro.hpp b/cucumber_cpp/BodyMacro.hpp similarity index 98% rename from cucumber-cpp/BodyMacro.hpp rename to cucumber_cpp/BodyMacro.hpp index f1969c0..f855eed 100644 --- a/cucumber-cpp/BodyMacro.hpp +++ b/cucumber_cpp/BodyMacro.hpp @@ -1,7 +1,7 @@ #ifndef CUCUMBER_CPP_BODYMACRO_HPP #define CUCUMBER_CPP_BODYMACRO_HPP -#include "cucumber-cpp/Body.hpp" +#include "cucumber_cpp/Body.hpp" #define BODY_MATCHER(matcher, ...) matcher #define BODY_ARGS(matcher, args, ...) args diff --git a/cucumber-cpp/CMakeLists.txt b/cucumber_cpp/CMakeLists.txt similarity index 100% rename from cucumber-cpp/CMakeLists.txt rename to cucumber_cpp/CMakeLists.txt diff --git a/cucumber-cpp/Context.hpp b/cucumber_cpp/Context.hpp similarity index 100% rename from cucumber-cpp/Context.hpp rename to cucumber_cpp/Context.hpp diff --git a/cucumber-cpp/HookRegistry.cpp b/cucumber_cpp/HookRegistry.cpp similarity index 94% rename from cucumber-cpp/HookRegistry.cpp rename to cucumber_cpp/HookRegistry.cpp index 5527db3..4e4f848 100644 --- a/cucumber-cpp/HookRegistry.cpp +++ b/cucumber_cpp/HookRegistry.cpp @@ -1,7 +1,7 @@ -#include "cucumber-cpp/HookRegistry.hpp" -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/TagExpression.hpp" +#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/TagExpression.hpp" #include #include #include diff --git a/cucumber-cpp/HookRegistry.hpp b/cucumber_cpp/HookRegistry.hpp similarity index 98% rename from cucumber-cpp/HookRegistry.hpp rename to cucumber_cpp/HookRegistry.hpp index d4714ff..3fa9bbb 100644 --- a/cucumber-cpp/HookRegistry.hpp +++ b/cucumber_cpp/HookRegistry.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKREGISTRY_HPP #define CUCUMBER_CPP_HOOKREGISTRY_HPP -#include "cucumber-cpp/Body.hpp" -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/Body.hpp" +#include "cucumber_cpp/Context.hpp" #include #include #include diff --git a/cucumber-cpp/HookScopes.cpp b/cucumber_cpp/HookScopes.cpp similarity index 80% rename from cucumber-cpp/HookScopes.cpp rename to cucumber_cpp/HookScopes.cpp index 195ea4a..b0aa2b8 100644 --- a/cucumber-cpp/HookScopes.cpp +++ b/cucumber_cpp/HookScopes.cpp @@ -1,7 +1,7 @@ -#include "cucumber-cpp/HookScopes.hpp" -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/HookRegistry.hpp" +#include "cucumber_cpp/HookScopes.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/HookRegistry.hpp" #include #include #include diff --git a/cucumber-cpp/HookScopes.hpp b/cucumber_cpp/HookScopes.hpp similarity index 96% rename from cucumber-cpp/HookScopes.hpp rename to cucumber_cpp/HookScopes.hpp index 1e6eeb6..621334b 100644 --- a/cucumber-cpp/HookScopes.hpp +++ b/cucumber_cpp/HookScopes.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKSCOPES_HPP #define CUCUMBER_CPP_HOOKSCOPES_HPP -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/HookRegistry.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/HookRegistry.hpp" #include #include #include diff --git a/cucumber-cpp/Hooks.hpp b/cucumber_cpp/Hooks.hpp similarity index 95% rename from cucumber-cpp/Hooks.hpp rename to cucumber_cpp/Hooks.hpp index 43bc1a4..2d0ebdb 100644 --- a/cucumber-cpp/Hooks.hpp +++ b/cucumber_cpp/Hooks.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKS_HPP #define CUCUMBER_CPP_HOOKS_HPP -#include "cucumber-cpp/BodyMacro.hpp" -#include "cucumber-cpp/HookRegistry.hpp" +#include "cucumber_cpp/BodyMacro.hpp" +#include "cucumber_cpp/HookRegistry.hpp" #define HOOK_(matcher, type) BODY(matcher, type, (), HookRegistry::Register, cucumber_cpp::HookBase) diff --git a/cucumber-cpp/InternalError.hpp b/cucumber_cpp/InternalError.hpp similarity index 100% rename from cucumber-cpp/InternalError.hpp rename to cucumber_cpp/InternalError.hpp diff --git a/cucumber-cpp/OnTestPartResultEventListener.cpp b/cucumber_cpp/OnTestPartResultEventListener.cpp similarity index 89% rename from cucumber-cpp/OnTestPartResultEventListener.cpp rename to cucumber_cpp/OnTestPartResultEventListener.cpp index 14a352c..2524203 100644 --- a/cucumber-cpp/OnTestPartResultEventListener.cpp +++ b/cucumber_cpp/OnTestPartResultEventListener.cpp @@ -1,5 +1,5 @@ -#include "cucumber-cpp/OnTestPartResultEventListener.hpp" +#include "cucumber_cpp/OnTestPartResultEventListener.hpp" #include #include diff --git a/cucumber-cpp/OnTestPartResultEventListener.hpp b/cucumber_cpp/OnTestPartResultEventListener.hpp similarity index 100% rename from cucumber-cpp/OnTestPartResultEventListener.hpp rename to cucumber_cpp/OnTestPartResultEventListener.hpp diff --git a/cucumber-cpp/Rtrim.cpp b/cucumber_cpp/Rtrim.cpp similarity index 91% rename from cucumber-cpp/Rtrim.cpp rename to cucumber_cpp/Rtrim.cpp index 5725cc5..cb3b75d 100644 --- a/cucumber-cpp/Rtrim.cpp +++ b/cucumber_cpp/Rtrim.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Rtrim.hpp" +#include "cucumber_cpp/Rtrim.hpp" #include #include #include diff --git a/cucumber-cpp/Rtrim.hpp b/cucumber_cpp/Rtrim.hpp similarity index 100% rename from cucumber-cpp/Rtrim.hpp rename to cucumber_cpp/Rtrim.hpp diff --git a/cucumber-cpp/StepRegistry.cpp b/cucumber_cpp/StepRegistry.cpp similarity index 98% rename from cucumber-cpp/StepRegistry.cpp rename to cucumber_cpp/StepRegistry.cpp index 416654b..ffc3009 100644 --- a/cucumber-cpp/StepRegistry.cpp +++ b/cucumber_cpp/StepRegistry.cpp @@ -1,5 +1,5 @@ -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/Context.hpp" #include #include #include diff --git a/cucumber-cpp/StepRegistry.hpp b/cucumber_cpp/StepRegistry.hpp similarity index 98% rename from cucumber-cpp/StepRegistry.hpp rename to cucumber_cpp/StepRegistry.hpp index 0508b68..83e2266 100644 --- a/cucumber-cpp/StepRegistry.hpp +++ b/cucumber_cpp/StepRegistry.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_STEPREGISTRY_HPP #define CUCUMBER_CPP_STEPREGISTRY_HPP -#include "cucumber-cpp/Body.hpp" -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/Body.hpp" +#include "cucumber_cpp/Context.hpp" #include #include #include diff --git a/cucumber-cpp/Steps.hpp b/cucumber_cpp/Steps.hpp similarity index 92% rename from cucumber-cpp/Steps.hpp rename to cucumber_cpp/Steps.hpp index be848be..b708668 100644 --- a/cucumber-cpp/Steps.hpp +++ b/cucumber_cpp/Steps.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_STEPSMACRO_HPP #define CUCUMBER_CPP_STEPSMACRO_HPP -#include "cucumber-cpp/BodyMacro.hpp" -#include "cucumber-cpp/StepRegistry.hpp" +#include "cucumber_cpp/BodyMacro.hpp" +#include "cucumber_cpp/StepRegistry.hpp" #define STEP_(matcher, type, args, fixture) BODY(matcher, type, args, StepRegistry::Register, fixture) diff --git a/cucumber-cpp/TagExpression.cpp b/cucumber_cpp/TagExpression.cpp similarity index 95% rename from cucumber-cpp/TagExpression.cpp rename to cucumber_cpp/TagExpression.cpp index 42faa4e..29e924c 100644 --- a/cucumber-cpp/TagExpression.cpp +++ b/cucumber_cpp/TagExpression.cpp @@ -1,5 +1,5 @@ -#include "cucumber-cpp/TagExpression.hpp" -#include "cucumber-cpp/InternalError.hpp" +#include "cucumber_cpp/TagExpression.hpp" +#include "cucumber_cpp/InternalError.hpp" #include #include #include diff --git a/cucumber-cpp/TagExpression.hpp b/cucumber_cpp/TagExpression.hpp similarity index 100% rename from cucumber-cpp/TagExpression.hpp rename to cucumber_cpp/TagExpression.hpp diff --git a/cucumber-cpp/TagsToSet.hpp b/cucumber_cpp/TagsToSet.hpp similarity index 100% rename from cucumber-cpp/TagsToSet.hpp rename to cucumber_cpp/TagsToSet.hpp diff --git a/cucumber-cpp/TraceTime.cpp b/cucumber_cpp/TraceTime.cpp similarity index 92% rename from cucumber-cpp/TraceTime.cpp rename to cucumber_cpp/TraceTime.cpp index 0795019..8b80560 100644 --- a/cucumber-cpp/TraceTime.cpp +++ b/cucumber_cpp/TraceTime.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/TraceTime.hpp" +#include "cucumber_cpp/TraceTime.hpp" #include namespace cucumber_cpp diff --git a/cucumber-cpp/TraceTime.hpp b/cucumber_cpp/TraceTime.hpp similarity index 100% rename from cucumber-cpp/TraceTime.hpp rename to cucumber_cpp/TraceTime.hpp diff --git a/cucumber-cpp/engine/CMakeLists.txt b/cucumber_cpp/engine/CMakeLists.txt similarity index 100% rename from cucumber-cpp/engine/CMakeLists.txt rename to cucumber_cpp/engine/CMakeLists.txt diff --git a/cucumber-cpp/engine/ContextManager.cpp b/cucumber_cpp/engine/ContextManager.cpp similarity index 91% rename from cucumber-cpp/engine/ContextManager.cpp rename to cucumber_cpp/engine/ContextManager.cpp index 61a7706..3868b60 100644 --- a/cucumber-cpp/engine/ContextManager.cpp +++ b/cucumber_cpp/engine/ContextManager.cpp @@ -1,7 +1,7 @@ -#include "cucumber-cpp/engine/ContextManager.hpp" -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/ContextManager.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/Result.hpp" #include #include diff --git a/cucumber-cpp/engine/ContextManager.hpp b/cucumber_cpp/engine/ContextManager.hpp similarity index 92% rename from cucumber-cpp/engine/ContextManager.hpp rename to cucumber_cpp/engine/ContextManager.hpp index c6f9de1..2b7e952 100644 --- a/cucumber-cpp/engine/ContextManager.hpp +++ b/cucumber_cpp/engine/ContextManager.hpp @@ -1,12 +1,12 @@ #ifndef ENGINE_CONTEXTMANAGER_HPP #define ENGINE_CONTEXTMANAGER_HPP -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include diff --git a/cucumber-cpp/engine/ExecutionEngine.hpp b/cucumber_cpp/engine/ExecutionEngine.hpp similarity index 88% rename from cucumber-cpp/engine/ExecutionEngine.hpp rename to cucumber_cpp/engine/ExecutionEngine.hpp index 57e01c5..24293c6 100644 --- a/cucumber-cpp/engine/ExecutionEngine.hpp +++ b/cucumber_cpp/engine/ExecutionEngine.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_EXECUTIONENGINE_HPP #define ENGINE_EXECUTIONENGINE_HPP -#include "cucumber-cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" #include #include diff --git a/cucumber-cpp/engine/FeatureFactory.cpp b/cucumber_cpp/engine/FeatureFactory.cpp similarity index 97% rename from cucumber-cpp/engine/FeatureFactory.cpp rename to cucumber_cpp/engine/FeatureFactory.cpp index d6330ff..f374939 100644 --- a/cucumber-cpp/engine/FeatureFactory.cpp +++ b/cucumber_cpp/engine/FeatureFactory.cpp @@ -1,10 +1,10 @@ -#include "cucumber-cpp/engine/FeatureFactory.hpp" -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/TagExpression.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/engine/FeatureFactory.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/TagExpression.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include "cucumber/gherkin/app.hpp" #include "cucumber/gherkin/file.hpp" #include "cucumber/gherkin/parse_error.hpp" diff --git a/cucumber-cpp/engine/FeatureFactory.hpp b/cucumber_cpp/engine/FeatureFactory.hpp similarity index 89% rename from cucumber-cpp/engine/FeatureFactory.hpp rename to cucumber_cpp/engine/FeatureFactory.hpp index 5688b81..ff30252 100644 --- a/cucumber-cpp/engine/FeatureFactory.hpp +++ b/cucumber_cpp/engine/FeatureFactory.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_FEATUREFACTORY_HPP #define ENGINE_FEATUREFACTORY_HPP -#include "cucumber-cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" #include "cucumber/gherkin/app.hpp" #include #include diff --git a/cucumber-cpp/engine/FeatureInfo.cpp b/cucumber_cpp/engine/FeatureInfo.cpp similarity index 91% rename from cucumber-cpp/engine/FeatureInfo.cpp rename to cucumber_cpp/engine/FeatureInfo.cpp index 9a8d91a..d540354 100644 --- a/cucumber-cpp/engine/FeatureInfo.cpp +++ b/cucumber_cpp/engine/FeatureInfo.cpp @@ -1,6 +1,6 @@ -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" #include #include #include diff --git a/cucumber-cpp/engine/FeatureInfo.hpp b/cucumber_cpp/engine/FeatureInfo.hpp similarity index 94% rename from cucumber-cpp/engine/FeatureInfo.hpp rename to cucumber_cpp/engine/FeatureInfo.hpp index b246b6c..aae98af 100644 --- a/cucumber-cpp/engine/FeatureInfo.hpp +++ b/cucumber_cpp/engine/FeatureInfo.hpp @@ -1,8 +1,8 @@ #ifndef ENGINE_FEATUREINFO_HPP #define ENGINE_FEATUREINFO_HPP -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" #include #include #include diff --git a/cucumber-cpp/engine/Result.hpp b/cucumber_cpp/engine/Result.hpp similarity index 100% rename from cucumber-cpp/engine/Result.hpp rename to cucumber_cpp/engine/Result.hpp diff --git a/cucumber-cpp/engine/RuleInfo.cpp b/cucumber_cpp/engine/RuleInfo.cpp similarity index 87% rename from cucumber-cpp/engine/RuleInfo.cpp rename to cucumber_cpp/engine/RuleInfo.cpp index 7c91ac1..7b45a7a 100644 --- a/cucumber-cpp/engine/RuleInfo.cpp +++ b/cucumber_cpp/engine/RuleInfo.cpp @@ -1,6 +1,6 @@ -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" #include #include #include @@ -15,8 +15,7 @@ namespace cucumber_cpp::engine , description{ std::move(description) } , line{ line } , column{ column } - { - } + {} const FeatureInfo& RuleInfo::FeatureInfo() const { diff --git a/cucumber-cpp/engine/RuleInfo.hpp b/cucumber_cpp/engine/RuleInfo.hpp similarity index 96% rename from cucumber-cpp/engine/RuleInfo.hpp rename to cucumber_cpp/engine/RuleInfo.hpp index 771cedb..0eb1211 100644 --- a/cucumber-cpp/engine/RuleInfo.hpp +++ b/cucumber_cpp/engine/RuleInfo.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_RULEINFO_HPP #define ENGINE_RULEINFO_HPP -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/engine/ScenarioInfo.cpp b/cucumber_cpp/engine/ScenarioInfo.cpp similarity index 93% rename from cucumber-cpp/engine/ScenarioInfo.cpp rename to cucumber_cpp/engine/ScenarioInfo.cpp index 1adea42..1264333 100644 --- a/cucumber-cpp/engine/ScenarioInfo.cpp +++ b/cucumber_cpp/engine/ScenarioInfo.cpp @@ -1,7 +1,7 @@ -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/engine/ScenarioInfo.hpp b/cucumber_cpp/engine/ScenarioInfo.hpp similarity index 95% rename from cucumber-cpp/engine/ScenarioInfo.hpp rename to cucumber_cpp/engine/ScenarioInfo.hpp index b629813..d973ffe 100644 --- a/cucumber-cpp/engine/ScenarioInfo.hpp +++ b/cucumber_cpp/engine/ScenarioInfo.hpp @@ -1,8 +1,8 @@ #ifndef ENGINE_SCENARIOINFO_HPP #define ENGINE_SCENARIOINFO_HPP -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/engine/StepInfo.cpp b/cucumber_cpp/engine/StepInfo.cpp similarity index 96% rename from cucumber-cpp/engine/StepInfo.cpp rename to cucumber_cpp/engine/StepInfo.cpp index 6576646..ac3433e 100644 --- a/cucumber-cpp/engine/StepInfo.cpp +++ b/cucumber_cpp/engine/StepInfo.cpp @@ -1,5 +1,5 @@ -#include "cucumber-cpp/engine/StepInfo.hpp" -#include "cucumber-cpp/StepRegistry.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/StepRegistry.hpp" #include #include #include diff --git a/cucumber-cpp/engine/StepInfo.hpp b/cucumber_cpp/engine/StepInfo.hpp similarity index 97% rename from cucumber-cpp/engine/StepInfo.hpp rename to cucumber_cpp/engine/StepInfo.hpp index 7bc49ea..5ea52a8 100644 --- a/cucumber-cpp/engine/StepInfo.hpp +++ b/cucumber_cpp/engine/StepInfo.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_STEPINFO_HPP #define ENGINE_STEPINFO_HPP -#include "cucumber-cpp/StepRegistry.hpp" +#include "cucumber_cpp/StepRegistry.hpp" #include #include #include diff --git a/cucumber-cpp/engine/TestRunner.cpp b/cucumber_cpp/engine/TestRunner.cpp similarity index 96% rename from cucumber-cpp/engine/TestRunner.cpp rename to cucumber_cpp/engine/TestRunner.cpp index 771c4aa..579d50b 100644 --- a/cucumber-cpp/engine/TestRunner.cpp +++ b/cucumber_cpp/engine/TestRunner.cpp @@ -1,15 +1,15 @@ -#include "cucumber-cpp/engine/TestRunner.hpp" -#include "cucumber-cpp/HookRegistry.hpp" -#include "cucumber-cpp/OnTestPartResultEventListener.hpp" -#include "cucumber-cpp/Rtrim.hpp" -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/engine/ContextManager.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" -#include "cucumber-cpp/report/Report.hpp" +#include "cucumber_cpp/engine/TestRunner.hpp" +#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/OnTestPartResultEventListener.hpp" +#include "cucumber_cpp/Rtrim.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/engine/ContextManager.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/Report.hpp" #include "gtest/gtest.h" #include #include diff --git a/cucumber-cpp/engine/TestRunner.hpp b/cucumber_cpp/engine/TestRunner.hpp similarity index 88% rename from cucumber-cpp/engine/TestRunner.hpp rename to cucumber_cpp/engine/TestRunner.hpp index 16ed05b..544c996 100644 --- a/cucumber-cpp/engine/TestRunner.hpp +++ b/cucumber_cpp/engine/TestRunner.hpp @@ -1,11 +1,11 @@ #ifndef ENGINE_TESTRUNNER_HPP #define ENGINE_TESTRUNNER_HPP -#include "cucumber-cpp/HookRegistry.hpp" -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/engine/ContextManager.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/engine/ContextManager.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/report/CMakeLists.txt b/cucumber_cpp/report/CMakeLists.txt similarity index 100% rename from cucumber-cpp/report/CMakeLists.txt rename to cucumber_cpp/report/CMakeLists.txt diff --git a/cucumber-cpp/report/JunitReport.cpp b/cucumber_cpp/report/JunitReport.cpp similarity index 96% rename from cucumber-cpp/report/JunitReport.cpp rename to cucumber_cpp/report/JunitReport.cpp index acd5745..6fcad32 100644 --- a/cucumber-cpp/report/JunitReport.cpp +++ b/cucumber_cpp/report/JunitReport.cpp @@ -1,11 +1,11 @@ -#include "cucumber-cpp/report/JunitReport.hpp" -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/JunitReport.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/report/JunitReport.hpp b/cucumber_cpp/report/JunitReport.hpp similarity index 87% rename from cucumber-cpp/report/JunitReport.hpp rename to cucumber_cpp/report/JunitReport.hpp index f75b19b..ecf0e1d 100644 --- a/cucumber-cpp/report/JunitReport.hpp +++ b/cucumber_cpp/report/JunitReport.hpp @@ -1,13 +1,13 @@ #ifndef REPORT_JUNITREPORT_HPP #define REPORT_JUNITREPORT_HPP -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" -#include "cucumber-cpp/report/Report.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/Report.hpp" #include "pugixml.hpp" #include #include diff --git a/cucumber-cpp/report/Report.cpp b/cucumber_cpp/report/Report.cpp similarity index 92% rename from cucumber-cpp/report/Report.cpp rename to cucumber_cpp/report/Report.cpp index e4be1c1..a64a99d 100644 --- a/cucumber-cpp/report/Report.cpp +++ b/cucumber_cpp/report/Report.cpp @@ -1,10 +1,10 @@ -#include "cucumber-cpp/report/Report.hpp" -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/report/Report.hpp b/cucumber_cpp/report/Report.hpp similarity index 95% rename from cucumber-cpp/report/Report.hpp rename to cucumber_cpp/report/Report.hpp index 52cd76c..677988a 100644 --- a/cucumber-cpp/report/Report.hpp +++ b/cucumber_cpp/report/Report.hpp @@ -1,12 +1,12 @@ #ifndef REPORT_REPORT_HPP #define REPORT_REPORT_HPP -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" -#include "cucumber-cpp/engine/TestRunner.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/engine/TestRunner.hpp" #include #include #include diff --git a/cucumber-cpp/report/StdOutReport.cpp b/cucumber_cpp/report/StdOutReport.cpp similarity index 95% rename from cucumber-cpp/report/StdOutReport.cpp rename to cucumber_cpp/report/StdOutReport.cpp index eaddadd..d6b49a2 100644 --- a/cucumber-cpp/report/StdOutReport.cpp +++ b/cucumber_cpp/report/StdOutReport.cpp @@ -1,11 +1,11 @@ -#include "cucumber-cpp/report/StdOutReport.hpp" -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/StdOutReport.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber-cpp/report/StdOutReport.hpp b/cucumber_cpp/report/StdOutReport.hpp similarity index 85% rename from cucumber-cpp/report/StdOutReport.hpp rename to cucumber_cpp/report/StdOutReport.hpp index 172a6e0..322f1c3 100644 --- a/cucumber-cpp/report/StdOutReport.hpp +++ b/cucumber_cpp/report/StdOutReport.hpp @@ -1,13 +1,13 @@ #ifndef REPORT_STDOUTREPORT_HPP #define REPORT_STDOUTREPORT_HPP -#include "cucumber-cpp/TraceTime.hpp" -#include "cucumber-cpp/engine/FeatureInfo.hpp" -#include "cucumber-cpp/engine/Result.hpp" -#include "cucumber-cpp/engine/RuleInfo.hpp" -#include "cucumber-cpp/engine/ScenarioInfo.hpp" -#include "cucumber-cpp/engine/StepInfo.hpp" -#include "cucumber-cpp/report/Report.hpp" +#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/report/Report.hpp" #include #include #include diff --git a/cucumber-cpp/test/CMakeLists.txt b/cucumber_cpp/test/CMakeLists.txt similarity index 100% rename from cucumber-cpp/test/CMakeLists.txt rename to cucumber_cpp/test/CMakeLists.txt diff --git a/cucumber-cpp/test/TestContext.cpp b/cucumber_cpp/test/TestContext.cpp similarity index 99% rename from cucumber-cpp/test/TestContext.cpp rename to cucumber_cpp/test/TestContext.cpp index 1e7a2b9..0050db3 100644 --- a/cucumber-cpp/test/TestContext.cpp +++ b/cucumber_cpp/test/TestContext.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/Context.hpp" #include #include #include diff --git a/cucumber-cpp/test/TestHooks.cpp b/cucumber_cpp/test/TestHooks.cpp similarity index 98% rename from cucumber-cpp/test/TestHooks.cpp rename to cucumber_cpp/test/TestHooks.cpp index 5e74e98..52493dc 100644 --- a/cucumber-cpp/test/TestHooks.cpp +++ b/cucumber_cpp/test/TestHooks.cpp @@ -1,6 +1,6 @@ -#include "cucumber-cpp/HookRegistry.hpp" -#include "cucumber-cpp/HookScopes.hpp" -#include "cucumber-cpp/Hooks.hpp" +#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/HookScopes.hpp" +#include "cucumber_cpp/Hooks.hpp" #include "gmock/gmock.h" #include #include diff --git a/cucumber-cpp/test/TestSteps.cpp b/cucumber_cpp/test/TestSteps.cpp similarity index 97% rename from cucumber-cpp/test/TestSteps.cpp rename to cucumber_cpp/test/TestSteps.cpp index 2d648d8..349770b 100644 --- a/cucumber-cpp/test/TestSteps.cpp +++ b/cucumber_cpp/test/TestSteps.cpp @@ -1,6 +1,6 @@ -#include "cucumber-cpp/Context.hpp" -#include "cucumber-cpp/StepRegistry.hpp" -#include "cucumber-cpp/Steps.hpp" +#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/Steps.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber-cpp/test/TestTagExpression.cpp b/cucumber_cpp/test/TestTagExpression.cpp similarity index 98% rename from cucumber-cpp/test/TestTagExpression.cpp rename to cucumber_cpp/test/TestTagExpression.cpp index aadfb60..9537132 100644 --- a/cucumber-cpp/test/TestTagExpression.cpp +++ b/cucumber_cpp/test/TestTagExpression.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/TagExpression.hpp" +#include "cucumber_cpp/TagExpression.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber-cpp-example/CMakeLists.txt b/cucumber_cpp_example/CMakeLists.txt similarity index 100% rename from cucumber-cpp-example/CMakeLists.txt rename to cucumber_cpp_example/CMakeLists.txt diff --git a/cucumber-cpp-example/Main.cpp b/cucumber_cpp_example/Main.cpp similarity index 93% rename from cucumber-cpp-example/Main.cpp rename to cucumber_cpp_example/Main.cpp index f838c81..7f6dbb1 100644 --- a/cucumber-cpp-example/Main.cpp +++ b/cucumber_cpp_example/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Application.hpp" +#include "cucumber_cpp/Application.hpp" #include int main(int argc, char** argv) diff --git a/cucumber-cpp-example/features/1very_long.feature b/cucumber_cpp_example/features/1very_long.feature similarity index 100% rename from cucumber-cpp-example/features/1very_long.feature rename to cucumber_cpp_example/features/1very_long.feature diff --git a/cucumber-cpp-example/features/2simple.feature b/cucumber_cpp_example/features/2simple.feature similarity index 100% rename from cucumber-cpp-example/features/2simple.feature rename to cucumber_cpp_example/features/2simple.feature diff --git a/cucumber-cpp-example/features/debug.feature b/cucumber_cpp_example/features/debug.feature similarity index 100% rename from cucumber-cpp-example/features/debug.feature rename to cucumber_cpp_example/features/debug.feature diff --git a/cucumber-cpp-example/fixtures/Fixture.hpp b/cucumber_cpp_example/fixtures/Fixture.hpp similarity index 100% rename from cucumber-cpp-example/fixtures/Fixture.hpp rename to cucumber_cpp_example/fixtures/Fixture.hpp diff --git a/cucumber-cpp-example/hooks/CMakeLists.txt b/cucumber_cpp_example/hooks/CMakeLists.txt similarity index 100% rename from cucumber-cpp-example/hooks/CMakeLists.txt rename to cucumber_cpp_example/hooks/CMakeLists.txt diff --git a/cucumber-cpp-example/hooks/Hooks.cpp b/cucumber_cpp_example/hooks/Hooks.cpp similarity index 76% rename from cucumber-cpp-example/hooks/Hooks.cpp rename to cucumber_cpp_example/hooks/Hooks.cpp index 4f60abc..9dddd0c 100644 --- a/cucumber-cpp-example/hooks/Hooks.cpp +++ b/cucumber_cpp_example/hooks/Hooks.cpp @@ -1,12 +1,11 @@ -#include "cucumber-cpp/Hooks.hpp" -#include "cucumber-cpp-example/fixtures/Fixture.hpp" -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/Hooks.hpp" +#include "cucumber_cpp_example/fixtures/Fixture.hpp" +#include "cucumber_cpp/Context.hpp" #include #include HOOK_BEFORE_ALL() { - if (context.Contains("--st") && context.Get("--st")) context.Emplace(context.Get("--com")); else if (context.Contains("--nordic") && context.Get("--nordic")) diff --git a/cucumber-cpp-example/hooks/TestHooks.cpp b/cucumber_cpp_example/hooks/TestHooks.cpp similarity index 93% rename from cucumber-cpp-example/hooks/TestHooks.cpp rename to cucumber_cpp_example/hooks/TestHooks.cpp index 18bb2df..e627525 100644 --- a/cucumber-cpp-example/hooks/TestHooks.cpp +++ b/cucumber_cpp_example/hooks/TestHooks.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Hooks.hpp" +#include "cucumber_cpp/Hooks.hpp" #include HOOK_BEFORE_ALL() diff --git a/cucumber-cpp-example/steps/CMakeLists.txt b/cucumber_cpp_example/steps/CMakeLists.txt similarity index 100% rename from cucumber-cpp-example/steps/CMakeLists.txt rename to cucumber_cpp_example/steps/CMakeLists.txt diff --git a/cucumber-cpp-example/steps/Steps.cpp b/cucumber_cpp_example/steps/Steps.cpp similarity index 96% rename from cucumber-cpp-example/steps/Steps.cpp rename to cucumber_cpp_example/steps/Steps.cpp index 5fd85ca..51a28d4 100644 --- a/cucumber-cpp-example/steps/Steps.cpp +++ b/cucumber_cpp_example/steps/Steps.cpp @@ -1,5 +1,5 @@ -#include "cucumber-cpp/Steps.hpp" -#include "cucumber-cpp/Context.hpp" +#include "cucumber_cpp/Steps.hpp" +#include "cucumber_cpp/Context.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber-cpp-runner/CMakeLists.txt b/cucumber_cpp_runner/CMakeLists.txt similarity index 100% rename from cucumber-cpp-runner/CMakeLists.txt rename to cucumber_cpp_runner/CMakeLists.txt diff --git a/cucumber-cpp-runner/Main.cpp b/cucumber_cpp_runner/Main.cpp similarity index 77% rename from cucumber-cpp-runner/Main.cpp rename to cucumber_cpp_runner/Main.cpp index e5ea547..2f4f7d2 100644 --- a/cucumber-cpp-runner/Main.cpp +++ b/cucumber_cpp_runner/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Application.hpp" +#include "cucumber_cpp/Application.hpp" #include int main(int argc, char** argv) diff --git a/extern/CMakeLists.txt b/external/CMakeLists.txt similarity index 100% rename from extern/CMakeLists.txt rename to external/CMakeLists.txt diff --git a/extern/cliutils/CMakeLists.txt b/external/cliutils/CMakeLists.txt similarity index 100% rename from extern/cliutils/CMakeLists.txt rename to external/cliutils/CMakeLists.txt diff --git a/extern/cliutils/cli11/CMakeLists.txt b/external/cliutils/cli11/CMakeLists.txt similarity index 100% rename from extern/cliutils/cli11/CMakeLists.txt rename to external/cliutils/cli11/CMakeLists.txt diff --git a/extern/cucumber/CMakeLists.txt b/external/cucumber/CMakeLists.txt similarity index 100% rename from extern/cucumber/CMakeLists.txt rename to external/cucumber/CMakeLists.txt diff --git a/extern/cucumber/gherkin/CMakeLists.txt b/external/cucumber/gherkin/CMakeLists.txt similarity index 100% rename from extern/cucumber/gherkin/CMakeLists.txt rename to external/cucumber/gherkin/CMakeLists.txt diff --git a/extern/cucumber/messages/CMakeLists.txt b/external/cucumber/messages/CMakeLists.txt similarity index 100% rename from extern/cucumber/messages/CMakeLists.txt rename to external/cucumber/messages/CMakeLists.txt diff --git a/extern/googletest/CMakeLists.txt b/external/googletest/CMakeLists.txt similarity index 100% rename from extern/googletest/CMakeLists.txt rename to external/googletest/CMakeLists.txt diff --git a/extern/nlohmann/CMakeLists.txt b/external/nlohmann/CMakeLists.txt similarity index 100% rename from extern/nlohmann/CMakeLists.txt rename to external/nlohmann/CMakeLists.txt diff --git a/extern/nlohmann/json/CMakeLists.txt b/external/nlohmann/json/CMakeLists.txt similarity index 100% rename from extern/nlohmann/json/CMakeLists.txt rename to external/nlohmann/json/CMakeLists.txt diff --git a/extern/zeux/CMakeLists.txt b/external/zeux/CMakeLists.txt similarity index 100% rename from extern/zeux/CMakeLists.txt rename to external/zeux/CMakeLists.txt diff --git a/extern/zeux/pugixml/CMakeLists.txt b/external/zeux/pugixml/CMakeLists.txt similarity index 100% rename from extern/zeux/pugixml/CMakeLists.txt rename to external/zeux/pugixml/CMakeLists.txt diff --git a/test/Main.cpp b/test/Main.cpp index e5ea547..2f4f7d2 100644 --- a/test/Main.cpp +++ b/test/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Application.hpp" +#include "cucumber_cpp/Application.hpp" #include int main(int argc, char** argv) diff --git a/test/MainCustom.cpp b/test/MainCustom.cpp index 12954ab..a61e017 100644 --- a/test/MainCustom.cpp +++ b/test/MainCustom.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Application.hpp" +#include "cucumber_cpp/Application.hpp" #include int main(int argc, char** argv) diff --git a/test/hooks/Hooks.cpp b/test/hooks/Hooks.cpp index 18bb2df..e627525 100644 --- a/test/hooks/Hooks.cpp +++ b/test/hooks/Hooks.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Hooks.hpp" +#include "cucumber_cpp/Hooks.hpp" #include HOOK_BEFORE_ALL() diff --git a/test/steps/Steps.cpp b/test/steps/Steps.cpp index 0b94af4..d97d763 100644 --- a/test/steps/Steps.cpp +++ b/test/steps/Steps.cpp @@ -1,4 +1,4 @@ -#include "cucumber-cpp/Steps.hpp" +#include "cucumber_cpp/Steps.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include From 7b38e5c7ebdae699ecb3c82dadf9a1e9917f9989 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:26:01 +0200 Subject: [PATCH 14/24] Add .github/workflows/security.yml --- .github/workflows/security.yml | 36 ++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 .github/workflows/security.yml diff --git a/.github/workflows/security.yml b/.github/workflows/security.yml new file mode 100644 index 0000000..25778a5 --- /dev/null +++ b/.github/workflows/security.yml @@ -0,0 +1,36 @@ +--- +name: Security + +on: + workflow_dispatch: + branch_protection_rule: + schedule: + - cron: "33 8 * * 6" + push: + branches: [main] + +permissions: read-all + +jobs: + analysis: + name: OSSF Scorecards + runs-on: ubuntu-latest + permissions: + security-events: write + id-token: write + actions: read + contents: read + steps: + - uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7 + with: + persist-credentials: false + - name: Analysis + uses: ossf/scorecard-action@62b2cac7ed8198b15735ed49ab1e5cf35480ba46 # v2.4.0 + with: + results_file: scorecards.sarif + results_format: sarif + repo_token: ${{ secrets.SCORECARD_READ_TOKEN }} + publish_results: true + - uses: github/codeql-action/upload-sarif@294a9d92911152fe08befb9ec03e240add280cb3 # v3.26.8 + with: + sarif_file: scorecards.sarif From bd766cb982a7c84045c64019112a69cb978993e5 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:26:24 +0200 Subject: [PATCH 15/24] Resolve clang-formatting issues --- cucumber_cpp/Application.hpp | 2 +- cucumber_cpp/engine/FeatureFactory.cpp | 12 ++++++------ cucumber_cpp/engine/FeatureFactory.hpp | 2 +- cucumber_cpp_example/hooks/Hooks.cpp | 2 +- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cucumber_cpp/Application.hpp b/cucumber_cpp/Application.hpp index 959190a..1371b36 100644 --- a/cucumber_cpp/Application.hpp +++ b/cucumber_cpp/Application.hpp @@ -1,12 +1,12 @@ #ifndef CUCUMBER_CPP_APPLICATION_HPP #define CUCUMBER_CPP_APPLICATION_HPP +#include "cucumber/gherkin/app.hpp" #include "cucumber_cpp/Context.hpp" #include "cucumber_cpp/engine/ContextManager.hpp" #include "cucumber_cpp/engine/FeatureFactory.hpp" #include "cucumber_cpp/engine/FeatureInfo.hpp" #include "cucumber_cpp/report/Report.hpp" -#include "cucumber/gherkin/app.hpp" #include #include #include diff --git a/cucumber_cpp/engine/FeatureFactory.cpp b/cucumber_cpp/engine/FeatureFactory.cpp index f374939..d3daf0e 100644 --- a/cucumber_cpp/engine/FeatureFactory.cpp +++ b/cucumber_cpp/engine/FeatureFactory.cpp @@ -1,10 +1,4 @@ #include "cucumber_cpp/engine/FeatureFactory.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/TagExpression.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" #include "cucumber/gherkin/app.hpp" #include "cucumber/gherkin/file.hpp" #include "cucumber/gherkin/parse_error.hpp" @@ -19,6 +13,12 @@ #include "cucumber/messages/scenario.hpp" #include "cucumber/messages/step.hpp" #include "cucumber/messages/tag.hpp" +#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/TagExpression.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/engine/RuleInfo.hpp" +#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/FeatureFactory.hpp b/cucumber_cpp/engine/FeatureFactory.hpp index ff30252..c7e73e8 100644 --- a/cucumber_cpp/engine/FeatureFactory.hpp +++ b/cucumber_cpp/engine/FeatureFactory.hpp @@ -1,8 +1,8 @@ #ifndef ENGINE_FEATUREFACTORY_HPP #define ENGINE_FEATUREFACTORY_HPP -#include "cucumber_cpp/engine/FeatureInfo.hpp" #include "cucumber/gherkin/app.hpp" +#include "cucumber_cpp/engine/FeatureInfo.hpp" #include #include #include diff --git a/cucumber_cpp_example/hooks/Hooks.cpp b/cucumber_cpp_example/hooks/Hooks.cpp index 9dddd0c..93b4e6f 100644 --- a/cucumber_cpp_example/hooks/Hooks.cpp +++ b/cucumber_cpp_example/hooks/Hooks.cpp @@ -1,6 +1,6 @@ #include "cucumber_cpp/Hooks.hpp" -#include "cucumber_cpp_example/fixtures/Fixture.hpp" #include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp_example/fixtures/Fixture.hpp" #include #include From aad2d382b19a042174c3ecf129a64a48685d1fbe Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 08:39:14 +0200 Subject: [PATCH 16/24] Resolve a few Sonar warnings --- cucumber_cpp/report/StdOutReport.cpp | 4 +++- cucumber_cpp/test/TestContext.cpp | 22 +++++++++------------- cucumber_cpp/test/TestHooks.cpp | 4 ---- cucumber_cpp/test/TestSteps.cpp | 4 ---- 4 files changed, 12 insertions(+), 22 deletions(-) diff --git a/cucumber_cpp/report/StdOutReport.cpp b/cucumber_cpp/report/StdOutReport.cpp index d6b49a2..8c51f6d 100644 --- a/cucumber_cpp/report/StdOutReport.cpp +++ b/cucumber_cpp/report/StdOutReport.cpp @@ -17,11 +17,13 @@ #include #ifdef _MSC_VER +// clang-format off #include #include #include #include -#include +#include +// clang-format on #endif namespace cucumber_cpp::report diff --git a/cucumber_cpp/test/TestContext.cpp b/cucumber_cpp/test/TestContext.cpp index 0050db3..35642a3 100644 --- a/cucumber_cpp/test/TestContext.cpp +++ b/cucumber_cpp/test/TestContext.cpp @@ -16,7 +16,7 @@ namespace cucumber_cpp struct Obj { - Obj(Mock* mock = nullptr) + explicit Obj(Mock* mock = nullptr) : mock{ mock } {} @@ -87,10 +87,6 @@ namespace cucumber_cpp Context scenarioContext{ &programContext }; }; - TEST_F(TestContext, Construct) - { - } - TEST_F(TestContext, GetByReference) { programContext.Emplace(); @@ -154,7 +150,7 @@ namespace cucumber_cpp { scenarioContext.Emplace(1, 2); - auto& obj = scenarioContext.Get(); + const auto& obj = scenarioContext.Get(); EXPECT_THAT(obj.a, testing::Eq(1)); EXPECT_THAT(obj.b, testing::Eq(2)); } @@ -164,11 +160,11 @@ namespace cucumber_cpp scenarioContext.EmplaceAt("key1", "a", 2); scenarioContext.EmplaceAt("key2", "b", 4); - auto& key1 = scenarioContext.Get("key1"); + const auto& key1 = scenarioContext.Get("key1"); EXPECT_THAT(key1.a, testing::StrEq("a")); EXPECT_THAT(key1.b, testing::Eq(2)); - auto& key2 = scenarioContext.Get("key2"); + const auto& key2 = scenarioContext.Get("key2"); EXPECT_THAT(key2.a, testing::StrEq("b")); EXPECT_THAT(key2.b, testing::Eq(4)); } @@ -263,11 +259,11 @@ namespace cucumber_cpp auto privateContext = std::make_unique(std::make_shared()); Mock mock; - auto* dkey = privateContext->EmplaceAt("dkey", mock, 1).get(); - auto* ckey = privateContext->EmplaceAt("ckey", mock, 2).get(); - auto* bkey = privateContext->EmplaceAt("bkey", mock, 3).get(); - auto* akey = privateContext->EmplaceAt("akey", mock, 4).get(); - auto* xkey = privateContext->EmplaceAt("xkey", mock, 5).get(); + const auto* dkey = privateContext->EmplaceAt("dkey", mock, 1).get(); + const auto* ckey = privateContext->EmplaceAt("ckey", mock, 2).get(); + const auto* bkey = privateContext->EmplaceAt("bkey", mock, 3).get(); + const auto* akey = privateContext->EmplaceAt("akey", mock, 4).get(); + const auto* xkey = privateContext->EmplaceAt("xkey", mock, 5).get(); testing::InSequence seq; EXPECT_CALL(mock, Deconstructing(ckey)); diff --git a/cucumber_cpp/test/TestHooks.cpp b/cucumber_cpp/test/TestHooks.cpp index 52493dc..96771bd 100644 --- a/cucumber_cpp/test/TestHooks.cpp +++ b/cucumber_cpp/test/TestHooks.cpp @@ -77,10 +77,6 @@ namespace cucumber_cpp Context context{ contextStorage }; }; - TEST_F(TestHooks, Construct) - { - } - TEST_F(TestHooks, UnconditionalStep) { EXPECT_THAT(context.Contains("BeforeAll"), testing::IsFalse()); diff --git a/cucumber_cpp/test/TestSteps.cpp b/cucumber_cpp/test/TestSteps.cpp index 349770b..13d4a34 100644 --- a/cucumber_cpp/test/TestSteps.cpp +++ b/cucumber_cpp/test/TestSteps.cpp @@ -56,10 +56,6 @@ namespace cucumber_cpp StepRegistry& stepRegistry{ StepRegistry::Instance() }; }; - TEST_F(TestSteps, Construct) - { - } - TEST_F(TestSteps, RegisterThroughPreregistration) { EXPECT_THAT(stepRegistry.Size(), testing::Eq(8)); From 3a9cff59ed40e37d7c4de7149fdf13ae9c861b8e Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 12:00:22 +0200 Subject: [PATCH 17/24] Rework directory structure --- .github/workflows/ci.yml | 2 +- CMakeLists.txt | 3 - README.md | 4 +- cucumber_cpp/CMakeLists.txt | 61 ++----------------- cucumber_cpp/example/CMakeLists.txt | 17 ++++++ .../example}/Main.cpp | 2 +- .../example}/features/1very_long.feature | 0 .../example}/features/2simple.feature | 0 .../example}/features/debug.feature | 0 .../example}/fixtures/Fixture.hpp | 0 cucumber_cpp/example/hooks/CMakeLists.txt | 12 ++++ .../example}/hooks/Hooks.cpp | 6 +- .../example}/hooks/TestHooks.cpp | 2 +- cucumber_cpp/example/steps/CMakeLists.txt | 11 ++++ .../example}/steps/Steps.cpp | 4 +- cucumber_cpp/integration_test/CMakeLists.txt | 27 ++++++++ .../integration_test}/Main.cpp | 2 +- .../integration_test}/MainCustom.cpp | 2 +- .../features/subfolder/test1.feature | 0 .../features/subfolder/test2.feature | 0 .../features/test_hooks.feature | 0 .../features/test_keyword_and.feature | 0 .../features/test_keyword_asterisk.feature | 0 .../features/test_keyword_but.feature | 0 .../features/test_scenarios.feature | 0 .../features/test_undefined_success_1.feature | 0 .../features/test_undefined_success_2.feature | 0 .../integration_test/hooks/CMakeLists.txt | 11 ++++ .../integration_test}/hooks/Hooks.cpp | 2 +- .../integration_test/steps/CMakeLists.txt | 11 ++++ .../integration_test}/steps/Steps.cpp | 2 +- .../integration_test}/test.bats | 42 ++++++------- cucumber_cpp/{ => library}/Application.cpp | 20 +++--- cucumber_cpp/{ => library}/Application.hpp | 10 +-- cucumber_cpp/{ => library}/Body.hpp | 2 +- cucumber_cpp/{ => library}/BodyMacro.hpp | 2 +- cucumber_cpp/library/CMakeLists.txt | 57 +++++++++++++++++ cucumber_cpp/{ => library}/Context.hpp | 0 cucumber_cpp/{ => library}/HookRegistry.cpp | 6 +- cucumber_cpp/{ => library}/HookRegistry.hpp | 4 +- cucumber_cpp/{ => library}/HookScopes.cpp | 7 +-- cucumber_cpp/{ => library}/HookScopes.hpp | 4 +- cucumber_cpp/{ => library}/Hooks.hpp | 4 +- cucumber_cpp/{ => library}/InternalError.hpp | 0 .../OnTestPartResultEventListener.cpp | 3 +- .../OnTestPartResultEventListener.hpp | 0 cucumber_cpp/{ => library}/Rtrim.cpp | 2 +- cucumber_cpp/{ => library}/Rtrim.hpp | 0 cucumber_cpp/{ => library}/StepRegistry.cpp | 4 +- cucumber_cpp/{ => library}/StepRegistry.hpp | 4 +- cucumber_cpp/{ => library}/Steps.hpp | 4 +- cucumber_cpp/{ => library}/TagExpression.cpp | 4 +- cucumber_cpp/{ => library}/TagExpression.hpp | 0 cucumber_cpp/{ => library}/TagsToSet.hpp | 0 cucumber_cpp/{ => library}/TraceTime.cpp | 2 +- cucumber_cpp/{ => library}/TraceTime.hpp | 0 .../{ => library}/engine/CMakeLists.txt | 12 ++-- .../{ => library}/engine/ContextManager.cpp | 8 +-- .../{ => library}/engine/ContextManager.hpp | 12 ++-- .../{ => library}/engine/ExecutionEngine.hpp | 2 +- .../{ => library}/engine/FeatureFactory.cpp | 14 ++--- .../{ => library}/engine/FeatureFactory.hpp | 2 +- .../{ => library}/engine/FeatureInfo.cpp | 6 +- .../{ => library}/engine/FeatureInfo.hpp | 4 +- cucumber_cpp/{ => library}/engine/Result.hpp | 0 .../{ => library}/engine/RuleInfo.cpp | 6 +- .../{ => library}/engine/RuleInfo.hpp | 2 +- .../{ => library}/engine/ScenarioInfo.cpp | 8 +-- .../{ => library}/engine/ScenarioInfo.hpp | 4 +- .../{ => library}/engine/StepInfo.cpp | 4 +- .../{ => library}/engine/StepInfo.hpp | 2 +- .../{ => library}/engine/TestRunner.cpp | 22 +++---- .../{ => library}/engine/TestRunner.hpp | 10 +-- cucumber_cpp/library/report/CMakeLists.txt | 19 ++++++ .../{ => library}/report/JunitReport.cpp | 14 ++--- .../{ => library}/report/JunitReport.hpp | 14 ++--- cucumber_cpp/{ => library}/report/Report.cpp | 14 ++--- cucumber_cpp/{ => library}/report/Report.hpp | 12 ++-- .../{ => library}/report/StdOutReport.cpp | 16 ++--- .../{ => library}/report/StdOutReport.hpp | 14 ++--- cucumber_cpp/library/test/CMakeLists.txt | 16 +++++ .../{ => library}/test/TestContext.cpp | 2 +- cucumber_cpp/{ => library}/test/TestHooks.cpp | 6 +- cucumber_cpp/{ => library}/test/TestSteps.cpp | 6 +- .../{ => library}/test/TestTagExpression.cpp | 2 +- cucumber_cpp/report/CMakeLists.txt | 19 ------ cucumber_cpp/runner/CMakeLists.txt | 9 +++ {test => cucumber_cpp/runner}/Main.cpp | 2 +- cucumber_cpp/test/CMakeLists.txt | 18 ------ cucumber_cpp_example/CMakeLists.txt | 17 ------ cucumber_cpp_example/hooks/CMakeLists.txt | 12 ---- cucumber_cpp_example/steps/CMakeLists.txt | 11 ---- cucumber_cpp_runner/CMakeLists.txt | 10 --- test/CMakeLists.txt | 27 -------- test/hooks/CMakeLists.txt | 11 ---- test/steps/CMakeLists.txt | 11 ---- 96 files changed, 379 insertions(+), 383 deletions(-) create mode 100644 cucumber_cpp/example/CMakeLists.txt rename {cucumber_cpp_example => cucumber_cpp/example}/Main.cpp (92%) rename {cucumber_cpp_example => cucumber_cpp/example}/features/1very_long.feature (100%) rename {cucumber_cpp_example => cucumber_cpp/example}/features/2simple.feature (100%) rename {cucumber_cpp_example => cucumber_cpp/example}/features/debug.feature (100%) rename {cucumber_cpp_example => cucumber_cpp/example}/fixtures/Fixture.hpp (100%) create mode 100644 cucumber_cpp/example/hooks/CMakeLists.txt rename {cucumber_cpp_example => cucumber_cpp/example}/hooks/Hooks.cpp (74%) rename {cucumber_cpp_example => cucumber_cpp/example}/hooks/TestHooks.cpp (92%) create mode 100644 cucumber_cpp/example/steps/CMakeLists.txt rename {cucumber_cpp_example => cucumber_cpp/example}/steps/Steps.cpp (95%) create mode 100644 cucumber_cpp/integration_test/CMakeLists.txt rename {cucumber_cpp_runner => cucumber_cpp/integration_test}/Main.cpp (74%) rename {test => cucumber_cpp/integration_test}/MainCustom.cpp (84%) rename {test => cucumber_cpp/integration_test}/features/subfolder/test1.feature (100%) rename {test => cucumber_cpp/integration_test}/features/subfolder/test2.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_hooks.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_keyword_and.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_keyword_asterisk.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_keyword_but.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_scenarios.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_undefined_success_1.feature (100%) rename {test => cucumber_cpp/integration_test}/features/test_undefined_success_2.feature (100%) create mode 100644 cucumber_cpp/integration_test/hooks/CMakeLists.txt rename {test => cucumber_cpp/integration_test}/hooks/Hooks.cpp (92%) create mode 100644 cucumber_cpp/integration_test/steps/CMakeLists.txt rename {test => cucumber_cpp/integration_test}/steps/Steps.cpp (93%) rename {test => cucumber_cpp/integration_test}/test.bats (51%) rename cucumber_cpp/{ => library}/Application.cpp (93%) rename cucumber_cpp/{ => library}/Application.hpp (89%) rename cucumber_cpp/{ => library}/Body.hpp (96%) rename cucumber_cpp/{ => library}/BodyMacro.hpp (98%) create mode 100644 cucumber_cpp/library/CMakeLists.txt rename cucumber_cpp/{ => library}/Context.hpp (100%) rename cucumber_cpp/{ => library}/HookRegistry.cpp (93%) rename cucumber_cpp/{ => library}/HookRegistry.hpp (97%) rename cucumber_cpp/{ => library}/HookScopes.cpp (76%) rename cucumber_cpp/{ => library}/HookScopes.hpp (95%) rename cucumber_cpp/{ => library}/Hooks.hpp (94%) rename cucumber_cpp/{ => library}/InternalError.hpp (100%) rename cucumber_cpp/{ => library}/OnTestPartResultEventListener.cpp (87%) rename cucumber_cpp/{ => library}/OnTestPartResultEventListener.hpp (100%) rename cucumber_cpp/{ => library}/Rtrim.cpp (89%) rename cucumber_cpp/{ => library}/Rtrim.hpp (100%) rename cucumber_cpp/{ => library}/StepRegistry.cpp (98%) rename cucumber_cpp/{ => library}/StepRegistry.hpp (98%) rename cucumber_cpp/{ => library}/Steps.hpp (91%) rename cucumber_cpp/{ => library}/TagExpression.cpp (95%) rename cucumber_cpp/{ => library}/TagExpression.hpp (100%) rename cucumber_cpp/{ => library}/TagsToSet.hpp (100%) rename cucumber_cpp/{ => library}/TraceTime.cpp (90%) rename cucumber_cpp/{ => library}/TraceTime.hpp (100%) rename cucumber_cpp/{ => library}/engine/CMakeLists.txt (52%) rename cucumber_cpp/{ => library}/engine/ContextManager.cpp (89%) rename cucumber_cpp/{ => library}/engine/ContextManager.hpp (91%) rename cucumber_cpp/{ => library}/engine/ExecutionEngine.hpp (86%) rename cucumber_cpp/{ => library}/engine/FeatureFactory.cpp (97%) rename cucumber_cpp/{ => library}/engine/FeatureFactory.hpp (88%) rename cucumber_cpp/{ => library}/engine/FeatureInfo.cpp (90%) rename cucumber_cpp/{ => library}/engine/FeatureInfo.hpp (93%) rename cucumber_cpp/{ => library}/engine/Result.hpp (100%) rename cucumber_cpp/{ => library}/engine/RuleInfo.cpp (87%) rename cucumber_cpp/{ => library}/engine/RuleInfo.hpp (95%) rename cucumber_cpp/{ => library}/engine/ScenarioInfo.cpp (92%) rename cucumber_cpp/{ => library}/engine/ScenarioInfo.hpp (94%) rename cucumber_cpp/{ => library}/engine/StepInfo.cpp (95%) rename cucumber_cpp/{ => library}/engine/StepInfo.hpp (97%) rename cucumber_cpp/{ => library}/engine/TestRunner.cpp (95%) rename cucumber_cpp/{ => library}/engine/TestRunner.hpp (86%) create mode 100644 cucumber_cpp/library/report/CMakeLists.txt rename cucumber_cpp/{ => library}/report/JunitReport.cpp (95%) rename cucumber_cpp/{ => library}/report/JunitReport.hpp (85%) rename cucumber_cpp/{ => library}/report/Report.cpp (91%) rename cucumber_cpp/{ => library}/report/Report.hpp (94%) rename cucumber_cpp/{ => library}/report/StdOutReport.cpp (94%) rename cucumber_cpp/{ => library}/report/StdOutReport.hpp (82%) create mode 100644 cucumber_cpp/library/test/CMakeLists.txt rename cucumber_cpp/{ => library}/test/TestContext.cpp (99%) rename cucumber_cpp/{ => library}/test/TestHooks.cpp (98%) rename cucumber_cpp/{ => library}/test/TestSteps.cpp (96%) rename cucumber_cpp/{ => library}/test/TestTagExpression.cpp (98%) delete mode 100644 cucumber_cpp/report/CMakeLists.txt create mode 100644 cucumber_cpp/runner/CMakeLists.txt rename {test => cucumber_cpp/runner}/Main.cpp (74%) delete mode 100644 cucumber_cpp/test/CMakeLists.txt delete mode 100644 cucumber_cpp_example/CMakeLists.txt delete mode 100644 cucumber_cpp_example/hooks/CMakeLists.txt delete mode 100644 cucumber_cpp_example/steps/CMakeLists.txt delete mode 100644 cucumber_cpp_runner/CMakeLists.txt delete mode 100644 test/CMakeLists.txt delete mode 100644 test/hooks/CMakeLists.txt delete mode 100644 test/steps/CMakeLists.txt diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5801d72..764eeef 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,7 +111,7 @@ jobs: buildPreset: "Host-Debug" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" - run: | - bats --formatter junit test/test.bats | tee test-report.xml + bats --formatter junit cucumber_cpp/integration_test/test.bats | tee test-report.xml - uses: EnricoMi/publish-unit-test-result-action@82082dac68ad6a19d980f8ce817e108b9f496c2a # v2.17.1 if: always() with: diff --git a/CMakeLists.txt b/CMakeLists.txt index ba5265e..6a3a31f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,6 +33,3 @@ include(GoogleTest) add_subdirectory(external) add_subdirectory(cucumber_cpp) -add_subdirectory(cucumber_cpp_runner) -add_subdirectory(cucumber_cpp_example) -add_subdirectory(test) diff --git a/README.md b/README.md index 4cb19d0..5a026dd 100644 --- a/README.md +++ b/README.md @@ -19,8 +19,8 @@ amp-cucumber-cpp-runner is not supposed to be used standalone. It is possible to En example project is provided which shows most features of amp-cucumber-cpp-runner and how to configure a cmake project to use amp-cucumber-cpp-runner. The simplest solution is to simply add a dependency on `cucumber-cpp-runner` like so: `cmake -target_link_libraries(cucumber-cpp-example PRIVATE - cucumber-cpp-runner +target_link_libraries(cucumber_cpp.example PRIVATE + cucumber_cpp.runner ) ` diff --git a/cucumber_cpp/CMakeLists.txt b/cucumber_cpp/CMakeLists.txt index 8f26b5d..3d6bd44 100644 --- a/cucumber_cpp/CMakeLists.txt +++ b/cucumber_cpp/CMakeLists.txt @@ -1,57 +1,4 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber-cpp STATIC ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp PRIVATE - Application.cpp - Application.hpp - BodyMacro.hpp - Body.hpp - Context.hpp - HookRegistry.cpp - HookRegistry.hpp - Hooks.hpp - HookScopes.cpp - HookScopes.hpp - InternalError.hpp - OnTestPartResultEventListener.cpp - OnTestPartResultEventListener.hpp - Rtrim.cpp - Rtrim.hpp - Steps.hpp - StepRegistry.cpp - StepRegistry.hpp - TagExpression.cpp - TagExpression.hpp - TagsToSet.hpp - TraceTime.cpp - TraceTime.hpp -) - -target_include_directories(cucumber-cpp PUBLIC - ./../ -) - -target_link_libraries(cucumber-cpp PUBLIC - gtest - gmock - cucumber_gherkin_lib - cucumber-cpp.report - cucumber-cpp.engine - CLI11 -) - -target_compile_options(cucumber-cpp - PRIVATE - $<$:-Wno-deprecated-declarations> - - PUBLIC - $<$:/Zc:preprocessor> -) - -add_subdirectory(engine) -add_subdirectory(report) - -if (CCR_BUILD_TESTS) - add_subdirectory(test) -endif() +add_subdirectory(library) +add_subdirectory(runner) +add_subdirectory(example) +add_subdirectory(integration_test) diff --git a/cucumber_cpp/example/CMakeLists.txt b/cucumber_cpp/example/CMakeLists.txt new file mode 100644 index 0000000..eb3d0e1 --- /dev/null +++ b/cucumber_cpp/example/CMakeLists.txt @@ -0,0 +1,17 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_executable(cucumber_cpp.example ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.example PRIVATE + fixtures/Fixture.hpp + Main.cpp +) + +target_link_libraries(cucumber_cpp.example PRIVATE + cucumber_cpp.library + cucumber_cpp.example.hooks + cucumber_cpp.example.steps +) + +add_subdirectory(hooks) +add_subdirectory(steps) diff --git a/cucumber_cpp_example/Main.cpp b/cucumber_cpp/example/Main.cpp similarity index 92% rename from cucumber_cpp_example/Main.cpp rename to cucumber_cpp/example/Main.cpp index 7f6dbb1..47d4272 100644 --- a/cucumber_cpp_example/Main.cpp +++ b/cucumber_cpp/example/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Application.hpp" +#include "cucumber_cpp/library/Application.hpp" #include int main(int argc, char** argv) diff --git a/cucumber_cpp_example/features/1very_long.feature b/cucumber_cpp/example/features/1very_long.feature similarity index 100% rename from cucumber_cpp_example/features/1very_long.feature rename to cucumber_cpp/example/features/1very_long.feature diff --git a/cucumber_cpp_example/features/2simple.feature b/cucumber_cpp/example/features/2simple.feature similarity index 100% rename from cucumber_cpp_example/features/2simple.feature rename to cucumber_cpp/example/features/2simple.feature diff --git a/cucumber_cpp_example/features/debug.feature b/cucumber_cpp/example/features/debug.feature similarity index 100% rename from cucumber_cpp_example/features/debug.feature rename to cucumber_cpp/example/features/debug.feature diff --git a/cucumber_cpp_example/fixtures/Fixture.hpp b/cucumber_cpp/example/fixtures/Fixture.hpp similarity index 100% rename from cucumber_cpp_example/fixtures/Fixture.hpp rename to cucumber_cpp/example/fixtures/Fixture.hpp diff --git a/cucumber_cpp/example/hooks/CMakeLists.txt b/cucumber_cpp/example/hooks/CMakeLists.txt new file mode 100644 index 0000000..239b516 --- /dev/null +++ b/cucumber_cpp/example/hooks/CMakeLists.txt @@ -0,0 +1,12 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.example.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.example.hooks PRIVATE + Hooks.cpp + TestHooks.cpp +) + +target_link_libraries(cucumber_cpp.example.hooks PRIVATE + cucumber_cpp.runner +) diff --git a/cucumber_cpp_example/hooks/Hooks.cpp b/cucumber_cpp/example/hooks/Hooks.cpp similarity index 74% rename from cucumber_cpp_example/hooks/Hooks.cpp rename to cucumber_cpp/example/hooks/Hooks.cpp index 93b4e6f..6b5ea83 100644 --- a/cucumber_cpp_example/hooks/Hooks.cpp +++ b/cucumber_cpp/example/hooks/Hooks.cpp @@ -1,6 +1,6 @@ -#include "cucumber_cpp/Hooks.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp_example/fixtures/Fixture.hpp" +#include "cucumber_cpp/library/Hooks.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/example/fixtures/Fixture.hpp" #include #include diff --git a/cucumber_cpp_example/hooks/TestHooks.cpp b/cucumber_cpp/example/hooks/TestHooks.cpp similarity index 92% rename from cucumber_cpp_example/hooks/TestHooks.cpp rename to cucumber_cpp/example/hooks/TestHooks.cpp index e627525..4fb1e62 100644 --- a/cucumber_cpp_example/hooks/TestHooks.cpp +++ b/cucumber_cpp/example/hooks/TestHooks.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Hooks.hpp" +#include "cucumber_cpp/library/Hooks.hpp" #include HOOK_BEFORE_ALL() diff --git a/cucumber_cpp/example/steps/CMakeLists.txt b/cucumber_cpp/example/steps/CMakeLists.txt new file mode 100644 index 0000000..0d39968 --- /dev/null +++ b/cucumber_cpp/example/steps/CMakeLists.txt @@ -0,0 +1,11 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.example.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.example.steps PRIVATE + Steps.cpp +) + +target_link_libraries(cucumber_cpp.example.steps PRIVATE + cucumber_cpp.runner +) diff --git a/cucumber_cpp_example/steps/Steps.cpp b/cucumber_cpp/example/steps/Steps.cpp similarity index 95% rename from cucumber_cpp_example/steps/Steps.cpp rename to cucumber_cpp/example/steps/Steps.cpp index 51a28d4..b7a3482 100644 --- a/cucumber_cpp_example/steps/Steps.cpp +++ b/cucumber_cpp/example/steps/Steps.cpp @@ -1,5 +1,5 @@ -#include "cucumber_cpp/Steps.hpp" -#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/library/Steps.hpp" +#include "cucumber_cpp/library/Context.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber_cpp/integration_test/CMakeLists.txt b/cucumber_cpp/integration_test/CMakeLists.txt new file mode 100644 index 0000000..2882118 --- /dev/null +++ b/cucumber_cpp/integration_test/CMakeLists.txt @@ -0,0 +1,27 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_executable(cucumber_cpp.integration_test ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.integration_test PRIVATE + Main.cpp +) +target_link_libraries(cucumber_cpp.integration_test PRIVATE + cucumber_cpp.library + cucumber_cpp.integration_test.hooks + cucumber_cpp.integration_test.steps +) + +add_executable(cucumber_cpp.integration_test.custom ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.integration_test.custom PRIVATE + MainCustom.cpp +) + +target_link_libraries(cucumber_cpp.integration_test.custom PRIVATE + cucumber_cpp.library + cucumber_cpp.integration_test.hooks + cucumber_cpp.integration_test.steps +) + +add_subdirectory(hooks) +add_subdirectory(steps) diff --git a/cucumber_cpp_runner/Main.cpp b/cucumber_cpp/integration_test/Main.cpp similarity index 74% rename from cucumber_cpp_runner/Main.cpp rename to cucumber_cpp/integration_test/Main.cpp index 2f4f7d2..6544911 100644 --- a/cucumber_cpp_runner/Main.cpp +++ b/cucumber_cpp/integration_test/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Application.hpp" +#include "cucumber_cpp/library/Application.hpp" #include int main(int argc, char** argv) diff --git a/test/MainCustom.cpp b/cucumber_cpp/integration_test/MainCustom.cpp similarity index 84% rename from test/MainCustom.cpp rename to cucumber_cpp/integration_test/MainCustom.cpp index a61e017..d21094f 100644 --- a/test/MainCustom.cpp +++ b/cucumber_cpp/integration_test/MainCustom.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Application.hpp" +#include "cucumber_cpp/library/Application.hpp" #include int main(int argc, char** argv) diff --git a/test/features/subfolder/test1.feature b/cucumber_cpp/integration_test/features/subfolder/test1.feature similarity index 100% rename from test/features/subfolder/test1.feature rename to cucumber_cpp/integration_test/features/subfolder/test1.feature diff --git a/test/features/subfolder/test2.feature b/cucumber_cpp/integration_test/features/subfolder/test2.feature similarity index 100% rename from test/features/subfolder/test2.feature rename to cucumber_cpp/integration_test/features/subfolder/test2.feature diff --git a/test/features/test_hooks.feature b/cucumber_cpp/integration_test/features/test_hooks.feature similarity index 100% rename from test/features/test_hooks.feature rename to cucumber_cpp/integration_test/features/test_hooks.feature diff --git a/test/features/test_keyword_and.feature b/cucumber_cpp/integration_test/features/test_keyword_and.feature similarity index 100% rename from test/features/test_keyword_and.feature rename to cucumber_cpp/integration_test/features/test_keyword_and.feature diff --git a/test/features/test_keyword_asterisk.feature b/cucumber_cpp/integration_test/features/test_keyword_asterisk.feature similarity index 100% rename from test/features/test_keyword_asterisk.feature rename to cucumber_cpp/integration_test/features/test_keyword_asterisk.feature diff --git a/test/features/test_keyword_but.feature b/cucumber_cpp/integration_test/features/test_keyword_but.feature similarity index 100% rename from test/features/test_keyword_but.feature rename to cucumber_cpp/integration_test/features/test_keyword_but.feature diff --git a/test/features/test_scenarios.feature b/cucumber_cpp/integration_test/features/test_scenarios.feature similarity index 100% rename from test/features/test_scenarios.feature rename to cucumber_cpp/integration_test/features/test_scenarios.feature diff --git a/test/features/test_undefined_success_1.feature b/cucumber_cpp/integration_test/features/test_undefined_success_1.feature similarity index 100% rename from test/features/test_undefined_success_1.feature rename to cucumber_cpp/integration_test/features/test_undefined_success_1.feature diff --git a/test/features/test_undefined_success_2.feature b/cucumber_cpp/integration_test/features/test_undefined_success_2.feature similarity index 100% rename from test/features/test_undefined_success_2.feature rename to cucumber_cpp/integration_test/features/test_undefined_success_2.feature diff --git a/cucumber_cpp/integration_test/hooks/CMakeLists.txt b/cucumber_cpp/integration_test/hooks/CMakeLists.txt new file mode 100644 index 0000000..1bfd3c5 --- /dev/null +++ b/cucumber_cpp/integration_test/hooks/CMakeLists.txt @@ -0,0 +1,11 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.integration_test.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.integration_test.hooks PRIVATE + Hooks.cpp +) + +target_link_libraries(cucumber_cpp.integration_test.hooks PRIVATE + cucumber_cpp.library +) diff --git a/test/hooks/Hooks.cpp b/cucumber_cpp/integration_test/hooks/Hooks.cpp similarity index 92% rename from test/hooks/Hooks.cpp rename to cucumber_cpp/integration_test/hooks/Hooks.cpp index e627525..4fb1e62 100644 --- a/test/hooks/Hooks.cpp +++ b/cucumber_cpp/integration_test/hooks/Hooks.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Hooks.hpp" +#include "cucumber_cpp/library/Hooks.hpp" #include HOOK_BEFORE_ALL() diff --git a/cucumber_cpp/integration_test/steps/CMakeLists.txt b/cucumber_cpp/integration_test/steps/CMakeLists.txt new file mode 100644 index 0000000..0c21416 --- /dev/null +++ b/cucumber_cpp/integration_test/steps/CMakeLists.txt @@ -0,0 +1,11 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.integration_test.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.integration_test.steps PRIVATE + Steps.cpp +) + +target_link_libraries(cucumber_cpp.integration_test.steps PRIVATE + cucumber_cpp.library +) diff --git a/test/steps/Steps.cpp b/cucumber_cpp/integration_test/steps/Steps.cpp similarity index 93% rename from test/steps/Steps.cpp rename to cucumber_cpp/integration_test/steps/Steps.cpp index d97d763..d99daf4 100644 --- a/test/steps/Steps.cpp +++ b/cucumber_cpp/integration_test/steps/Steps.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Steps.hpp" +#include "cucumber_cpp/library/Steps.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/test/test.bats b/cucumber_cpp/integration_test/test.bats similarity index 51% rename from test/test.bats rename to cucumber_cpp/integration_test/test.bats index cb40c5b..5fb68d0 100644 --- a/test/test.bats +++ b/cucumber_cpp/integration_test/test.bats @@ -10,72 +10,72 @@ teardown() { } @test "Successful test" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag "@result:OK" --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:OK" --feature test/features --report console assert_success } @test "Parse tag expression" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag @smoke @result:OK --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag @smoke @result:OK --feature test/features --report console assert_success } @test "Failed tests" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag "@result:FAILED" --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:FAILED" --feature test/features --report console assert_failure assert_output --partial "failed \"test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "Undefined tests" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag "@result:UNDEFINED" --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:UNDEFINED" --feature test/features --report console assert_failure assert_output --partial "undefined \"test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "No tests" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag "@invalidtag" --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@invalidtag" --feature test/features --report console assert_success } @test "All features in a folder" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features/subfolder --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features/subfolder --report console assert_success assert_output --partial "test1 scenario" assert_output --partial "test2 scenario" } @test "Missing mandatory feature argument" { - run .build/Host/test/Debug/cucumber-cpp-test run --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --report console assert_failure assert_output --partial "--feature is required" } @test "Missing mandatory report argument" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features assert_failure assert_output --partial "--report is required" } @test "Missing mandatory custom argument" { - run .build/Host/test/Debug/cucumber-cpp-test-custom run --feature test/features --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test-custom run --feature test/features --report console assert_failure assert_output --partial "--required is required" } @test "Second feature file does not overwrite success with an undefined status" { - run .build/Host/test/Debug/cucumber-cpp-test run --tag "@undefinedsuccess and @result:success" --feature test/features/test_undefined_success_1.feature test/features/test_undefined_success_2.feature --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@undefinedsuccess and @result:success" --feature test/features/test_undefined_success_1.feature test/features/test_undefined_success_2.feature --report console assert_success } @test "Valid reporters only" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --report doesnotexist + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --report doesnotexist assert_failure assert_output --partial "--report: 'doesnotexist' is not a reporter" } @test "Run Program hooks" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag @bats --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats --report console assert_success assert_output --partial "HOOK_BEFORE_ALL" @@ -83,7 +83,7 @@ teardown() { } @test "Run Scenario hooks" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag @bats and @scenariohook and not @stephook --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats and @scenariohook and not @stephook --report console assert_success assert_output --partial "HOOK_BEFORE_SCENARIO" @@ -94,7 +94,7 @@ teardown() { } @test "Run Step hooks" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag @bats and @stephook and not @scenariohook --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats and @stephook and not @scenariohook --report console assert_success refute_output --partial "HOOK_BEFORE_SCENARIO" @@ -105,7 +105,7 @@ teardown() { } @test "Run Scenario and Step hooks" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@bats and (@scenariohook or @stephook)" --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@bats and (@scenariohook or @stephook)" --report console assert_success assert_output --partial "HOOK_BEFORE_SCENARIO" @@ -116,35 +116,35 @@ teardown() { } @test "Dry run with known failing steps" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@result:FAILED" --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:FAILED" --report console assert_failure - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@result:FAILED" --report console --dry + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:FAILED" --report console --dry assert_success } @test "Dry run with known missing steps" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@result:UNDEFINED" --report console --dry + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:UNDEFINED" --report console --dry assert_failure assert_output --partial "undefined \"test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "Test the and keyword" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@keyword-and" --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-and" --report console assert_success assert_output --partial "--when--" assert_output --partial "--and--" } @test "Test the but keyword" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@keyword-but" --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-but" --report console assert_success assert_output --partial "--when--" assert_output --partial "--but--" } @test "Test the asterisk keyword - will fail" { - run .build/Host/test/Debug/cucumber-cpp-test run --feature test/features --tag "@keyword-asterisk" --report console + run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-asterisk" --report console assert_failure } diff --git a/cucumber_cpp/Application.cpp b/cucumber_cpp/library/Application.cpp similarity index 93% rename from cucumber_cpp/Application.cpp rename to cucumber_cpp/library/Application.cpp index abe7d1e..8183142 100644 --- a/cucumber_cpp/Application.cpp +++ b/cucumber_cpp/library/Application.cpp @@ -1,13 +1,13 @@ -#include "cucumber_cpp/Application.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/engine/ContextManager.hpp" -#include "cucumber_cpp/engine/FeatureFactory.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/TestRunner.hpp" -#include "cucumber_cpp/report/JunitReport.hpp" -#include "cucumber_cpp/report/Report.hpp" -#include "cucumber_cpp/report/StdOutReport.hpp" +#include "cucumber_cpp/library/Application.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/engine/ContextManager.hpp" +#include "cucumber_cpp/library/engine/FeatureFactory.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/TestRunner.hpp" +#include "cucumber_cpp/library/report/JunitReport.hpp" +#include "cucumber_cpp/library/report/Report.hpp" +#include "cucumber_cpp/library/report/StdOutReport.hpp" #include #include #include diff --git a/cucumber_cpp/Application.hpp b/cucumber_cpp/library/Application.hpp similarity index 89% rename from cucumber_cpp/Application.hpp rename to cucumber_cpp/library/Application.hpp index 1371b36..d40a75a 100644 --- a/cucumber_cpp/Application.hpp +++ b/cucumber_cpp/library/Application.hpp @@ -2,11 +2,11 @@ #define CUCUMBER_CPP_APPLICATION_HPP #include "cucumber/gherkin/app.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/engine/ContextManager.hpp" -#include "cucumber_cpp/engine/FeatureFactory.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/engine/ContextManager.hpp" +#include "cucumber_cpp/library/engine/FeatureFactory.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/report/Report.hpp" #include #include #include diff --git a/cucumber_cpp/Body.hpp b/cucumber_cpp/library/Body.hpp similarity index 96% rename from cucumber_cpp/Body.hpp rename to cucumber_cpp/library/Body.hpp index 1ca34ea..c70b5cd 100644 --- a/cucumber_cpp/Body.hpp +++ b/cucumber_cpp/library/Body.hpp @@ -1,7 +1,7 @@ #ifndef CUCUMBER_CPP_BODY_HPP #define CUCUMBER_CPP_BODY_HPP -#include "cucumber_cpp/InternalError.hpp" +#include "cucumber_cpp/library/InternalError.hpp" #include #include #include diff --git a/cucumber_cpp/BodyMacro.hpp b/cucumber_cpp/library/BodyMacro.hpp similarity index 98% rename from cucumber_cpp/BodyMacro.hpp rename to cucumber_cpp/library/BodyMacro.hpp index f855eed..2596beb 100644 --- a/cucumber_cpp/BodyMacro.hpp +++ b/cucumber_cpp/library/BodyMacro.hpp @@ -1,7 +1,7 @@ #ifndef CUCUMBER_CPP_BODYMACRO_HPP #define CUCUMBER_CPP_BODYMACRO_HPP -#include "cucumber_cpp/Body.hpp" +#include "cucumber_cpp/library/Body.hpp" #define BODY_MATCHER(matcher, ...) matcher #define BODY_ARGS(matcher, args, ...) args diff --git a/cucumber_cpp/library/CMakeLists.txt b/cucumber_cpp/library/CMakeLists.txt new file mode 100644 index 0000000..df11c15 --- /dev/null +++ b/cucumber_cpp/library/CMakeLists.txt @@ -0,0 +1,57 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.library STATIC ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.library PRIVATE + Application.cpp + Application.hpp + BodyMacro.hpp + Body.hpp + Context.hpp + HookRegistry.cpp + HookRegistry.hpp + Hooks.hpp + HookScopes.cpp + HookScopes.hpp + InternalError.hpp + OnTestPartResultEventListener.cpp + OnTestPartResultEventListener.hpp + Rtrim.cpp + Rtrim.hpp + Steps.hpp + StepRegistry.cpp + StepRegistry.hpp + TagExpression.cpp + TagExpression.hpp + TagsToSet.hpp + TraceTime.cpp + TraceTime.hpp +) + +target_include_directories(cucumber_cpp.library PUBLIC + ../.. +) + +target_link_libraries(cucumber_cpp.library PUBLIC + gtest + gmock + cucumber_gherkin_lib + cucumber_cpp.library.report + cucumber_cpp.library.engine + CLI11 +) + +target_compile_options(cucumber_cpp.library + PRIVATE + $<$:-Wno-deprecated-declarations> + + PUBLIC + $<$:/Zc:preprocessor> +) + +add_subdirectory(engine) +add_subdirectory(report) + +if (CCR_BUILD_TESTS) + add_subdirectory(test) +endif() diff --git a/cucumber_cpp/Context.hpp b/cucumber_cpp/library/Context.hpp similarity index 100% rename from cucumber_cpp/Context.hpp rename to cucumber_cpp/library/Context.hpp diff --git a/cucumber_cpp/HookRegistry.cpp b/cucumber_cpp/library/HookRegistry.cpp similarity index 93% rename from cucumber_cpp/HookRegistry.cpp rename to cucumber_cpp/library/HookRegistry.cpp index 4e4f848..c5bb6f0 100644 --- a/cucumber_cpp/HookRegistry.cpp +++ b/cucumber_cpp/library/HookRegistry.cpp @@ -1,7 +1,7 @@ -#include "cucumber_cpp/HookRegistry.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/TagExpression.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/TagExpression.hpp" #include #include #include diff --git a/cucumber_cpp/HookRegistry.hpp b/cucumber_cpp/library/HookRegistry.hpp similarity index 97% rename from cucumber_cpp/HookRegistry.hpp rename to cucumber_cpp/library/HookRegistry.hpp index 3fa9bbb..77f892a 100644 --- a/cucumber_cpp/HookRegistry.hpp +++ b/cucumber_cpp/library/HookRegistry.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKREGISTRY_HPP #define CUCUMBER_CPP_HOOKREGISTRY_HPP -#include "cucumber_cpp/Body.hpp" -#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/library/Body.hpp" +#include "cucumber_cpp/library/Context.hpp" #include #include #include diff --git a/cucumber_cpp/HookScopes.cpp b/cucumber_cpp/library/HookScopes.cpp similarity index 76% rename from cucumber_cpp/HookScopes.cpp rename to cucumber_cpp/library/HookScopes.cpp index b0aa2b8..9ffebcb 100644 --- a/cucumber_cpp/HookScopes.cpp +++ b/cucumber_cpp/library/HookScopes.cpp @@ -1,7 +1,6 @@ - -#include "cucumber_cpp/HookScopes.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/library/HookScopes.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" #include #include #include diff --git a/cucumber_cpp/HookScopes.hpp b/cucumber_cpp/library/HookScopes.hpp similarity index 95% rename from cucumber_cpp/HookScopes.hpp rename to cucumber_cpp/library/HookScopes.hpp index 621334b..f1b8f74 100644 --- a/cucumber_cpp/HookScopes.hpp +++ b/cucumber_cpp/library/HookScopes.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKSCOPES_HPP #define CUCUMBER_CPP_HOOKSCOPES_HPP -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" #include #include #include diff --git a/cucumber_cpp/Hooks.hpp b/cucumber_cpp/library/Hooks.hpp similarity index 94% rename from cucumber_cpp/Hooks.hpp rename to cucumber_cpp/library/Hooks.hpp index 2d0ebdb..f0eb0ed 100644 --- a/cucumber_cpp/Hooks.hpp +++ b/cucumber_cpp/library/Hooks.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_HOOKS_HPP #define CUCUMBER_CPP_HOOKS_HPP -#include "cucumber_cpp/BodyMacro.hpp" -#include "cucumber_cpp/HookRegistry.hpp" +#include "cucumber_cpp/library/BodyMacro.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" #define HOOK_(matcher, type) BODY(matcher, type, (), HookRegistry::Register, cucumber_cpp::HookBase) diff --git a/cucumber_cpp/InternalError.hpp b/cucumber_cpp/library/InternalError.hpp similarity index 100% rename from cucumber_cpp/InternalError.hpp rename to cucumber_cpp/library/InternalError.hpp diff --git a/cucumber_cpp/OnTestPartResultEventListener.cpp b/cucumber_cpp/library/OnTestPartResultEventListener.cpp similarity index 87% rename from cucumber_cpp/OnTestPartResultEventListener.cpp rename to cucumber_cpp/library/OnTestPartResultEventListener.cpp index 2524203..cfa4beb 100644 --- a/cucumber_cpp/OnTestPartResultEventListener.cpp +++ b/cucumber_cpp/library/OnTestPartResultEventListener.cpp @@ -1,5 +1,4 @@ - -#include "cucumber_cpp/OnTestPartResultEventListener.hpp" +#include "cucumber_cpp/library/OnTestPartResultEventListener.hpp" #include #include diff --git a/cucumber_cpp/OnTestPartResultEventListener.hpp b/cucumber_cpp/library/OnTestPartResultEventListener.hpp similarity index 100% rename from cucumber_cpp/OnTestPartResultEventListener.hpp rename to cucumber_cpp/library/OnTestPartResultEventListener.hpp diff --git a/cucumber_cpp/Rtrim.cpp b/cucumber_cpp/library/Rtrim.cpp similarity index 89% rename from cucumber_cpp/Rtrim.cpp rename to cucumber_cpp/library/Rtrim.cpp index cb3b75d..c4f3e14 100644 --- a/cucumber_cpp/Rtrim.cpp +++ b/cucumber_cpp/library/Rtrim.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Rtrim.hpp" +#include "cucumber_cpp/library/Rtrim.hpp" #include #include #include diff --git a/cucumber_cpp/Rtrim.hpp b/cucumber_cpp/library/Rtrim.hpp similarity index 100% rename from cucumber_cpp/Rtrim.hpp rename to cucumber_cpp/library/Rtrim.hpp diff --git a/cucumber_cpp/StepRegistry.cpp b/cucumber_cpp/library/StepRegistry.cpp similarity index 98% rename from cucumber_cpp/StepRegistry.cpp rename to cucumber_cpp/library/StepRegistry.cpp index ffc3009..131c9fb 100644 --- a/cucumber_cpp/StepRegistry.cpp +++ b/cucumber_cpp/library/StepRegistry.cpp @@ -1,5 +1,5 @@ -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/Context.hpp" #include #include #include diff --git a/cucumber_cpp/StepRegistry.hpp b/cucumber_cpp/library/StepRegistry.hpp similarity index 98% rename from cucumber_cpp/StepRegistry.hpp rename to cucumber_cpp/library/StepRegistry.hpp index 83e2266..a1dce35 100644 --- a/cucumber_cpp/StepRegistry.hpp +++ b/cucumber_cpp/library/StepRegistry.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_STEPREGISTRY_HPP #define CUCUMBER_CPP_STEPREGISTRY_HPP -#include "cucumber_cpp/Body.hpp" -#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/library/Body.hpp" +#include "cucumber_cpp/library/Context.hpp" #include #include #include diff --git a/cucumber_cpp/Steps.hpp b/cucumber_cpp/library/Steps.hpp similarity index 91% rename from cucumber_cpp/Steps.hpp rename to cucumber_cpp/library/Steps.hpp index b708668..8c14b50 100644 --- a/cucumber_cpp/Steps.hpp +++ b/cucumber_cpp/library/Steps.hpp @@ -1,8 +1,8 @@ #ifndef CUCUMBER_CPP_STEPSMACRO_HPP #define CUCUMBER_CPP_STEPSMACRO_HPP -#include "cucumber_cpp/BodyMacro.hpp" -#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/library/BodyMacro.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" #define STEP_(matcher, type, args, fixture) BODY(matcher, type, args, StepRegistry::Register, fixture) diff --git a/cucumber_cpp/TagExpression.cpp b/cucumber_cpp/library/TagExpression.cpp similarity index 95% rename from cucumber_cpp/TagExpression.cpp rename to cucumber_cpp/library/TagExpression.cpp index 29e924c..36fe1dc 100644 --- a/cucumber_cpp/TagExpression.cpp +++ b/cucumber_cpp/library/TagExpression.cpp @@ -1,5 +1,5 @@ -#include "cucumber_cpp/TagExpression.hpp" -#include "cucumber_cpp/InternalError.hpp" +#include "cucumber_cpp/library/TagExpression.hpp" +#include "cucumber_cpp/library/InternalError.hpp" #include #include #include diff --git a/cucumber_cpp/TagExpression.hpp b/cucumber_cpp/library/TagExpression.hpp similarity index 100% rename from cucumber_cpp/TagExpression.hpp rename to cucumber_cpp/library/TagExpression.hpp diff --git a/cucumber_cpp/TagsToSet.hpp b/cucumber_cpp/library/TagsToSet.hpp similarity index 100% rename from cucumber_cpp/TagsToSet.hpp rename to cucumber_cpp/library/TagsToSet.hpp diff --git a/cucumber_cpp/TraceTime.cpp b/cucumber_cpp/library/TraceTime.cpp similarity index 90% rename from cucumber_cpp/TraceTime.cpp rename to cucumber_cpp/library/TraceTime.cpp index 8b80560..34f8691 100644 --- a/cucumber_cpp/TraceTime.cpp +++ b/cucumber_cpp/library/TraceTime.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/TraceTime.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" #include namespace cucumber_cpp diff --git a/cucumber_cpp/TraceTime.hpp b/cucumber_cpp/library/TraceTime.hpp similarity index 100% rename from cucumber_cpp/TraceTime.hpp rename to cucumber_cpp/library/TraceTime.hpp diff --git a/cucumber_cpp/engine/CMakeLists.txt b/cucumber_cpp/library/engine/CMakeLists.txt similarity index 52% rename from cucumber_cpp/engine/CMakeLists.txt rename to cucumber_cpp/library/engine/CMakeLists.txt index 3abfa16..177c48e 100644 --- a/cucumber_cpp/engine/CMakeLists.txt +++ b/cucumber_cpp/library/engine/CMakeLists.txt @@ -1,6 +1,6 @@ -add_library(cucumber-cpp.engine STATIC ${CCR_EXCLUDE_FROM_ALL}) +add_library(cucumber_cpp.library.engine STATIC ${CCR_EXCLUDE_FROM_ALL}) -target_sources(cucumber-cpp.engine PRIVATE +target_sources(cucumber_cpp.library.engine PRIVATE ContextManager.cpp ContextManager.hpp ExecutionEngine.hpp @@ -18,10 +18,10 @@ target_sources(cucumber-cpp.engine PRIVATE TestRunner.hpp ) -target_include_directories(cucumber-cpp.engine PUBLIC - ./../../ +target_include_directories(cucumber_cpp.library.engine PUBLIC + ../../.. ) -target_link_libraries(cucumber-cpp.engine PUBLIC - cucumber-cpp +target_link_libraries(cucumber_cpp.library.engine PUBLIC + cucumber_cpp.library ) diff --git a/cucumber_cpp/engine/ContextManager.cpp b/cucumber_cpp/library/engine/ContextManager.cpp similarity index 89% rename from cucumber_cpp/engine/ContextManager.cpp rename to cucumber_cpp/library/engine/ContextManager.cpp index 3868b60..7e12037 100644 --- a/cucumber_cpp/engine/ContextManager.cpp +++ b/cucumber_cpp/library/engine/ContextManager.cpp @@ -1,7 +1,7 @@ -#include "cucumber_cpp/engine/ContextManager.hpp" -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/Result.hpp" +#include "cucumber_cpp/library/engine/ContextManager.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" #include #include diff --git a/cucumber_cpp/engine/ContextManager.hpp b/cucumber_cpp/library/engine/ContextManager.hpp similarity index 91% rename from cucumber_cpp/engine/ContextManager.hpp rename to cucumber_cpp/library/engine/ContextManager.hpp index 2b7e952..643ffa1 100644 --- a/cucumber_cpp/engine/ContextManager.hpp +++ b/cucumber_cpp/library/engine/ContextManager.hpp @@ -1,12 +1,12 @@ #ifndef ENGINE_CONTEXTMANAGER_HPP #define ENGINE_CONTEXTMANAGER_HPP -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include diff --git a/cucumber_cpp/engine/ExecutionEngine.hpp b/cucumber_cpp/library/engine/ExecutionEngine.hpp similarity index 86% rename from cucumber_cpp/engine/ExecutionEngine.hpp rename to cucumber_cpp/library/engine/ExecutionEngine.hpp index 24293c6..902a263 100644 --- a/cucumber_cpp/engine/ExecutionEngine.hpp +++ b/cucumber_cpp/library/engine/ExecutionEngine.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_EXECUTIONENGINE_HPP #define ENGINE_EXECUTIONENGINE_HPP -#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" #include #include diff --git a/cucumber_cpp/engine/FeatureFactory.cpp b/cucumber_cpp/library/engine/FeatureFactory.cpp similarity index 97% rename from cucumber_cpp/engine/FeatureFactory.cpp rename to cucumber_cpp/library/engine/FeatureFactory.cpp index d3daf0e..90fe063 100644 --- a/cucumber_cpp/engine/FeatureFactory.cpp +++ b/cucumber_cpp/library/engine/FeatureFactory.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/engine/FeatureFactory.hpp" +#include "cucumber_cpp/library/engine/FeatureFactory.hpp" #include "cucumber/gherkin/app.hpp" #include "cucumber/gherkin/file.hpp" #include "cucumber/gherkin/parse_error.hpp" @@ -13,12 +13,12 @@ #include "cucumber/messages/scenario.hpp" #include "cucumber/messages/step.hpp" #include "cucumber/messages/tag.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/TagExpression.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/TagExpression.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/FeatureFactory.hpp b/cucumber_cpp/library/engine/FeatureFactory.hpp similarity index 88% rename from cucumber_cpp/engine/FeatureFactory.hpp rename to cucumber_cpp/library/engine/FeatureFactory.hpp index c7e73e8..e345586 100644 --- a/cucumber_cpp/engine/FeatureFactory.hpp +++ b/cucumber_cpp/library/engine/FeatureFactory.hpp @@ -2,7 +2,7 @@ #define ENGINE_FEATUREFACTORY_HPP #include "cucumber/gherkin/app.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/FeatureInfo.cpp b/cucumber_cpp/library/engine/FeatureInfo.cpp similarity index 90% rename from cucumber_cpp/engine/FeatureInfo.cpp rename to cucumber_cpp/library/engine/FeatureInfo.cpp index d540354..47ad553 100644 --- a/cucumber_cpp/engine/FeatureInfo.cpp +++ b/cucumber_cpp/library/engine/FeatureInfo.cpp @@ -1,6 +1,6 @@ -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/FeatureInfo.hpp b/cucumber_cpp/library/engine/FeatureInfo.hpp similarity index 93% rename from cucumber_cpp/engine/FeatureInfo.hpp rename to cucumber_cpp/library/engine/FeatureInfo.hpp index aae98af..633337d 100644 --- a/cucumber_cpp/engine/FeatureInfo.hpp +++ b/cucumber_cpp/library/engine/FeatureInfo.hpp @@ -1,8 +1,8 @@ #ifndef ENGINE_FEATUREINFO_HPP #define ENGINE_FEATUREINFO_HPP -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/Result.hpp b/cucumber_cpp/library/engine/Result.hpp similarity index 100% rename from cucumber_cpp/engine/Result.hpp rename to cucumber_cpp/library/engine/Result.hpp diff --git a/cucumber_cpp/engine/RuleInfo.cpp b/cucumber_cpp/library/engine/RuleInfo.cpp similarity index 87% rename from cucumber_cpp/engine/RuleInfo.cpp rename to cucumber_cpp/library/engine/RuleInfo.cpp index 7b45a7a..3e8b1ae 100644 --- a/cucumber_cpp/engine/RuleInfo.cpp +++ b/cucumber_cpp/library/engine/RuleInfo.cpp @@ -1,6 +1,6 @@ -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/RuleInfo.hpp b/cucumber_cpp/library/engine/RuleInfo.hpp similarity index 95% rename from cucumber_cpp/engine/RuleInfo.hpp rename to cucumber_cpp/library/engine/RuleInfo.hpp index 0eb1211..e486091 100644 --- a/cucumber_cpp/engine/RuleInfo.hpp +++ b/cucumber_cpp/library/engine/RuleInfo.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_RULEINFO_HPP #define ENGINE_RULEINFO_HPP -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/ScenarioInfo.cpp b/cucumber_cpp/library/engine/ScenarioInfo.cpp similarity index 92% rename from cucumber_cpp/engine/ScenarioInfo.cpp rename to cucumber_cpp/library/engine/ScenarioInfo.cpp index 1264333..df4712a 100644 --- a/cucumber_cpp/engine/ScenarioInfo.cpp +++ b/cucumber_cpp/library/engine/ScenarioInfo.cpp @@ -1,7 +1,7 @@ -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/ScenarioInfo.hpp b/cucumber_cpp/library/engine/ScenarioInfo.hpp similarity index 94% rename from cucumber_cpp/engine/ScenarioInfo.hpp rename to cucumber_cpp/library/engine/ScenarioInfo.hpp index d973ffe..5823eb1 100644 --- a/cucumber_cpp/engine/ScenarioInfo.hpp +++ b/cucumber_cpp/library/engine/ScenarioInfo.hpp @@ -1,8 +1,8 @@ #ifndef ENGINE_SCENARIOINFO_HPP #define ENGINE_SCENARIOINFO_HPP -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/engine/StepInfo.cpp b/cucumber_cpp/library/engine/StepInfo.cpp similarity index 95% rename from cucumber_cpp/engine/StepInfo.cpp rename to cucumber_cpp/library/engine/StepInfo.cpp index ac3433e..c4356f2 100644 --- a/cucumber_cpp/engine/StepInfo.cpp +++ b/cucumber_cpp/library/engine/StepInfo.cpp @@ -1,5 +1,5 @@ -#include "cucumber_cpp/engine/StepInfo.hpp" -#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" #include #include #include diff --git a/cucumber_cpp/engine/StepInfo.hpp b/cucumber_cpp/library/engine/StepInfo.hpp similarity index 97% rename from cucumber_cpp/engine/StepInfo.hpp rename to cucumber_cpp/library/engine/StepInfo.hpp index 5ea52a8..6603030 100644 --- a/cucumber_cpp/engine/StepInfo.hpp +++ b/cucumber_cpp/library/engine/StepInfo.hpp @@ -1,7 +1,7 @@ #ifndef ENGINE_STEPINFO_HPP #define ENGINE_STEPINFO_HPP -#include "cucumber_cpp/StepRegistry.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" #include #include #include diff --git a/cucumber_cpp/engine/TestRunner.cpp b/cucumber_cpp/library/engine/TestRunner.cpp similarity index 95% rename from cucumber_cpp/engine/TestRunner.cpp rename to cucumber_cpp/library/engine/TestRunner.cpp index 579d50b..1d4b337 100644 --- a/cucumber_cpp/engine/TestRunner.cpp +++ b/cucumber_cpp/library/engine/TestRunner.cpp @@ -1,15 +1,15 @@ -#include "cucumber_cpp/engine/TestRunner.hpp" -#include "cucumber_cpp/HookRegistry.hpp" -#include "cucumber_cpp/OnTestPartResultEventListener.hpp" -#include "cucumber_cpp/Rtrim.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/engine/ContextManager.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" -#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/library/engine/TestRunner.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" +#include "cucumber_cpp/library/OnTestPartResultEventListener.hpp" +#include "cucumber_cpp/library/Rtrim.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/engine/ContextManager.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/Report.hpp" #include "gtest/gtest.h" #include #include diff --git a/cucumber_cpp/engine/TestRunner.hpp b/cucumber_cpp/library/engine/TestRunner.hpp similarity index 86% rename from cucumber_cpp/engine/TestRunner.hpp rename to cucumber_cpp/library/engine/TestRunner.hpp index 544c996..8d01c5e 100644 --- a/cucumber_cpp/engine/TestRunner.hpp +++ b/cucumber_cpp/library/engine/TestRunner.hpp @@ -1,11 +1,11 @@ #ifndef ENGINE_TESTRUNNER_HPP #define ENGINE_TESTRUNNER_HPP -#include "cucumber_cpp/HookRegistry.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/engine/ContextManager.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/engine/ContextManager.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/library/report/CMakeLists.txt b/cucumber_cpp/library/report/CMakeLists.txt new file mode 100644 index 0000000..ca8ac74 --- /dev/null +++ b/cucumber_cpp/library/report/CMakeLists.txt @@ -0,0 +1,19 @@ +add_library(cucumber_cpp.library.report STATIC ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.library.report PRIVATE + JunitReport.cpp + JunitReport.hpp + Report.cpp + Report.hpp + StdOutReport.cpp + StdOutReport.hpp +) + +target_include_directories(cucumber_cpp.library.report PUBLIC + ../../.. +) + +target_link_libraries(cucumber_cpp.library.report PUBLIC + pugixml + cucumber_cpp.library +) diff --git a/cucumber_cpp/report/JunitReport.cpp b/cucumber_cpp/library/report/JunitReport.cpp similarity index 95% rename from cucumber_cpp/report/JunitReport.cpp rename to cucumber_cpp/library/report/JunitReport.cpp index 6fcad32..f20448e 100644 --- a/cucumber_cpp/report/JunitReport.cpp +++ b/cucumber_cpp/library/report/JunitReport.cpp @@ -1,11 +1,11 @@ -#include "cucumber_cpp/report/JunitReport.hpp" -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/JunitReport.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/report/JunitReport.hpp b/cucumber_cpp/library/report/JunitReport.hpp similarity index 85% rename from cucumber_cpp/report/JunitReport.hpp rename to cucumber_cpp/library/report/JunitReport.hpp index ecf0e1d..c21a015 100644 --- a/cucumber_cpp/report/JunitReport.hpp +++ b/cucumber_cpp/library/report/JunitReport.hpp @@ -1,13 +1,13 @@ #ifndef REPORT_JUNITREPORT_HPP #define REPORT_JUNITREPORT_HPP -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" -#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/Report.hpp" #include "pugixml.hpp" #include #include diff --git a/cucumber_cpp/report/Report.cpp b/cucumber_cpp/library/report/Report.cpp similarity index 91% rename from cucumber_cpp/report/Report.cpp rename to cucumber_cpp/library/report/Report.cpp index a64a99d..b751d72 100644 --- a/cucumber_cpp/report/Report.cpp +++ b/cucumber_cpp/library/report/Report.cpp @@ -1,10 +1,10 @@ -#include "cucumber_cpp/report/Report.hpp" -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/Report.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/report/Report.hpp b/cucumber_cpp/library/report/Report.hpp similarity index 94% rename from cucumber_cpp/report/Report.hpp rename to cucumber_cpp/library/report/Report.hpp index 677988a..ac32195 100644 --- a/cucumber_cpp/report/Report.hpp +++ b/cucumber_cpp/library/report/Report.hpp @@ -1,12 +1,12 @@ #ifndef REPORT_REPORT_HPP #define REPORT_REPORT_HPP -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" -#include "cucumber_cpp/engine/TestRunner.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" +#include "cucumber_cpp/library/engine/TestRunner.hpp" #include #include #include diff --git a/cucumber_cpp/report/StdOutReport.cpp b/cucumber_cpp/library/report/StdOutReport.cpp similarity index 94% rename from cucumber_cpp/report/StdOutReport.cpp rename to cucumber_cpp/library/report/StdOutReport.cpp index 8c51f6d..d99e8f2 100644 --- a/cucumber_cpp/report/StdOutReport.cpp +++ b/cucumber_cpp/library/report/StdOutReport.cpp @@ -1,11 +1,11 @@ -#include "cucumber_cpp/report/StdOutReport.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/StdOutReport.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" #include #include #include diff --git a/cucumber_cpp/report/StdOutReport.hpp b/cucumber_cpp/library/report/StdOutReport.hpp similarity index 82% rename from cucumber_cpp/report/StdOutReport.hpp rename to cucumber_cpp/library/report/StdOutReport.hpp index 322f1c3..4bc3df3 100644 --- a/cucumber_cpp/report/StdOutReport.hpp +++ b/cucumber_cpp/library/report/StdOutReport.hpp @@ -1,13 +1,13 @@ #ifndef REPORT_STDOUTREPORT_HPP #define REPORT_STDOUTREPORT_HPP -#include "cucumber_cpp/TraceTime.hpp" -#include "cucumber_cpp/engine/FeatureInfo.hpp" -#include "cucumber_cpp/engine/Result.hpp" -#include "cucumber_cpp/engine/RuleInfo.hpp" -#include "cucumber_cpp/engine/ScenarioInfo.hpp" -#include "cucumber_cpp/engine/StepInfo.hpp" -#include "cucumber_cpp/report/Report.hpp" +#include "cucumber_cpp/library/TraceTime.hpp" +#include "cucumber_cpp/library/engine/FeatureInfo.hpp" +#include "cucumber_cpp/library/engine/Result.hpp" +#include "cucumber_cpp/library/engine/RuleInfo.hpp" +#include "cucumber_cpp/library/engine/ScenarioInfo.hpp" +#include "cucumber_cpp/library/engine/StepInfo.hpp" +#include "cucumber_cpp/library/report/Report.hpp" #include #include #include diff --git a/cucumber_cpp/library/test/CMakeLists.txt b/cucumber_cpp/library/test/CMakeLists.txt new file mode 100644 index 0000000..0130887 --- /dev/null +++ b/cucumber_cpp/library/test/CMakeLists.txt @@ -0,0 +1,16 @@ +add_executable(cucumber_cpp.library.test) +add_test(NAME cucumber_cpp.library.test COMMAND cucumber_cpp.library.test) + +target_link_libraries(cucumber_cpp.library.test PUBLIC + cucumber_cpp.library + gtest + gmock + gmock_main +) + +target_sources(cucumber_cpp.library.test PRIVATE + TestContext.cpp + TestHooks.cpp + TestTagExpression.cpp + TestSteps.cpp +) diff --git a/cucumber_cpp/test/TestContext.cpp b/cucumber_cpp/library/test/TestContext.cpp similarity index 99% rename from cucumber_cpp/test/TestContext.cpp rename to cucumber_cpp/library/test/TestContext.cpp index 35642a3..6a38ab4 100644 --- a/cucumber_cpp/test/TestContext.cpp +++ b/cucumber_cpp/library/test/TestContext.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Context.hpp" +#include "cucumber_cpp/library/Context.hpp" #include #include #include diff --git a/cucumber_cpp/test/TestHooks.cpp b/cucumber_cpp/library/test/TestHooks.cpp similarity index 98% rename from cucumber_cpp/test/TestHooks.cpp rename to cucumber_cpp/library/test/TestHooks.cpp index 96771bd..d2dd27d 100644 --- a/cucumber_cpp/test/TestHooks.cpp +++ b/cucumber_cpp/library/test/TestHooks.cpp @@ -1,6 +1,6 @@ -#include "cucumber_cpp/HookRegistry.hpp" -#include "cucumber_cpp/HookScopes.hpp" -#include "cucumber_cpp/Hooks.hpp" +#include "cucumber_cpp/library/HookRegistry.hpp" +#include "cucumber_cpp/library/HookScopes.hpp" +#include "cucumber_cpp/library/Hooks.hpp" #include "gmock/gmock.h" #include #include diff --git a/cucumber_cpp/test/TestSteps.cpp b/cucumber_cpp/library/test/TestSteps.cpp similarity index 96% rename from cucumber_cpp/test/TestSteps.cpp rename to cucumber_cpp/library/test/TestSteps.cpp index 13d4a34..6a5a7f2 100644 --- a/cucumber_cpp/test/TestSteps.cpp +++ b/cucumber_cpp/library/test/TestSteps.cpp @@ -1,6 +1,6 @@ -#include "cucumber_cpp/Context.hpp" -#include "cucumber_cpp/StepRegistry.hpp" -#include "cucumber_cpp/Steps.hpp" +#include "cucumber_cpp/library/Context.hpp" +#include "cucumber_cpp/library/StepRegistry.hpp" +#include "cucumber_cpp/library/Steps.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber_cpp/test/TestTagExpression.cpp b/cucumber_cpp/library/test/TestTagExpression.cpp similarity index 98% rename from cucumber_cpp/test/TestTagExpression.cpp rename to cucumber_cpp/library/test/TestTagExpression.cpp index 9537132..8bdd18c 100644 --- a/cucumber_cpp/test/TestTagExpression.cpp +++ b/cucumber_cpp/library/test/TestTagExpression.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/TagExpression.hpp" +#include "cucumber_cpp/library/TagExpression.hpp" #include "gmock/gmock.h" #include "gtest/gtest.h" #include diff --git a/cucumber_cpp/report/CMakeLists.txt b/cucumber_cpp/report/CMakeLists.txt deleted file mode 100644 index f6fa64e..0000000 --- a/cucumber_cpp/report/CMakeLists.txt +++ /dev/null @@ -1,19 +0,0 @@ -add_library(cucumber-cpp.report STATIC ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp.report PRIVATE - JunitReport.cpp - JunitReport.hpp - Report.cpp - Report.hpp - StdOutReport.cpp - StdOutReport.hpp -) - -target_include_directories(cucumber-cpp.report PUBLIC - ./../../ -) - -target_link_libraries(cucumber-cpp.report PUBLIC - pugixml - cucumber-cpp -) diff --git a/cucumber_cpp/runner/CMakeLists.txt b/cucumber_cpp/runner/CMakeLists.txt new file mode 100644 index 0000000..38b1684 --- /dev/null +++ b/cucumber_cpp/runner/CMakeLists.txt @@ -0,0 +1,9 @@ +add_library(cucumber_cpp.runner ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.runner PRIVATE + Main.cpp +) + +target_link_libraries(cucumber_cpp.runner PUBLIC + cucumber_cpp.library +) diff --git a/test/Main.cpp b/cucumber_cpp/runner/Main.cpp similarity index 74% rename from test/Main.cpp rename to cucumber_cpp/runner/Main.cpp index 2f4f7d2..6544911 100644 --- a/test/Main.cpp +++ b/cucumber_cpp/runner/Main.cpp @@ -1,4 +1,4 @@ -#include "cucumber_cpp/Application.hpp" +#include "cucumber_cpp/library/Application.hpp" #include int main(int argc, char** argv) diff --git a/cucumber_cpp/test/CMakeLists.txt b/cucumber_cpp/test/CMakeLists.txt deleted file mode 100644 index 3ddbab5..0000000 --- a/cucumber_cpp/test/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -add_executable(cucumber-cpp.test) -add_test(NAME cucumber-cpp.test COMMAND cucumber-cpp.test) - -target_link_libraries(cucumber-cpp.test - PUBLIC - cucumber-cpp - - gtest - gmock - gmock_main -) - -target_sources(cucumber-cpp.test PRIVATE - TestContext.cpp - TestHooks.cpp - TestTagExpression.cpp - TestSteps.cpp -) diff --git a/cucumber_cpp_example/CMakeLists.txt b/cucumber_cpp_example/CMakeLists.txt deleted file mode 100644 index f9ec570..0000000 --- a/cucumber_cpp_example/CMakeLists.txt +++ /dev/null @@ -1,17 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_executable(cucumber-cpp-example ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-example PRIVATE - fixtures/Fixture.hpp - Main.cpp -) - -target_link_libraries(cucumber-cpp-example PRIVATE - cucumber-cpp - cucumber-cpp-example.hooks - cucumber-cpp-example.steps -) - -add_subdirectory(hooks) -add_subdirectory(steps) diff --git a/cucumber_cpp_example/hooks/CMakeLists.txt b/cucumber_cpp_example/hooks/CMakeLists.txt deleted file mode 100644 index c0058f9..0000000 --- a/cucumber_cpp_example/hooks/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber-cpp-example.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-example.hooks PRIVATE - Hooks.cpp - TestHooks.cpp -) - -target_link_libraries(cucumber-cpp-example.hooks PRIVATE - cucumber-cpp-runner -) diff --git a/cucumber_cpp_example/steps/CMakeLists.txt b/cucumber_cpp_example/steps/CMakeLists.txt deleted file mode 100644 index a0c9111..0000000 --- a/cucumber_cpp_example/steps/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber-cpp-example.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-example.steps PRIVATE - Steps.cpp -) - -target_link_libraries(cucumber-cpp-example.steps PRIVATE - cucumber-cpp-runner -) diff --git a/cucumber_cpp_runner/CMakeLists.txt b/cucumber_cpp_runner/CMakeLists.txt deleted file mode 100644 index bb0ad25..0000000 --- a/cucumber_cpp_runner/CMakeLists.txt +++ /dev/null @@ -1,10 +0,0 @@ - -add_library(cucumber-cpp-runner ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-runner PRIVATE - Main.cpp -) - -target_link_libraries(cucumber-cpp-runner PUBLIC - cucumber-cpp -) diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt deleted file mode 100644 index 66fe84e..0000000 --- a/test/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_executable(cucumber-cpp-test ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-test PRIVATE - Main.cpp -) -target_link_libraries(cucumber-cpp-test PRIVATE - cucumber-cpp - cucumber-cpp-test.hooks - cucumber-cpp-test.steps -) - -add_executable(cucumber-cpp-test-custom ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-test-custom PRIVATE - MainCustom.cpp -) - -target_link_libraries(cucumber-cpp-test-custom PRIVATE - cucumber-cpp - cucumber-cpp-test.hooks - cucumber-cpp-test.steps -) - -add_subdirectory(hooks) -add_subdirectory(steps) diff --git a/test/hooks/CMakeLists.txt b/test/hooks/CMakeLists.txt deleted file mode 100644 index 9fc74ec..0000000 --- a/test/hooks/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber-cpp-test.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-test.hooks PRIVATE - Hooks.cpp -) - -target_link_libraries(cucumber-cpp-test.hooks PRIVATE - cucumber-cpp -) diff --git a/test/steps/CMakeLists.txt b/test/steps/CMakeLists.txt deleted file mode 100644 index e18133e..0000000 --- a/test/steps/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber-cpp-test.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber-cpp-test.steps PRIVATE - Steps.cpp -) - -target_link_libraries(cucumber-cpp-test.steps PRIVATE - cucumber-cpp -) From e55060c4eef7d7c486bf83f97d097990f40535b9 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 12:07:10 +0200 Subject: [PATCH 18/24] Fix tests path --- cucumber_cpp/example/hooks/Hooks.cpp | 2 +- cucumber_cpp/integration_test/test.bats | 48 ++++++++++++------------- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/cucumber_cpp/example/hooks/Hooks.cpp b/cucumber_cpp/example/hooks/Hooks.cpp index 6b5ea83..99643b6 100644 --- a/cucumber_cpp/example/hooks/Hooks.cpp +++ b/cucumber_cpp/example/hooks/Hooks.cpp @@ -1,6 +1,6 @@ #include "cucumber_cpp/library/Hooks.hpp" -#include "cucumber_cpp/library/Context.hpp" #include "cucumber_cpp/example/fixtures/Fixture.hpp" +#include "cucumber_cpp/library/Context.hpp" #include #include diff --git a/cucumber_cpp/integration_test/test.bats b/cucumber_cpp/integration_test/test.bats index 5fb68d0..e9fe646 100644 --- a/cucumber_cpp/integration_test/test.bats +++ b/cucumber_cpp/integration_test/test.bats @@ -10,72 +10,72 @@ teardown() { } @test "Successful test" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:OK" --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:OK" --feature cucumber_cpp/integration_test/features --report console assert_success } @test "Parse tag expression" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag @smoke @result:OK --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag @smoke @result:OK --feature cucumber_cpp/integration_test/features --report console assert_success } @test "Failed tests" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:FAILED" --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:FAILED" --feature cucumber_cpp/integration_test/features --report console assert_failure - assert_output --partial "failed \"test/features/test_scenarios.feature\"" + assert_output --partial "failed \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "Undefined tests" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@result:UNDEFINED" --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:UNDEFINED" --feature cucumber_cpp/integration_test/features --report console assert_failure - assert_output --partial "undefined \"test/features/test_scenarios.feature\"" + assert_output --partial "undefined \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "No tests" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@invalidtag" --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@invalidtag" --feature cucumber_cpp/integration_test/features --report console assert_success } @test "All features in a folder" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features/subfolder --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features/subfolder --report console assert_success assert_output --partial "test1 scenario" assert_output --partial "test2 scenario" } @test "Missing mandatory feature argument" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --report console assert_failure assert_output --partial "--feature is required" } @test "Missing mandatory report argument" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features assert_failure assert_output --partial "--report is required" } @test "Missing mandatory custom argument" { - run .build/Host/test/Debug/cucumber_cpp.integration_test-custom run --feature test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test-custom run --feature cucumber_cpp/integration_test/features --report console assert_failure assert_output --partial "--required is required" } @test "Second feature file does not overwrite success with an undefined status" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --tag "@undefinedsuccess and @result:success" --feature test/features/test_undefined_success_1.feature test/features/test_undefined_success_2.feature --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@undefinedsuccess and @result:success" --feature cucumber_cpp/integration_test/features/test_undefined_success_1.feature cucumber_cpp/integration_test/features/test_undefined_success_2.feature --report console assert_success } @test "Valid reporters only" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --report doesnotexist + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --report doesnotexist assert_failure assert_output --partial "--report: 'doesnotexist' is not a reporter" } @test "Run Program hooks" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats --report console assert_success assert_output --partial "HOOK_BEFORE_ALL" @@ -83,7 +83,7 @@ teardown() { } @test "Run Scenario hooks" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats and @scenariohook and not @stephook --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats and @scenariohook and not @stephook --report console assert_success assert_output --partial "HOOK_BEFORE_SCENARIO" @@ -94,7 +94,7 @@ teardown() { } @test "Run Step hooks" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag @bats and @stephook and not @scenariohook --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats and @stephook and not @scenariohook --report console assert_success refute_output --partial "HOOK_BEFORE_SCENARIO" @@ -105,7 +105,7 @@ teardown() { } @test "Run Scenario and Step hooks" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@bats and (@scenariohook or @stephook)" --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@bats and (@scenariohook or @stephook)" --report console assert_success assert_output --partial "HOOK_BEFORE_SCENARIO" @@ -116,35 +116,35 @@ teardown() { } @test "Dry run with known failing steps" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:FAILED" --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:FAILED" --report console assert_failure - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:FAILED" --report console --dry + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:FAILED" --report console --dry assert_success } @test "Dry run with known missing steps" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@result:UNDEFINED" --report console --dry + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:UNDEFINED" --report console --dry assert_failure - assert_output --partial "undefined \"test/features/test_scenarios.feature\"" + assert_output --partial "undefined \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" assert_output --partial "skipped Then a then step" } @test "Test the and keyword" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-and" --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-and" --report console assert_success assert_output --partial "--when--" assert_output --partial "--and--" } @test "Test the but keyword" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-but" --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-but" --report console assert_success assert_output --partial "--when--" assert_output --partial "--but--" } @test "Test the asterisk keyword - will fail" { - run .build/Host/test/Debug/cucumber_cpp.integration_test run --feature test/features --tag "@keyword-asterisk" --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-asterisk" --report console assert_failure } From 7c6e829b1b2243b0344cab93fd8600e18267a64c Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Sun, 29 Sep 2024 12:23:08 +0200 Subject: [PATCH 19/24] Fix tests path --- cucumber_cpp/integration_test/test.bats | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cucumber_cpp/integration_test/test.bats b/cucumber_cpp/integration_test/test.bats index e9fe646..a945035 100644 --- a/cucumber_cpp/integration_test/test.bats +++ b/cucumber_cpp/integration_test/test.bats @@ -58,7 +58,7 @@ teardown() { } @test "Missing mandatory custom argument" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test-custom run --feature cucumber_cpp/integration_test/features --report console + run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test.custom run --feature cucumber_cpp/integration_test/features --report console assert_failure assert_output --partial "--required is required" } From f069e095dce2f1115b33cb8a6c581c33de9e16bd Mon Sep 17 00:00:00 2001 From: "Timmer, Daan" Date: Mon, 30 Sep 2024 09:07:26 +0000 Subject: [PATCH 20/24] feat: removed deprecated MakeShared --- cucumber_cpp/library/Context.hpp | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/cucumber_cpp/library/Context.hpp b/cucumber_cpp/library/Context.hpp index 7b355ac..be1e789 100644 --- a/cucumber_cpp/library/Context.hpp +++ b/cucumber_cpp/library/Context.hpp @@ -242,20 +242,6 @@ namespace cucumber_cpp , storage{ contextStorageFactory->Create(*parent->storage) } {} - template - [[deprecated("Use Emplace or EmplaceAs instead")]] std::shared_ptr MakeShared(Args&&... args) - { - return MakeShared(typeid(T).name(), std::forward(args)...); - } - - template - [[deprecated("Use EmplaceAt instead")]] std::shared_ptr MakeShared(std::string_view key, Args&&... value) - { - SetShared(key, std::make_shared(std::forward(value)...)); - - return GetShared(key); - } - template void SetShared(const std::shared_ptr& value) { From 64d982c1f1768fc666f81bd1d095204d92ace628 Mon Sep 17 00:00:00 2001 From: "Timmer, Daan" Date: Mon, 30 Sep 2024 09:07:46 +0000 Subject: [PATCH 21/24] chore: replace member functions with free functions for better generic handling --- cucumber_cpp/library/Application.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cucumber_cpp/library/Application.cpp b/cucumber_cpp/library/Application.cpp index 8183142..7b04c48 100644 --- a/cucumber_cpp/library/Application.cpp +++ b/cucumber_cpp/library/Application.cpp @@ -39,7 +39,7 @@ namespace cucumber_cpp std::string_view subrange_to_sv(const auto& subrange) { - return { subrange.data(), subrange.data() + subrange.size() }; + return { std::data(subrange), std::data(subrange) + std::size(subrange) }; } template From 755969e4fc12f007d7aa1025743e784e95a3c211 Mon Sep 17 00:00:00 2001 From: "Timmer, Daan" Date: Mon, 30 Sep 2024 09:09:14 +0000 Subject: [PATCH 22/24] chore: update bats location for 'bats' task in tasks.json --- .vscode/tasks.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.vscode/tasks.json b/.vscode/tasks.json index 852e0c9..8b42f06 100644 --- a/.vscode/tasks.json +++ b/.vscode/tasks.json @@ -6,7 +6,7 @@ { "label": "bats", "type": "shell", - "command": "bats --formatter junit test/test.bats | tee test-report.xml", + "command": "bats --formatter junit cucumber_cpp/integration_test/test.bats | tee test-report.xml", "problemMatcher": [] } ] From aeed6ce918965e0d5e054bb1cb15e1da2399c8a4 Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Tue, 1 Oct 2024 12:43:40 +0200 Subject: [PATCH 23/24] Rename integration_test to acceptance_test --- .github/workflows/ci.yml | 2 +- cucumber_cpp/CMakeLists.txt | 2 +- cucumber_cpp/acceptance_test/CMakeLists.txt | 27 ++++ .../Main.cpp | 0 .../MainCustom.cpp | 0 .../features/subfolder/test1.feature | 0 .../features/subfolder/test2.feature | 0 .../features/test_hooks.feature | 0 .../features/test_keyword_and.feature | 0 .../features/test_keyword_asterisk.feature | 0 .../features/test_keyword_but.feature | 0 .../features/test_scenarios.feature | 0 .../features/test_undefined_success_1.feature | 0 .../features/test_undefined_success_2.feature | 0 .../acceptance_test/hooks/CMakeLists.txt | 11 ++ .../hooks/Hooks.cpp | 0 .../acceptance_test/steps/CMakeLists.txt | 11 ++ .../steps/Steps.cpp | 0 cucumber_cpp/acceptance_test/test.bats | 150 ++++++++++++++++++ cucumber_cpp/integration_test/CMakeLists.txt | 27 ---- .../integration_test/hooks/CMakeLists.txt | 11 -- .../integration_test/steps/CMakeLists.txt | 11 -- cucumber_cpp/integration_test/test.bats | 150 ------------------ 23 files changed, 201 insertions(+), 201 deletions(-) create mode 100644 cucumber_cpp/acceptance_test/CMakeLists.txt rename cucumber_cpp/{integration_test => acceptance_test}/Main.cpp (100%) rename cucumber_cpp/{integration_test => acceptance_test}/MainCustom.cpp (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/subfolder/test1.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/subfolder/test2.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_hooks.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_keyword_and.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_keyword_asterisk.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_keyword_but.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_scenarios.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_undefined_success_1.feature (100%) rename cucumber_cpp/{integration_test => acceptance_test}/features/test_undefined_success_2.feature (100%) create mode 100644 cucumber_cpp/acceptance_test/hooks/CMakeLists.txt rename cucumber_cpp/{integration_test => acceptance_test}/hooks/Hooks.cpp (100%) create mode 100644 cucumber_cpp/acceptance_test/steps/CMakeLists.txt rename cucumber_cpp/{integration_test => acceptance_test}/steps/Steps.cpp (100%) create mode 100644 cucumber_cpp/acceptance_test/test.bats delete mode 100644 cucumber_cpp/integration_test/CMakeLists.txt delete mode 100644 cucumber_cpp/integration_test/hooks/CMakeLists.txt delete mode 100644 cucumber_cpp/integration_test/steps/CMakeLists.txt delete mode 100644 cucumber_cpp/integration_test/test.bats diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 764eeef..e6c9a9c 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -111,7 +111,7 @@ jobs: buildPreset: "Host-Debug" configurePresetAdditionalArgs: "['-DCMAKE_C_COMPILER_LAUNCHER=ccache', '-DCMAKE_CXX_COMPILER_LAUNCHER=ccache']" - run: | - bats --formatter junit cucumber_cpp/integration_test/test.bats | tee test-report.xml + bats --formatter junit cucumber_cpp/acceptance_test/test.bats | tee test-report.xml - uses: EnricoMi/publish-unit-test-result-action@82082dac68ad6a19d980f8ce817e108b9f496c2a # v2.17.1 if: always() with: diff --git a/cucumber_cpp/CMakeLists.txt b/cucumber_cpp/CMakeLists.txt index 3d6bd44..bfaed31 100644 --- a/cucumber_cpp/CMakeLists.txt +++ b/cucumber_cpp/CMakeLists.txt @@ -1,4 +1,4 @@ add_subdirectory(library) add_subdirectory(runner) add_subdirectory(example) -add_subdirectory(integration_test) +add_subdirectory(acceptance_test) diff --git a/cucumber_cpp/acceptance_test/CMakeLists.txt b/cucumber_cpp/acceptance_test/CMakeLists.txt new file mode 100644 index 0000000..6f7b64e --- /dev/null +++ b/cucumber_cpp/acceptance_test/CMakeLists.txt @@ -0,0 +1,27 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_executable(cucumber_cpp.acceptance_test ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.acceptance_test PRIVATE + Main.cpp +) +target_link_libraries(cucumber_cpp.acceptance_test PRIVATE + cucumber_cpp.library + cucumber_cpp.acceptance_test.hooks + cucumber_cpp.acceptance_test.steps +) + +add_executable(cucumber_cpp.acceptance_test.custom ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.acceptance_test.custom PRIVATE + MainCustom.cpp +) + +target_link_libraries(cucumber_cpp.acceptance_test.custom PRIVATE + cucumber_cpp.library + cucumber_cpp.acceptance_test.hooks + cucumber_cpp.acceptance_test.steps +) + +add_subdirectory(hooks) +add_subdirectory(steps) diff --git a/cucumber_cpp/integration_test/Main.cpp b/cucumber_cpp/acceptance_test/Main.cpp similarity index 100% rename from cucumber_cpp/integration_test/Main.cpp rename to cucumber_cpp/acceptance_test/Main.cpp diff --git a/cucumber_cpp/integration_test/MainCustom.cpp b/cucumber_cpp/acceptance_test/MainCustom.cpp similarity index 100% rename from cucumber_cpp/integration_test/MainCustom.cpp rename to cucumber_cpp/acceptance_test/MainCustom.cpp diff --git a/cucumber_cpp/integration_test/features/subfolder/test1.feature b/cucumber_cpp/acceptance_test/features/subfolder/test1.feature similarity index 100% rename from cucumber_cpp/integration_test/features/subfolder/test1.feature rename to cucumber_cpp/acceptance_test/features/subfolder/test1.feature diff --git a/cucumber_cpp/integration_test/features/subfolder/test2.feature b/cucumber_cpp/acceptance_test/features/subfolder/test2.feature similarity index 100% rename from cucumber_cpp/integration_test/features/subfolder/test2.feature rename to cucumber_cpp/acceptance_test/features/subfolder/test2.feature diff --git a/cucumber_cpp/integration_test/features/test_hooks.feature b/cucumber_cpp/acceptance_test/features/test_hooks.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_hooks.feature rename to cucumber_cpp/acceptance_test/features/test_hooks.feature diff --git a/cucumber_cpp/integration_test/features/test_keyword_and.feature b/cucumber_cpp/acceptance_test/features/test_keyword_and.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_keyword_and.feature rename to cucumber_cpp/acceptance_test/features/test_keyword_and.feature diff --git a/cucumber_cpp/integration_test/features/test_keyword_asterisk.feature b/cucumber_cpp/acceptance_test/features/test_keyword_asterisk.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_keyword_asterisk.feature rename to cucumber_cpp/acceptance_test/features/test_keyword_asterisk.feature diff --git a/cucumber_cpp/integration_test/features/test_keyword_but.feature b/cucumber_cpp/acceptance_test/features/test_keyword_but.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_keyword_but.feature rename to cucumber_cpp/acceptance_test/features/test_keyword_but.feature diff --git a/cucumber_cpp/integration_test/features/test_scenarios.feature b/cucumber_cpp/acceptance_test/features/test_scenarios.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_scenarios.feature rename to cucumber_cpp/acceptance_test/features/test_scenarios.feature diff --git a/cucumber_cpp/integration_test/features/test_undefined_success_1.feature b/cucumber_cpp/acceptance_test/features/test_undefined_success_1.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_undefined_success_1.feature rename to cucumber_cpp/acceptance_test/features/test_undefined_success_1.feature diff --git a/cucumber_cpp/integration_test/features/test_undefined_success_2.feature b/cucumber_cpp/acceptance_test/features/test_undefined_success_2.feature similarity index 100% rename from cucumber_cpp/integration_test/features/test_undefined_success_2.feature rename to cucumber_cpp/acceptance_test/features/test_undefined_success_2.feature diff --git a/cucumber_cpp/acceptance_test/hooks/CMakeLists.txt b/cucumber_cpp/acceptance_test/hooks/CMakeLists.txt new file mode 100644 index 0000000..ee263a6 --- /dev/null +++ b/cucumber_cpp/acceptance_test/hooks/CMakeLists.txt @@ -0,0 +1,11 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.acceptance_test.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.acceptance_test.hooks PRIVATE + Hooks.cpp +) + +target_link_libraries(cucumber_cpp.acceptance_test.hooks PRIVATE + cucumber_cpp.library +) diff --git a/cucumber_cpp/integration_test/hooks/Hooks.cpp b/cucumber_cpp/acceptance_test/hooks/Hooks.cpp similarity index 100% rename from cucumber_cpp/integration_test/hooks/Hooks.cpp rename to cucumber_cpp/acceptance_test/hooks/Hooks.cpp diff --git a/cucumber_cpp/acceptance_test/steps/CMakeLists.txt b/cucumber_cpp/acceptance_test/steps/CMakeLists.txt new file mode 100644 index 0000000..a5185d8 --- /dev/null +++ b/cucumber_cpp/acceptance_test/steps/CMakeLists.txt @@ -0,0 +1,11 @@ +set(CMAKE_COMPILE_WARNING_AS_ERROR On) + +add_library(cucumber_cpp.acceptance_test.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) + +target_sources(cucumber_cpp.acceptance_test.steps PRIVATE + Steps.cpp +) + +target_link_libraries(cucumber_cpp.acceptance_test.steps PRIVATE + cucumber_cpp.library +) diff --git a/cucumber_cpp/integration_test/steps/Steps.cpp b/cucumber_cpp/acceptance_test/steps/Steps.cpp similarity index 100% rename from cucumber_cpp/integration_test/steps/Steps.cpp rename to cucumber_cpp/acceptance_test/steps/Steps.cpp diff --git a/cucumber_cpp/acceptance_test/test.bats b/cucumber_cpp/acceptance_test/test.bats new file mode 100644 index 0000000..a60e711 --- /dev/null +++ b/cucumber_cpp/acceptance_test/test.bats @@ -0,0 +1,150 @@ +#!/usr/bin/env bats + +setup() { + load '/usr/local/bats-support/load' + load '/usr/local/bats-assert/load' +} + +teardown() { + rm -rf out.json out.xml +} + +@test "Successful test" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag "@result:OK" --feature cucumber_cpp/acceptance_test/features --report console + assert_success +} + +@test "Parse tag expression" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag @smoke @result:OK --feature cucumber_cpp/acceptance_test/features --report console + assert_success +} + +@test "Failed tests" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag "@result:FAILED" --feature cucumber_cpp/acceptance_test/features --report console + assert_failure + assert_output --partial "failed \"cucumber_cpp/acceptance_test/features/test_scenarios.feature\"" + assert_output --partial "skipped Then a then step" +} + +@test "Undefined tests" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag "@result:UNDEFINED" --feature cucumber_cpp/acceptance_test/features --report console + assert_failure + assert_output --partial "undefined \"cucumber_cpp/acceptance_test/features/test_scenarios.feature\"" + assert_output --partial "skipped Then a then step" +} + +@test "No tests" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag "@invalidtag" --feature cucumber_cpp/acceptance_test/features --report console + assert_success +} + +@test "All features in a folder" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features/subfolder --report console + assert_success + assert_output --partial "test1 scenario" + assert_output --partial "test2 scenario" +} + +@test "Missing mandatory feature argument" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --report console + assert_failure + assert_output --partial "--feature is required" +} + +@test "Missing mandatory report argument" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features + assert_failure + assert_output --partial "--report is required" +} + +@test "Missing mandatory custom argument" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test.custom run --feature cucumber_cpp/acceptance_test/features --report console + assert_failure + assert_output --partial "--required is required" +} + +@test "Second feature file does not overwrite success with an undefined status" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --tag "@undefinedsuccess and @result:success" --feature cucumber_cpp/acceptance_test/features/test_undefined_success_1.feature cucumber_cpp/acceptance_test/features/test_undefined_success_2.feature --report console + assert_success +} + +@test "Valid reporters only" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --report doesnotexist + assert_failure + assert_output --partial "--report: 'doesnotexist' is not a reporter" +} + +@test "Run Program hooks" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag @bats --report console + assert_success + + assert_output --partial "HOOK_BEFORE_ALL" + assert_output --partial "HOOK_AFTER_ALL" +} + +@test "Run Scenario hooks" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag @bats and @scenariohook and not @stephook --report console + assert_success + + assert_output --partial "HOOK_BEFORE_SCENARIO" + assert_output --partial "HOOK_AFTER_SCENARIO" + + refute_output --partial "HOOK_BEFORE_STEP" + refute_output --partial "HOOK_AFTER_STEP" +} + +@test "Run Step hooks" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag @bats and @stephook and not @scenariohook --report console + assert_success + + refute_output --partial "HOOK_BEFORE_SCENARIO" + refute_output --partial "HOOK_AFTER_SCENARIO" + + assert_output --partial "HOOK_BEFORE_STEP" + assert_output --partial "HOOK_AFTER_STEP" +} + +@test "Run Scenario and Step hooks" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@bats and (@scenariohook or @stephook)" --report console + assert_success + + assert_output --partial "HOOK_BEFORE_SCENARIO" + assert_output --partial "HOOK_AFTER_SCENARIO" + + assert_output --partial "HOOK_BEFORE_STEP" + assert_output --partial "HOOK_AFTER_STEP" +} + +@test "Dry run with known failing steps" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@result:FAILED" --report console + assert_failure + + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@result:FAILED" --report console --dry + assert_success +} + +@test "Dry run with known missing steps" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@result:UNDEFINED" --report console --dry + assert_failure + assert_output --partial "undefined \"cucumber_cpp/acceptance_test/features/test_scenarios.feature\"" + assert_output --partial "skipped Then a then step" +} + +@test "Test the and keyword" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@keyword-and" --report console + assert_success + assert_output --partial "--when--" + assert_output --partial "--and--" +} + +@test "Test the but keyword" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@keyword-but" --report console + assert_success + assert_output --partial "--when--" + assert_output --partial "--but--" +} + +@test "Test the asterisk keyword - will fail" { + run .build/Host/cucumber_cpp/acceptance_test/Debug/cucumber_cpp.acceptance_test run --feature cucumber_cpp/acceptance_test/features --tag "@keyword-asterisk" --report console + assert_failure +} diff --git a/cucumber_cpp/integration_test/CMakeLists.txt b/cucumber_cpp/integration_test/CMakeLists.txt deleted file mode 100644 index 2882118..0000000 --- a/cucumber_cpp/integration_test/CMakeLists.txt +++ /dev/null @@ -1,27 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_executable(cucumber_cpp.integration_test ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber_cpp.integration_test PRIVATE - Main.cpp -) -target_link_libraries(cucumber_cpp.integration_test PRIVATE - cucumber_cpp.library - cucumber_cpp.integration_test.hooks - cucumber_cpp.integration_test.steps -) - -add_executable(cucumber_cpp.integration_test.custom ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber_cpp.integration_test.custom PRIVATE - MainCustom.cpp -) - -target_link_libraries(cucumber_cpp.integration_test.custom PRIVATE - cucumber_cpp.library - cucumber_cpp.integration_test.hooks - cucumber_cpp.integration_test.steps -) - -add_subdirectory(hooks) -add_subdirectory(steps) diff --git a/cucumber_cpp/integration_test/hooks/CMakeLists.txt b/cucumber_cpp/integration_test/hooks/CMakeLists.txt deleted file mode 100644 index 1bfd3c5..0000000 --- a/cucumber_cpp/integration_test/hooks/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber_cpp.integration_test.hooks OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber_cpp.integration_test.hooks PRIVATE - Hooks.cpp -) - -target_link_libraries(cucumber_cpp.integration_test.hooks PRIVATE - cucumber_cpp.library -) diff --git a/cucumber_cpp/integration_test/steps/CMakeLists.txt b/cucumber_cpp/integration_test/steps/CMakeLists.txt deleted file mode 100644 index 0c21416..0000000 --- a/cucumber_cpp/integration_test/steps/CMakeLists.txt +++ /dev/null @@ -1,11 +0,0 @@ -set(CMAKE_COMPILE_WARNING_AS_ERROR On) - -add_library(cucumber_cpp.integration_test.steps OBJECT ${CCR_EXCLUDE_FROM_ALL}) - -target_sources(cucumber_cpp.integration_test.steps PRIVATE - Steps.cpp -) - -target_link_libraries(cucumber_cpp.integration_test.steps PRIVATE - cucumber_cpp.library -) diff --git a/cucumber_cpp/integration_test/test.bats b/cucumber_cpp/integration_test/test.bats deleted file mode 100644 index a945035..0000000 --- a/cucumber_cpp/integration_test/test.bats +++ /dev/null @@ -1,150 +0,0 @@ -#!/usr/bin/env bats - -setup() { - load '/usr/local/bats-support/load' - load '/usr/local/bats-assert/load' -} - -teardown() { - rm -rf out.json out.xml -} - -@test "Successful test" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:OK" --feature cucumber_cpp/integration_test/features --report console - assert_success -} - -@test "Parse tag expression" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag @smoke @result:OK --feature cucumber_cpp/integration_test/features --report console - assert_success -} - -@test "Failed tests" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:FAILED" --feature cucumber_cpp/integration_test/features --report console - assert_failure - assert_output --partial "failed \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" - assert_output --partial "skipped Then a then step" -} - -@test "Undefined tests" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@result:UNDEFINED" --feature cucumber_cpp/integration_test/features --report console - assert_failure - assert_output --partial "undefined \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" - assert_output --partial "skipped Then a then step" -} - -@test "No tests" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@invalidtag" --feature cucumber_cpp/integration_test/features --report console - assert_success -} - -@test "All features in a folder" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features/subfolder --report console - assert_success - assert_output --partial "test1 scenario" - assert_output --partial "test2 scenario" -} - -@test "Missing mandatory feature argument" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --report console - assert_failure - assert_output --partial "--feature is required" -} - -@test "Missing mandatory report argument" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features - assert_failure - assert_output --partial "--report is required" -} - -@test "Missing mandatory custom argument" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test.custom run --feature cucumber_cpp/integration_test/features --report console - assert_failure - assert_output --partial "--required is required" -} - -@test "Second feature file does not overwrite success with an undefined status" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --tag "@undefinedsuccess and @result:success" --feature cucumber_cpp/integration_test/features/test_undefined_success_1.feature cucumber_cpp/integration_test/features/test_undefined_success_2.feature --report console - assert_success -} - -@test "Valid reporters only" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --report doesnotexist - assert_failure - assert_output --partial "--report: 'doesnotexist' is not a reporter" -} - -@test "Run Program hooks" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats --report console - assert_success - - assert_output --partial "HOOK_BEFORE_ALL" - assert_output --partial "HOOK_AFTER_ALL" -} - -@test "Run Scenario hooks" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats and @scenariohook and not @stephook --report console - assert_success - - assert_output --partial "HOOK_BEFORE_SCENARIO" - assert_output --partial "HOOK_AFTER_SCENARIO" - - refute_output --partial "HOOK_BEFORE_STEP" - refute_output --partial "HOOK_AFTER_STEP" -} - -@test "Run Step hooks" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag @bats and @stephook and not @scenariohook --report console - assert_success - - refute_output --partial "HOOK_BEFORE_SCENARIO" - refute_output --partial "HOOK_AFTER_SCENARIO" - - assert_output --partial "HOOK_BEFORE_STEP" - assert_output --partial "HOOK_AFTER_STEP" -} - -@test "Run Scenario and Step hooks" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@bats and (@scenariohook or @stephook)" --report console - assert_success - - assert_output --partial "HOOK_BEFORE_SCENARIO" - assert_output --partial "HOOK_AFTER_SCENARIO" - - assert_output --partial "HOOK_BEFORE_STEP" - assert_output --partial "HOOK_AFTER_STEP" -} - -@test "Dry run with known failing steps" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:FAILED" --report console - assert_failure - - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:FAILED" --report console --dry - assert_success -} - -@test "Dry run with known missing steps" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@result:UNDEFINED" --report console --dry - assert_failure - assert_output --partial "undefined \"cucumber_cpp/integration_test/features/test_scenarios.feature\"" - assert_output --partial "skipped Then a then step" -} - -@test "Test the and keyword" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-and" --report console - assert_success - assert_output --partial "--when--" - assert_output --partial "--and--" -} - -@test "Test the but keyword" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-but" --report console - assert_success - assert_output --partial "--when--" - assert_output --partial "--but--" -} - -@test "Test the asterisk keyword - will fail" { - run .build/Host/cucumber_cpp/integration_test/Debug/cucumber_cpp.integration_test run --feature cucumber_cpp/integration_test/features --tag "@keyword-asterisk" --report console - assert_failure -} From 7d6111ca63edca4c56487f87b2c1a476c278314b Mon Sep 17 00:00:00 2001 From: Richard Peters Date: Tue, 1 Oct 2024 12:44:11 +0200 Subject: [PATCH 24/24] Format devcontainer.json --- .devcontainer/devcontainer.json | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 095a437..eb3193f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,17 +1,17 @@ // For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: // https://github.com/microsoft/vscode-dev-containers/tree/v0.231.6/containers/cpp { - "build": { - "context": "..", - "dockerfile": "Dockerfile" - }, - "customizations": { - "vscode": { - "extensions": [ - "alexkrechik.cucumberautocomplete", - "akiramiyakoda.cppincludeguard", - "github.vscode-github-actions" - ] - } + "build": { + "context": "..", + "dockerfile": "Dockerfile" + }, + "customizations": { + "vscode": { + "extensions": [ + "alexkrechik.cucumberautocomplete", + "akiramiyakoda.cppincludeguard", + "github.vscode-github-actions" + ] } + } }