Merged
Conversation
Allow overriding paths and commands via environment variables: - SOLCORE_CMD (default: cabal exec sol-core --) - YULE_CMD (default: cabal run yule --) - testrunner_exe (default: test/testrunner/testrunner) - evmone (default: ~/.local/lib/libevmone.so) This preserves the ability to run scripts outside of Nix builds while allowing Nix to override these values as needed.
Documents: - C++ testrunner architecture and components - Contest integration test system - Environment variable configuration - Nix build system and packages - Development workflow for local and Nix builds
Documents: - Building the C++ testrunner with cmake - Running integration tests manually and via Nix - Distinction between Haskell unit tests and integration tests - Test case structure and usage - Using contest.sh for individual test execution
Adds parallel 'integration-tests' job that runs 'nix flake check' to execute the C++ testrunner and contest integration tests on every PR. The workflow now has two parallel jobs: - build: Builds sol-core (existing) - integration-tests: Runs full pipeline tests (new)
Removes branch restriction from pull_request trigger so the workflow runs on all PRs regardless of target branch. Keeps push trigger restricted to main branch to avoid duplicate runs.
Replaces separate 'build' and 'integration-tests' jobs with a single 'build-and-test' job that runs 'nix flake check'. This is more efficient because: - nix flake check builds sol-core as a dependency (no duplicate builds) - Single job is simpler and clearer - Still runs full integration test suite
Co-authored-by: Yoshitomo Nakanishi <yurayura.rounin.3@gmail.com>
mbenke
reviewed
Mar 3, 2026
mbenke
reviewed
Mar 3, 2026
mbenke
requested changes
Mar 4, 2026
Collaborator
There was a problem hiding this comment.
After checking out to a fresh dir and running cabal test I get an error
CMake Error at CMakeLists.txt:13 (find_package):
By not providing "Findnlohmann_json.cmake" in CMAKE_MODULE_PATH this
project has asked CMake to find a package configuration file provided by
"nlohmann_json", but CMake did not find one.
Could not find a package configuration file provided by "nlohmann_json"
with any of the following names:
nlohmann_jsonConfig.cmake
nlohmann_json-config.cmake
Add the installation prefix of "nlohmann_json" to CMAKE_PREFIX_PATH or set
"nlohmann_json_DIR" to a directory containing one of the above files. If
"nlohmann_json" provides a separate development package or SDK, be sure it
has been installed.
-- Configuring incomplete, errors occurred!
Then running git submodule update
$ git submodule update --init --depth 1 deps/nlohmann_json
remote: Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
fatal: remote error: upload-pack: not our ref a0e9fb1e638cfbb5b8b556b7c51eaa81977bad48
fatal: Fetched in submodule path 'deps/nlohmann_json', but it did not contain a0e9fb1e638cfbb5b8b556b7c51eaa81977bad48. Direct fetching of that commit failed.
This error seems to be silenced in the script:
if [[ ! -f "$root_dir/deps/nlohmann_json/CMakeLists.txt" ]] && command -v git >/dev/null 2>&1; then
git -C "$root_dir" submodule update --init --depth 1 deps/nlohmann_json >/dev/null 2>&1 || true
fi
Running nix develop then cabal build and cabal test separately also does not help:
Collaborator
|
Sorry, it partly my fault - it seems that the directory wasn't as clean as I thought - causes errors to be silently ignored here and explode in cmake. |
Member
Author
|
I'll look into this problem this weekend(I can't work Wednesday and Thursday this week). |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR is a successor to #276.
The main changes from #276 are
cabalSOLCORE_CONTRACT_TESTS_ALLOW_SKIP=1)intxandblstare pinned innix/evmone-pins.nixand checked against evmone’s own CMake pins at build time