#!/bin/bash # # This script lists the tests which are failing in the output of Robolectric # tests. # TODO: Remove this script and move the functionality into a custom JUnit runner. # Matches the line specifying which test has failed and matches the test name # and class name as the first and second matching group, respectively. readonly FAILED_TEST_RE='^[1-9][0-9]*)\s\(\w\+\)(\(\(\w\|.\)\+\))$' # Fails with a message. function fatal() { echo 1>&2 "FATAL: $@" exit 113 } function main() { test $# = 0 || fatal "Too many arguments: $@" sed -e '1,/^There \(was 1 failure\|were [0-9]* failures\):$/d' | grep "$FAILED_TEST_RE" | sed -e "s/$FAILED_TEST_RE/\2.\1/" || true } set -e set -o pipefail main "$@"