diff options
Diffstat (limited to 'scripts/rspec_bisect_flaky')
-rwxr-xr-x | scripts/rspec_bisect_flaky | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/scripts/rspec_bisect_flaky b/scripts/rspec_bisect_flaky new file mode 100755 index 00000000000..efeb9bcb5a0 --- /dev/null +++ b/scripts/rspec_bisect_flaky @@ -0,0 +1,29 @@ +#!/usr/bin/env bash + +## Usage: scripts/rspec_bisect_flaky <files...> +# +# The files should be listed in order, with the last file being the file where +# the flaky spec lives. + +if [ $# -eq 0 ]; then + echo "Usage: scripts/rspec_bisect_flaky <files...>" + exit +fi + +files=( $@ ) +len=${#files[@]} +target=${files[$len-1]} + +# Trap interrupts and exit instead of continuing the loop +trap "echo Exited!; exit 2;" SIGINT SIGTERM + +# Show which set of specs are running +set -x + +# Do the speedy case first, run each spec with our failing spec +for file in "${files[@]}"; do + bin/rspec $file $target +done + +# Do a full bisect given we did not find candidates with speedy cases +bin/rspec --bisect=verbose $@ |