+ # Compress raw json outputs, if any.
+ pushd "${ARCHIVE_DIR}" || die
+ if [ -d "tests" ]; then
+ # Use deterministic order.
+ options+=("--sort=name")
+ # We are keeping info outputs where they are.
+ # Assuming we want to move anything but info files (and dirs).
+ options+=("--exclude=*.info.json")
+ # There may be other unforeseen errors,
+ # we still want to execute subsequent commands, so disable set -e.
+ set +e
+ tar cvf "tests_output_raw.tar" "${options[@]}" "tests"
+ # If compression fails, it leaves an uncompressed .tar,
+ # we still want to archive that to investigate why compression failed.
+ time xz -9e "tests_output_raw.tar"
+ # Tar can remove when archiving, but chokes (not deterministically)
+ # on attempting to remove dirs (not empty as info files are there).
+ # So we need to delete the raw files manually.
+ find "tests" -type f -name "*.raw.json" -delete
+ set -e
+ fi
+ popd || die
+