Skip to content

cpp: Enable acceptance tests on Ubuntu and OSX#413

Merged
mpkorstanje merged 3 commits intomainfrom
fix/enable-cpp-acceptance-tests
Jun 30, 2025
Merged

cpp: Enable acceptance tests on Ubuntu and OSX#413
mpkorstanje merged 3 commits intomainfrom
fix/enable-cpp-acceptance-tests

Conversation

@mpkorstanje
Copy link
Copy Markdown
Contributor

@mpkorstanje mpkorstanje commented Jun 17, 2025

🤔 What's changed?

Enable acceptance test for OSX and Ubuntu. Windows couldn't be made to work due to:


Run make acceptance
./cmake/cmate install
CMate: checking repository nlohmann/json
CMate: checking remote at https://github.com/nlohmann/json.git
CMate: checking repository cucumber/messages
CMate: checking remote at https://github.com/cucumber/messages.git
./cmake/cmate build --release
ninja: no work to do.
./cmake/cmate stage
[1/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\demangle.cpp.obj
[2/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\id_generator.cpp.obj
[3/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\exceptions.cpp.obj
[4/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\ast_node.cpp.obj
[5/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\app.cpp.obj
[6/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\dialect.cpp.obj
[7/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\ast_builder.cpp.obj
[8/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\keywords.cpp.obj
[9/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\parse_error.cpp.obj
[10/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\line.cpp.obj
[11/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\rule_type.cpp.obj
[12/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\regex.cpp.obj
[13/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\pickle_compiler.cpp.obj
[14/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\pickle_compiler_context.cpp.obj
[15/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\utils.cpp.obj
[16/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\token.cpp.obj
[17/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\token_formatter_builder.cpp.obj
[18/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\token_scanner.cpp.obj
[19/24] Building CXX object src\lib\gherkin\CMakeFiles\cucumber_gherkin_lib.dir\Debug\cucumber\gherkin\token_matcher.cpp.obj
[20/24] Linking CXX static library src\lib\gherkin\Debug\cucumber_gherkin.lib
[21/24] Building CXX object src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug\gherkin.cpp.obj
[22/24] Linking CXX executable src\bin\gherkin\Debug\gherkin.exe
FAILED: [code=4294967295] src/bin/gherkin/Debug/gherkin.exe 
C:\Windows\system32\cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E vs_link_exe --msvc-ver=1944 --intdir=src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug --rc=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\rc.exe --mt=C:\PROGRA~2\WI3CF2~1\10\bin\100261~1.0\x64\mt.exe --manifests  -- C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug\gherkin.cpp.obj  /out:src\bin\gherkin\Debug\gherkin.exe /implib:src\bin\gherkin\Debug\gherkin.lib /pdb:src\bin\gherkin\Debug\gherkin.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console  src\lib\gherkin\Debug\cucumber_gherkin.lib  D:\a\gherkin\gherkin\cpp\.cenv\lib\cucumber_messages.lib  kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib && cd ."
LINK Pass 1: command "C:\PROGRA~1\MICROS~2\2022\ENTERP~1\VC\Tools\MSVC\1444~1.352\bin\Hostx64\x64\link.exe /nologo src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug\gherkin.cpp.obj /out:src\bin\gherkin\Debug\gherkin.exe /implib:src\bin\gherkin\Debug\gherkin.lib /pdb:src\bin\gherkin\Debug\gherkin.pdb /version:0.0 /machine:x64 /debug /INCREMENTAL /subsystem:console src\lib\gherkin\Debug\cucumber_gherkin.lib D:\a\gherkin\gherkin\cpp\.cenv\lib\cucumber_messages.lib kernel32.lib user32.lib gdi32.lib winspool.lib shell32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib advapi32.lib /MANIFEST /MANIFESTFILE:src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug/intermediate.manifest src\bin\gherkin\CMakeFiles\cucumber_gherkin_bin.dir\Debug/manifest.res" failed (exit code 1319) with the following output:
cucumber_messages.lib(source.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(source.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(gherkin_document.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(gherkin_document.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(location.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(location.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(utils.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(utils.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(source_media_type.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(source_media_type.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(feature.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(feature.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(comment.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(comment.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_tag.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_tag.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(tag.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(tag.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(feature_child.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(feature_child.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step_argument.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step_argument.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step_type.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_step_type.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(background.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(background.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(scenario.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(scenario.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(rule.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(rule.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_doc_string.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_doc_string.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(step.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(step.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(examples.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(examples.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(rule_child.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(rule_child.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table_row.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table_row.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(step_keyword_type.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(step_keyword_type.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(doc_string.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(doc_string.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(data_table.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(data_table.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(table_row.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(table_row.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table_cell.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(pickle_table_cell.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
cucumber_messages.lib(table_cell.cpp.obj) : error LNK2038: mismatch detected for '_ITERATOR_DEBUG_LEVEL': value '0' doesn't match value '2' in gherkin.cpp.obj
cucumber_messages.lib(table_cell.cpp.obj) : error LNK2038: mismatch detected for 'RuntimeLibrary': value 'MD_DynamicRelease' doesn't match value 'MDd_DynamicDebug' in gherkin.cpp.obj
LINK : warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs; use /NODEFAULTLIB:library
src\bin\gherkin\Debug\gherkin.exe : fatal error LNK1319: 58 mismatches detected
[23/24] Building CXX object src\bin\gherkin-generate-tokens\CMakeFiles\cucumber_gherkin_generate_tokens_bin.dir\Debug\gherkin-generate-tokens.cpp.obj
ninja: build stopped: subcommand failed.
CMate: error: command failed: CMD C:/Program Files/CMake/bin/cmake.exe --build D:/a/gherkin/gherkin/cpp/build --config Debug --parallel
make: *** [Makefile:72: .built] Error 1
Error: Process completed with exit code 1.

⚡️ What's your motivation?

#412

🏷️ What kind of change is this?

  • 🐛 Bug fix (non-breaking change which fixes a defect)

📋 Checklist:

@mpkorstanje

This comment was marked as outdated.

@mpkorstanje mpkorstanje mentioned this pull request Jun 17, 2025
1 task
@mpkorstanje mpkorstanje reopened this Jun 18, 2025
@mpkorstanje mpkorstanje changed the title cpp: Enable acceptance tests and codegen cpp: Enable acceptance tests Jun 18, 2025
* Adds cpp to the root make file so the parser updated with `make generate`
* Regenerate cpp parser
* Enable acceptance test in CI
@mpkorstanje mpkorstanje force-pushed the fix/enable-cpp-acceptance-tests branch from 7d6c56f to 2709e63 Compare June 18, 2025 18:35
@mpkorstanje mpkorstanje changed the title cpp: Enable acceptance tests cpp: Enable acceptance tests on ubuntu and osx Jun 30, 2025
@mpkorstanje mpkorstanje changed the title cpp: Enable acceptance tests on ubuntu and osx cpp: Enable acceptance tests on Ubuntu and OSX Jun 30, 2025
@mpkorstanje mpkorstanje merged commit 2f86882 into main Jun 30, 2025
37 checks passed
@mpkorstanje mpkorstanje deleted the fix/enable-cpp-acceptance-tests branch June 30, 2025 08:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant