Skip to content

DamlCov: Test coverage analysis tool for Daml smart contracts#323

Open
mderka wants to merge 7 commits into
canton-foundation:mainfrom
mderka:coverage
Open

DamlCov: Test coverage analysis tool for Daml smart contracts#323
mderka wants to merge 7 commits into
canton-foundation:mainfrom
mderka:coverage

Conversation

@mderka
Copy link
Copy Markdown

@mderka mderka commented May 11, 2026

Development Fund Proposal Submission

Proposal file:
proposals/test-coverage-damlcov.md


Summary

We propose developing a test coverage tool for Daml smart contracts. Such a tool is currently not available for Daml, meanwhile it belongs to the basic toolbox expected by developers. The tool will be designed from the ground up for Daml's unique authorization model, UTXO-like state, and multi-party privacy semantics. It will be developed as open-source, free to use, executable locally, will integrate with the current Daml tooling, and will provide reports usable in CI/CD pipelines.


Checklist

  • Proposal file added under /proposals/
  • Milestones and funding amounts defined
  • Acceptance criteria included
  • Alignment with Canton priorities described

Notes for Reviewers

This proposal separates our DamlCov into an independent proposal from PR#52.

mderka and others added 6 commits March 5, 2026 18:11
Updated references from 'daml' to 'dpm' in the documentation for the DamlCov and DamlFuzz tools. Added a Go-to-Market strategy section outlining distribution, onboarding, and community evangelism plans.

Signed-off-by: Martin Derka <martin@quantstamp.com>
Added responses to reviews regarding the test coverage and fuzzing framework proposal, detailing ecosystem demand, scope, adoption expectations, and integration with existing workflows.

Signed-off-by: Martin Derka <martin@quantstamp.com>
- Removed test coverage (separate PR)
- Added deliverable to M3
- Added total funding
- Adjusted allocation to M3
- Clarified support
- Removed fuzzer (separate PR)
- Added total funding
- Clarified support
@mderka mderka requested a review from a team as a code owner May 11, 2026 17:07
@mderka mderka changed the title Coverage DamlCov: Test coverage analysis tool for Daml smart contracts May 11, 2026
@mderka mderka mentioned this pull request May 11, 2026
4 tasks
Delete proposals/fuzzing-framework-damlfuzz.md

Signed-off-by: Martin Derka <martin@quantstamp.com>
@mderka
Copy link
Copy Markdown
Author

mderka commented May 11, 2026

@monsieurleberre This PR now contains the DamlCov separated from PR#52. I am addressing the remained of the feedback here:

You asked whether the approach of marking taken branches in a smart contract could make the system independent of the client, and serve also as coverage data for service implementations. I believe that both items are possible, and I would treat them individually. We can mark the multi-client support as an item that is important for developer adoption, and specifically focus on it. For the service coverage, the underlying requirement is that the coverage tool must be able export the coverage data as an artifact after the run, so that they can be consumed in the subsequent pipeline steps. We can certainly make that happen.

Regarding the observer and privacy comment, there definitely won't be any changed to the privacy model of production systems. All the logic modification must involve local and simulated environments only. The developers should remain unaffected and to a great extent unaware. We agree that this will be one of the implementation challenges to overcome, but we also consider it just that - an implementation challenge. We will be happy to provide early designs and consult our solutions while addressing it, if there is interest to be involved!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Incoming

Development

Successfully merging this pull request may close these issues.

1 participant