Use mikktspace-sys
instead of custom C for regression testing
#4
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.
Objective
Currently, testing relies of a C project to generate reference data and requires storing binary blobs in-repo to compare against. This is not ideal from a security perspective, and makes contributing harder for those unfamiliar with C-styled projects.
Solution
mikktspace-sys
, a popular binding to the original C implementation ofmikktspace
, as a dev-dependency.Shadow
, which wraps an implementation ofGeometry
and will internally compare results tomikktspace-sys
, panicking on difference. This is only enabled when#[cfg(test)]
is enabled, so this will never affect end-users.Notes
generate_tangents
, we can ensure that all tests will compare their results to the C implementation. This allows for future fuzz-testing to also act as regression testing.