Skip to content

ASTC decoding part 4: Fuzz testing#49

Draft
Erik-White wants to merge 14 commits into
SixLabors:mainfrom
Erik-White:astc-decoding-fuzz-testing
Draft

ASTC decoding part 4: Fuzz testing#49
Erik-White wants to merge 14 commits into
SixLabors:mainfrom
Erik-White:astc-decoding-fuzz-testing

Conversation

@Erik-White
Copy link
Copy Markdown
Contributor

Prerequisites

  • I have written a descriptive pull-request title
  • I have verified that there are no overlapping pull-requests open
  • I have verified that I am following the existing coding patterns and practice as demonstrated in the repository. These follow strict Stylecop rules 👮.
  • I have provided test coverage for my change (where applicable)

Description

The fourth part of ASTC (Adaptive scalable texture compression) decoding. ASTC is used with KTX containers to compress texture data.
This adds a fuzz testing harness to ImageSharp.Textures. It currently only contains ASTC related tests, but could easily be extended with others in future. It can either be run with a pre-determined seed, or with directed fuzzing via libfuzzer.

This is very much an optional part of the ASTC implementation. I have found fuzz testing useful in the other projects, but I will leave it up to you if whether you think it is suitable here. (Un)forunately I didn't actually find any bugs via these tests, but hopefully that indicates that the ASTC decoder is already very solid!

Prerequisites

Test data

Everything used is either created by myself, or sourced from
https://github.com/KhronosGroup/KTX-Software (Apache 2.0 license)
https://github.com/KhronosGroup/KTX-Software-CTS (Apache 2.0 license)
https://github.com/ARM-software/astc-encoder (Apache-2.0 license)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant