Add tests to ensure no copy on assignment, fix map #95
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds tests to ensure
protoMap
,protoList
andprotoMessage
are not copying values on assignment and correctsprotoMap
. Yesterday I learned Skycfg previously did this sometimes, e.g. in the old implementation this would happen:(
skycfg/internal/go/skycfg/proto_message.go
Line 518 in 677b39f
The re-implementation fixed this for lists but not for maps incidentally so I added tests to make this behavior explicit. AFAICT from testing starlark, starlark does not copy on assignment for lists and dictionaries (like python) and seems to be what is described in https://github.com/bazelbuild/starlark/blob/master/spec.md#value-concepts
Tests
Added tests when assigning skycfg and starlark values into a skycfg object