aquavm/Cargo.toml
Ivan Boldyrev 513eb0e126
Testing framework, chapter I (#293)
Testing framework for AquaVM

Its primary features are:
1. It generates services declaratively by annotation in the comments inserted just after calls.
2. Ephemeral network keeps each node's data and incoming data queue.  The network can be also generated based on peer IDs featured in the script.
3. One can explicitly add additional peers and services.

The example of the script annotations:
```
(seq
  (call "peer_1" ("service" "func") [] var) ; ok=42
  (call "peer_2" ("service" "func") [var]) ; err={"ret_code": 1, "result":"no towel"}
)
```

Passing this script to `air_test_framework::TestExecutor::new(...)` will create a virtual network with peers "peer_1" and "peer_2" (and any peer you provide in the `TestRunParameters`), and the particular calls will return respective values.

Please note that autogenerated services use modified service name as a side channel for finding a correct value: "..{N}" is added to each service name (two dots and serial number).  Be careful with service names taken from a variable.
2022-09-01 18:12:55 +07:00

41 lines
1.1 KiB
TOML

[workspace]
members = [
"air",
"air-interpreter",
"avm/interface",
"avm/server",
"crates/air-lib/air-parser",
"crates/air-lib/execution-info-collector",
"crates/air-lib/interpreter-data",
"crates/air-lib/interpreter-interface",
"crates/air-lib/lambda/ast",
"crates/air-lib/lambda/parser",
"crates/air-lib/log-targets",
"crates/air-lib/polyplets",
"crates/air-lib/test-utils",
"crates/air-lib/trace-handler",
"crates/air-lib/utils",
"crates/beautifier",
"crates/data-store",
"crates/testing-framework",
"tools/cli/air-beautify",
"tools/cli/air-trace",
]
exclude = [
"air/tests/test_module/integration/security_tetraplets/auth_module",
"air/tests/test_module/integration/security_tetraplets/log_storage",
"crates/interpreter-wasm",
]
[profile.release]
opt-level = 3
# since the interpreter in actively development stage, these settings are true at least for a while
debug = true
overflow-checks = true
debug-assertions = false
panic = "unwind"
[patch.crates-io]
polyplets = { path = "crates/air-lib/polyplets" }