Edit

kc3-lang/brotli/tests/compatibility_test.sh

Branch :

  • Show log

    Commit

  • Author : Stephen Kyle
    Date : 2018-09-27 10:00:33
    Hash : 67f059ea
    Message : Cross compilation support (#709) * build: add cross-compilation support to make Set CROSS_COMPILE when running make to use the selected cross compilation toolchain, such as arm-linux-gnueabihf, or aarch64-linux-gnu. Testing requires the presence of qemu - 'qemu-$(ARCH)' will be executed, where ARCH is the first part of the toolchain triplet. * build: add cross-compilation support to cmake If C_COMPILER/CXX_COMPILER/CC/CXX are found to have cross-compilation triplets in front of the compiler, then qemu will be used to execute the tests. * CI: add arm-linux-gnueabihf-gcc builder to Travis The version of qemu available in Ubuntu trusty (as provided by Travis) appears to have a bug in qemu-aarch64, which leads to the compatibility tests failing on some inputs, erroneously rejecting the input as corrupt. Once Travis supports xenial, we could add an aarch64-gnu-linux-gcc builder as well. * CI: propagate cmake errors out of .travis.sh Seems like even if cmake fails, the error isn't picked up by Travis.

  • tests/compatibility_test.sh
  • #!/usr/bin/env bash
    #
    # Test that the brotli command-line tool can decompress old brotli-compressed
    # files.
    #
    # The first argument may be a wrapper for brotli, such as 'qemu-arm'.
    
    set -o errexit
    
    BROTLI_WRAPPER=$1
    BROTLI="${BROTLI_WRAPPER} bin/brotli"
    TMP_DIR=bin/tmp
    
    for file in tests/testdata/*.compressed*; do
      echo "Testing decompression of file $file"
      expected=${file%.compressed*}
      uncompressed=${TMP_DIR}/${expected##*/}.uncompressed
      echo $uncompressed
      $BROTLI $file -fdo $uncompressed
      diff -q $uncompressed $expected
      # Test the streaming version
      cat $file | $BROTLI -dc > $uncompressed
      diff -q $uncompressed $expected
      rm -f $uncompressed
    done