From 28cb3678c9571f042e79bd8fb7b4b10ad1f4b62d Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Thu, 4 Feb 2016 00:32:08 +0100 Subject: Hopefully fixed tests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miquel Sabaté Solà --- .travis.yml | 9 +++--- Dockerfile | 5 ++++ Makefile | 3 ++ t/expected.txt | 10 +++---- t/test.sh | 57 ++++++++++++++++++++++++++++++++++++++ t/tests.sh | 87 ---------------------------------------------------------- 6 files changed, 74 insertions(+), 97 deletions(-) create mode 100644 Dockerfile create mode 100644 Makefile create mode 100644 t/test.sh delete mode 100644 t/tests.sh diff --git a/.travis.yml b/.travis.yml index 1530789..91c6657 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,7 @@ language: bash - -before_script: - - sudo apt-get install -y zsh +sudo: required +services: + - docker script: - - bash t/tests.sh - - zsh t/tests.sh + - make diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..2fa1e49 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +FROM alpine +MAINTAINER Miquel Sabaté Solà + +RUN apk add --update bash zsh util-linux && rm -rf /var/cache/apk/* +COPY g.sh t/test.sh t/expected.txt / diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..f9874d6 --- /dev/null +++ b/Makefile @@ -0,0 +1,3 @@ +test :: + @docker build -t mssola/g:latest . + @docker run --rm mssola/g:latest bash test.sh diff --git a/t/expected.txt b/t/expected.txt index 5a56bbe..0f58ff0 100644 --- a/t/expected.txt +++ b/t/expected.txt @@ -3,14 +3,14 @@ g version 0.3.9 usage: g [-h | --help] [-v | --version] [] The g commands are: - add Add a new shortcut. - rm Remove a shorcut. + 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. + add Add a new shortcut. + rm Remove a shorcut. list List all the available shortcuts. Cannot use 'add': keyword. usage: g add [path] @@ -19,7 +19,7 @@ usage: g rm b root b root b -t +/ c Unknown shortcut `unknown'. diff --git a/t/test.sh b/t/test.sh new file mode 100644 index 0000000..2710f6e --- /dev/null +++ b/t/test.sh @@ -0,0 +1,57 @@ +#!/bin/bash + +set -e + +source g.sh +cd / + +# Setup the test file system. +mkdir -p a/b/c +mkdir -p a/d + +g -v &>> /output.txt +g --version &>> /output.txt +g -h &>> /output.txt +g --help &>> /output.txt + +# Let's add some shortcuts. +g add root +g add b a/b +g add c a/b/c + +# Errors on the `add` command. +set +e +g add add &>> /output.txt +g add lala lala lala &>> /output.txt +set -e + +# Removing shortcuts. +g rm c +g rm d + +# Errors on the `rm` command. +set +e +g rm &>> /output.txt +g rm lala lala &>> /output.txt +set -e + +# The list command. +g list --keys &>> /output.txt +g list | awk '{ print $1 }' | xargs &>> /output.txt + +# Bare g command. +cd / +g b +basename $(pwd) &>> /output.txt +g root +basename $(pwd) &>> /output.txt +g root/a/b/c +basename $(pwd) &>> /output.txt + +# Unknown shortcut. +set +e +g unknown &>> /output.txt +set -e + +# Final diff +diff /expected.txt /output.txt diff --git a/t/tests.sh b/t/tests.sh deleted file mode 100644 index 49dda24..0000000 --- a/t/tests.sh +++ /dev/null @@ -1,87 +0,0 @@ -# Copyright (C) 2013-2016 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, see . - -set -e - -# From g.sh -__g_realpath() { - [ -d "$1" ] && echo "$(cd "$1" && pwd)" || echo "$(cd "$(dirname "$1")" \ - && pwd)/$(basename "$1")" -} - -# Cleanup previous tests and setup some special variables. -d="$(__g_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