mirror of https://github.com/pulumi/pulumi.git
85e39e09f6
In #17623 and the PRs that followed it, we added fuzz testing capabilities to the engine's lifecycle test suite, with a view to randomly generating test cases in the hopes of proactively finding snapshot integrity bugs in our code. This commit extends the fuzzer so that it randomly parents, re-parents, and aliases reparented resources, covering the various parent/child relationships that these actions lead to and which can result in snapshot integrity issues if handled improperly. In particular, we can now fuzz the following: * Randomly parenting a resource to another resource in an initial snapshot. * Randomly updating a resource in a program to either add, remove, or change an existing parent. * Randomly aliasing a resource whose parent (and consequently URN) has been changed by a program to point back to the URN it had originally. Part of #17213 |
||
---|---|---|
.. | ||
framework | ||
fuzzing | ||
testdata | ||
README.md | ||
alias_test.go | ||
analyzer_test.go | ||
continue_on_error_test.go | ||
delete_before_replace_test.go | ||
golang_sdk_test.go | ||
import_test.go | ||
loader_test.go | ||
parameterized_test.go | ||
pending_delete_test.go | ||
pending_replace_test.go | ||
provider_test.go | ||
pulumi_test.go | ||
refresh_legacy_diff_test.go | ||
refresh_test.go | ||
resource_reference_test.go | ||
retain_on_delete_test.go | ||
source_query_test.go | ||
step_generator_test.go | ||
target_test.go | ||
transformation_test.go | ||
update_plan_test.go |
README.md
(lifecycle-tests)=
Lifecycle tests
Lifecycle tests exercise the Pulumi engine and serve as a specification for the behaviours and interactions of the various features that define the lifecycle of a Pulumi program. This includes, but is not limited to:
- The operation(s) being executed (
up
,preview
, etc.) and the options passed to that operation (--target
,--target-dependents
, etc.). - The programs being executed -- their resources, invocations, and the various
options that might be associated with them (
parent
,retainOnDelete
, etc.). - The state of the program before and after operations are executed.
How and when to use