Fix buffer-len handling in the component adapter #381
Merged
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.
Fix handling of the buffer-length errors in the component adapter by turning the compute.wit error type into a variant. This allows us to pass out the length that would have allowed the operation to succeed when raising the
Error::BufferLen
error.This PR also adds the necessary plumbing for running additional tests as adapted components, which should help catch more of these bugs as more of the test suite is enabled for adapted components.
One change was required to the
response
test for it to work with the component model: testing that too-long header names returned an error required that we switch to explicitly constructing those header values, instead of passing an invalid length. This is due to the requirement that we be able to construct a valid string from the buffer/length arguments, and would trap when using the component adapter otherwise.