Agoric / agoric-sdk

monorepo for the Agoric Javascript smart contract platform
Apache License 2.0
327 stars 208 forks source link

Plan work to improve test design and coverage of run-protocol #4432

Open turadg opened 2 years ago

turadg commented 2 years ago

What is the Problem Being Solved?

Some important functionality isn't yet tested. For example https://github.com/Agoric/agoric-sdk/pull/4394 changed the charging period governance but no tests broke. Writing tests was deferred to when we have a more complete specification of what's in run-protocol for MN-1 and how we should factor the tests. (E.g. what to do as unit tests and what to have in functional tests integrating SwingSet.)

Description of the Design

TBD

Security Considerations

Doesn't implicate security but could improve testing of security considerations.

Test Plan

n/a

turadg commented 2 years ago

I'll comment here with observations as they come up.

buildVatController is an abstraction that shouldn't be used for real applications because it doesn't give them the necessary amount of control over state initialization.. if they're using buildVatController, they probably can't survive a reboot. It's only used in tests right now and we should find a way to keep it that way. @deprecated isn't appropriate because it's a legit helper to use in tests. Currently used by tests in these packages:

Tartuffo commented 2 years ago

@turadg For proper project planning and tracking, this needs an area label covered by one of our weekly planning meetings. Please pick the appropriate one from: agd, agoric-cli, agoric-cosmos, amm, core economy, cosmic-swingset, endo, ertp, getrun, governance, installation-bundling, metering, oracle, pegasus, run-protocol, ses, staking, swingset, swingset-runner, tc39, token economy, tooling, ui, wallet, xsnap, zoe, zoe contract