mirror of https://github.com/pulumi/pulumi.git
c496921d44
Issue #10659 lists a number of extra linting checks that we could enable in order to make our Go code more robust. This commit implements as many as seem sensible: * `durationcheck`, which checks for multiplication of `time.Duration`s, which can lead to unexpected behaviour (e.g. `time.Second * time.Second` is *not* one second) * `goprintffuncname`, which checks that `Printf`-like functions are appropriately suffixed with `f` to indicate as such * `tenv`, which checks for `os.Setenv` in tests where `t.Setenv` is generally a better solution * `wastedassign`, which checks for assignments whose values are never used (such as initial values before an `if` where both branches then overwrite the value) * `whitespace`, which checks for blank lines at the beginning and end of blocks such as functions, `if`s, `for`s and so on. This commit does *not* enable the following checks listed in #10659: * `wrapcheck`, which insists that third-party library errors are always `%w`rapped -- we have a lot of cases where we don't do this and it's probably a bit more involved than "just wrap them" in terms of making sure we don't break anything (maybe) * `predeclared`, which checks for shadowing of existing Go identifiers -- we use `old` and `new` a lot, especially in step generation, so this is probably a slightly bigger clean-up/one we might want to opt out of * `mnd` (magic number detection) -- we have a lot of failures on this * `nilnil` -- we only have a couple of failures on this; these could probably be handled with `//nolint` but for now I've opted not to take this route. |
||
---|---|---|
.. | ||
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 | ||
test_plan.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.