From 112819777c7f77a47a97474dee21bbe1cfe531ec Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Date: Sat, 1 Aug 2015 23:45:55 +0200 Subject: The test suite is working just fine --- .travis.yml | 1 - Dockerfile | 8 ------- g.sh | 2 +- run-tests.sh | 29 -------------------------- t/expected.txt | 26 +++++++++++++++++++++++ t/tests.sh | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 6 files changed, 91 insertions(+), 41 deletions(-) delete mode 100644 Dockerfile delete mode 100755 run-tests.sh create mode 100644 t/expected.txt diff --git a/.travis.yml b/.travis.yml index ff68d06..1530789 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,7 +1,6 @@ language: bash before_script: - - source g.sh - sudo apt-get install -y zsh script: diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index 227634b..0000000 --- a/Dockerfile +++ /dev/null @@ -1,8 +0,0 @@ -FROM opensuse:latest -MAINTAINER Miquel Sabaté Solà - -RUN mkdir /g -WORKDIR /g -ADD . /g - -ENTRYPOINT ["bash", "t/tests.sh"] diff --git a/g.sh b/g.sh index 85498e0..09ff810 100644 --- a/g.sh +++ b/g.sh @@ -116,7 +116,7 @@ g() { return 1 fi __g_get_shortcuts - __g_shortcuts[$2]=$path + __g_shortcuts[$2]=$(realpath $path) __g_save_shortcuts ;; rm) diff --git a/run-tests.sh b/run-tests.sh deleted file mode 100755 index 1135351..0000000 --- a/run-tests.sh +++ /dev/null @@ -1,29 +0,0 @@ -# Copyright (C) 2013-2015 Miquel Sabaté Solà -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License along -# with this program; if not, write to the Free Software Foundation, Inc., -# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. - -set -e - -if [ -z "$(pidof docker)" ]; then - echo "Docker has to be running!" - exit 1 -fi -if [ ! -z "$(docker images g | grep latest)" ]; then - id="$(docker images g | grep latest | awk '{ print $3 }')" - docker rmi $id -fi - -docker build -t g:latest . -docker run --rm -it g:latest diff --git a/t/expected.txt b/t/expected.txt new file mode 100644 index 0000000..d78dcb8 --- /dev/null +++ b/t/expected.txt @@ -0,0 +1,26 @@ +g version 0.3.8 +g version 0.3.8 +usage: g [-h | --help] [-v | --version] [] + +The g commands are: + add Add a new shortcut. + rm Remove a shorcut. + list List all the available shortcuts. +usage: g [-h | --help] [-v | --version] [] + +The g commands are: + add Add a new shortcut. + rm Remove a shorcut. + list List all the available shortcuts. +Cannot use 'add': keyword. +usage: g add [path] +usage: g rm +usage: g rm +b root +b root +b +t +c +Unknown shortcut `unknown'. + +usage: g [-h | --help] [-v | --version] [] diff --git a/t/tests.sh b/t/tests.sh index 79c635f..a0d32e2 100644 --- a/t/tests.sh +++ b/t/tests.sh @@ -15,5 +15,67 @@ set -e -echo "Hello World" -exit 0 +# Cleanup previous tests and setup some special variables. +d="$(realpath $(dirname $0))" +rm -f $d/output.txt +HOME="$d" + +# Setup the test file system. +mkdir -p $d/a/b/c +mkdir -p $d/a/d + +source $d/../g.sh + +# First check that the basic commands are there. +g -v &>> $d/output.txt +g --version &>> $d/output.txt +g -h &>> $d/output.txt +g --help &>> $d/output.txt + +# Let's add some shortcuts. +cd $d +g add root +g add b a/b +g add c a/b/c + +# Errors on the `add` command. +set +e +g add add &>> $d/output.txt +g add lala lala lala &>> $d/output.txt +set -e + +# Removing shortcuts. +g rm c +g rm d + +# Errors on the `rm` command. +set +e +g rm &>> $d/output.txt +g rm lala lala &>> $d/output.txt +set -e + +# The list command. +g list --keys &>> $d/output.txt +g list | awk '{ print $1 }' | xargs &>> $d/output.txt + +# Bare g command. +original=`pwd` +cd / +g b +basename $(pwd) &>> $d/output.txt +g root +basename $(pwd) &>> $d/output.txt +g root/a/b/c +basename $(pwd) &>> $d/output.txt +cd $original + +# Unknown shortcut. +set +e +g unknown &>> $d/output.txt +set -e + +# Teardown +diff $d/output.txt $d/expected.txt +rm $d/output.txt +rm -rf a +rm -rf $d/.gfile -- cgit v1.2.3