Fix ASAN failures in integer_sequence_codec and partition

Introduce UTILS_RELEASE_ASSERT, which crashes if the condition isn't
met, even on release builds.

Update integer_sequence_codec and partition to use the new tests to
validate input parameters, and update the tests so that they expect the
crash to occur even on release builds.

Bug: 112691516, 112669735
Change-Id: Ic82edeffc64ca0f2b0d17f1c63563dfd8d9cdd71
6 files changed
tree: 954429f1e6f9f558f62bcc541f7db8a9b1e38f45
  1. include/
  2. src/
  3. third_party/
  4. tools/
  5. .gitignore
  6. BUILD.bazel
  7. CONTRIBUTING.md
  8. LICENSE
  9. README.md
  10. WORKSPACE
README.md

astc-codec

astc-codec is a software ASTC decoder implementation, which supports the ASTC LDR profile.

Example usage:

#include <astc-codec/astc-codec.h>

// ...

std::vector<uint8_t> astc = LoadMyASTCData();
const size_t width = 640;
const size_t height = 480;

std::vector<uint8_t> result;
result.resize(width * height * 4);

bool result = astc_codec::ASTCDecompressToRGBA(
    astc.data(), astc.size(), width, height, astc_codec::FootprintType::k4x4,
    result.data(), result.size(), /* stride */ width * 4);

Building

Install Bazel, and then run:

bazel build :astc_codec -c opt

astc-codec has been tested on Mac and Linux.

Run Tests

bazel test //...

Contributing

See CONTRIBUTING.md for important contributing requirements.

License

astc-codec project is licensed under the Apache License Version 2.0. You can find a copy of it in LICENSE.

This is not an officially supported Google product.