Default properties
Every Antithesis test run checks a set of default properties. These include properties that apply to almost any software system, such as checking that your environment is set up correctly, that you don’t run out of memory, and that there are no unexpected crashes. Default properties also include the following properties that only apply to some systems:
- Test template properties, which are listed automatically if Antithesis finds test commands in any test template in your containers.
- Language-specific properties for Rust, Go and Java, which can be enabled for your system by our forward-deployed engineers.
This page lists all default properties in the groups that you will see in your triage report.
To test specific features of your software, use the Antithesis SDKs to define custom properties.
Setup properties
These properties verify that your test environment is correctly configured.
| Property | Details |
|---|---|
| No Antithesis errors | No errors from Antithesis system components. |
| Software images match expected platform | All images are built for amd64. |
| Recent software version provided | At least one of your container images was created within the last 72 hours. |
| Paths found for Antithesis instrumentation | Paths the instrumentor found to catalog, listed by container, search directory, and language. Applies to languages that Antithesis catalogs from `/opt/antithesis/catalog: Java, Python, and .NET. |
| No invalid paths found during Antithesis instrumentation | No path under /opt/antithesis/catalog/ is a symlink to another symlink. Applies to languages that Antithesis catalogs from /opt/antithesis/catalog/: Java, Python, and .NET. |
| Symbols were uploaded | Symbols files were uploaded during instrumentation. |
| No Antithesis build errors | No errors during the build step. |
| No Antithesis build warnings | No warnings during the build step. |
| Software was instrumented | At least one instrumented module was detected. |
| Containers joined the Antithesis network | At least one container sent traffic over the Antithesis platform’s network bridge. |
| The Antithesis Fault Injector was started | |
| Thread pausing was enabled | At least one instrumented process had thread delays injected. |
| No Antithesis session errors | No errors from the Antithesis SaaS service. |
| Antithesis SDK version is supported | |
| Logging output was limited | Ratio of logging output to total CPU time spent running the simulation stayed below 200 MB/core-hour. |
Test efficiency properties
These properties measure how efficiently Antithesis is able to run your tests.
| Property | Details |
|---|---|
| Virtual time per wall time | Ratio of simulation time to real time (normalized to single core). Often this number will be lower than 1, but in a highly optimized test it can go above 1, as Antithesis can “fast-forward” the simulation when the software under test is idle. |
| Test ran with full parallelism | Test ran over the full set of available Antithesis VMs. This can fail if conditions in the system under test cause so much memory pressure that it is impossible to maintain active simultaneous simulation across all VMs. |
Performance properties
These properties test the performance of your system.
| Property | Details |
|---|---|
| Peak memory usage | Memory usage never exceeded 95% of the total available. |
Correctness properties
These properties test the functional behavior and uptime of your system.
| Property | Details |
|---|---|
| No unexpected crashes | No processes died with a program error signal (SIGSEGV, SIGBUS, etc.) |
| No unexpected container exits | No containers exited with codes that indicate an unexpected error. Exit codes 0, 137 (SIGKILL), and 143 (SIGTERM) are excluded. |
Test template properties
These properties verify the behavior of your test templates. If you’ve added any test templates, these properties show up by default in your triage report.
| Property | Details |
|---|---|
| All commands were started at least once | Every test template was started in at least one branch of the run. |
| All commands were run to completion at least once | Every test template was run to completion in at least one branch of the run. |
| Commands finish with zero exit code | No command returned a non-zero exit code. |
| Invalid commands found | No invalid commands were discovered. |
| Unique commands found | Lists all unique commands found (always passes). |
Language-specific properties
Antithesis provides additional language-specific sets of properties in Go, Rust and Java. These properties detect language-specific failures like panics, data races, and uncaught exceptions.
These properties are disabled by default. To enable them for your project, talk to your forward-deployed engineer.
Rust
| Property | Details |
|---|---|
| No panics (Rust) | No Rust panic messages in container output. |
Go
| Property | Details |
|---|---|
| No data races (Go) | No data race detected (requires building with -race). |
| No panics (Go) | No panic: in container output. |
| No fatals (Go) | No fatal error: in container output. |
Java
| Property | Details |
|---|---|
| No uncaught exception(s) (Java) | No uncaught Java exceptions. |