Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Syscall Testing Epic #585

Closed
37 of 57 tasks
Stebalien opened this issue May 19, 2022 · 3 comments · Fixed by #1681
Closed
37 of 57 tasks

Syscall Testing Epic #585

Stebalien opened this issue May 19, 2022 · 3 comments · Fixed by #1681
Assignees
Labels
P2 P2: Should be resolved Topic: Testing

Comments

@Stebalien
Copy link
Member

Stebalien commented May 19, 2022

See #584 for an example. Take a look at the documentation in https://docs.rs/fvm_sdk/3.0.0-alpha.24/fvm_sdk/index.html for expected behavior.

  • ipld
    • block_open
      • basic functionality
      • invalid cid
      • invalid cid pointer
      • very large cid (check for ooms)
    • block_read
    • block_create
      • basic functionality
      • forbidden codec.
      • large block (over 1MiB)
    • block_stat
      • basic functionality
      • returns the correct length/codec
      • invalid id returns correct error
    • block_link
      • basic functionality
      • invalid id returns correct error
      • cid buffer too short.
      • invalid hash function/length returns correct errors
  • self
    • root
      • returns correct root
      • returns the correct error after selfdestruct
    • set_root
      • updates the root
      • refuses to update the root when read-only
      • returns the correct error after selfdestruct
    • current_balance
      • returns correct balance
      • returns 0 after selfdestruct
    • self_destruct
      • doesn't work when read-only
      • basic functionality
      • fails when the recipient doesn't exist
      • fails when the recipient is self
      • is idempotent
  • actor
    • lookup_delegated_address
    • resolve_address
      • can resolve addresses
      • returns the correct errors on failure
    • get_actor_code_cid
      • correctly resolves code CIDs
      • returns the correct error if an actor doesn't exist
    • create_actor
    • next_actor_address (extend the create_actor tests)
      • returns the correct address
      • changes after actor deployment
    • get_builtin_actor_type
  • crypto
    • verify_signature
    • hash
    • recover_secp_public_key
    • compute_unsealed_sector_cid
    • verify_consensus_fault test with mocked extern?
    • verify_seal (requires params)
    • verify_post (requires params)
    • verify_replica_update (requires params)
    • verify_aggregate_seal (requires params)
    • batch_verify_seals (requires params)
  • rand - test with mocked externs?
  • send ?
@Stebalien
Copy link
Member Author

Things to check for:

  • Invalid arguments are correctly caught.
  • Correct error codes are returned.
  • Invariants are maintained (delete actor twice, delete, then set root, etc.).

@maciejwitowski
Copy link
Contributor

@Stebalien Do we want to work on this in M2.1?

@maciejwitowski maciejwitowski added this to the M2.1 milestone Oct 7, 2022
@Stebalien
Copy link
Member Author

M2.1.5? This can land after we start the audits, but this is some important testing debt.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
P2 P2: Should be resolved Topic: Testing
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants