From 42f1b15a5a19dbb8836f021a7007848b9fc231a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mattias=20Andr=C3=A9e?= Date: Sat, 17 Aug 2013 15:50:42 +0200 Subject: [PATCH] test auto-completion scripts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Mattias Andrée --- dev/tests/auto-completion | 34 ++++++++++++++++++++++++++++++++++ dev/tests/auto-completion-tool | 34 ++++++++++++++++++++++++++++++++++ dev/tests/test-everything | 3 ++- 3 files changed, 70 insertions(+), 1 deletion(-) create mode 100755 dev/tests/auto-completion create mode 100755 dev/tests/auto-completion-tool diff --git a/dev/tests/auto-completion b/dev/tests/auto-completion new file mode 100755 index 00000000..7e1bfeb8 --- /dev/null +++ b/dev/tests/auto-completion @@ -0,0 +1,34 @@ +#!/bin/bash + +if [ ! -f ./src/__main__.py ]; then + echo $'\e[01;31m-- You need to cd into the repository'\'$'s root directory --\e[00m' + exit 140 +fi + +echo $'\e[1m-- Testing that the shell auto-completion script compiles --\e[0m' + +## If this automated bisection stops at a commit with a syntax error or other error that cases the test to fail for another reason, +## you will need to manually run bisect, and use `git reset --hard HEAD~1` (or similar) to skip that commit, see `git bisect --help` + +if ! ./completion/auto-auto-complete.py bash --source ./completion/ponysay --output /dev/null; then + git bisect start + git bisect bad + git bisect good e8aa39a810e43866a8cc978a038545949711f999 + lastlog="" + while true; do + if ! ./completion/auto-auto-complete.py bash --source ./completion/ponysay --output /dev/null; then + git bisect good + else + git bisect bad + fi + # This part is a little hacky as I assume git use locale settings for the language and there seems to be no good way to automate a bisect. + nowlog="$(git bisect log | tail -n 1)" + if [ "${nowlog}" = "${lastlog}" ]; then + git bisect reset + exit 1 + fi + done +fi + +echo 'Test passed, you may want to update the last know good commit in ./dev/tests/auto-completion' + diff --git a/dev/tests/auto-completion-tool b/dev/tests/auto-completion-tool new file mode 100755 index 00000000..0ceaf8e7 --- /dev/null +++ b/dev/tests/auto-completion-tool @@ -0,0 +1,34 @@ +#!/bin/bash + +if [ ! -f ./src/__main__.py ]; then + echo $'\e[01;31m-- You need to cd into the repository'\'$'s root directory --\e[00m' + exit 140 +fi + +echo $'\e[1m-- Testing that the shell auto-completion script for ponysay-tool compiles --\e[0m' + +## If this automated bisection stops at a commit with a syntax error or other error that cases the test to fail for another reason, +## you will need to manually run bisect, and use `git reset --hard HEAD~1` (or similar) to skip that commit, see `git bisect --help` + +if ! ./completion/auto-auto-complete.py bash --source ./completion/ponysay-tool --output /dev/null; then + git bisect start + git bisect bad + git bisect good e8aa39a810e43866a8cc978a038545949711f999 + lastlog="" + while true; do + if ! ./completion/auto-auto-complete.py bash --source ./completion/ponysay-tool --output /dev/null; then + git bisect good + else + git bisect bad + fi + # This part is a little hacky as I assume git use locale settings for the language and there seems to be no good way to automate a bisect. + nowlog="$(git bisect log | tail -n 1)" + if [ "${nowlog}" = "${lastlog}" ]; then + git bisect reset + exit 1 + fi + done +fi + +echo 'Test passed, you may want to update the last know good commit in ./dev/tests/auto-completion' + diff --git a/dev/tests/test-everything b/dev/tests/test-everything index 9cc9076f..31720803 100755 --- a/dev/tests/test-everything +++ b/dev/tests/test-everything @@ -7,4 +7,5 @@ fi ./dev/tests/correct-pony-f ./dev/tests/correct-pony+f - +./dev/tests/auto-completion +./dev/tests/auto-completion-tool