aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <mikisabate@gmail.com>2016-02-04 00:32:08 +0100
committerMiquel Sabaté Solà <mikisabate@gmail.com>2016-02-04 00:32:08 +0100
commit28cb3678c9571f042e79bd8fb7b4b10ad1f4b62d (patch)
treef35c55cb0dcb630018d789e81f64b1f072f447ef
parent1c71c30a06d77eeeb5cacd023b999e090e6fd670 (diff)
downloadg-28cb3678c9571f042e79bd8fb7b4b10ad1f4b62d.tar.gz
g-28cb3678c9571f042e79bd8fb7b4b10ad1f4b62d.zip
Hopefully fixed tests
Signed-off-by: Miquel Sabaté Solà <mikisabate@gmail.com>
-rw-r--r--.travis.yml9
-rw-r--r--Dockerfile5
-rw-r--r--Makefile3
-rw-r--r--t/expected.txt10
-rw-r--r--t/test.sh57
-rw-r--r--t/tests.sh87
6 files changed, 74 insertions, 97 deletions
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] <command> [<args>]
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] <command> [<args>]
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 <name> [path]
@@ -19,7 +19,7 @@ usage: g rm <name>
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à <mikisabate@gmail.com>
-#
-# 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 <http://www.gnu.org/licenses/>.
-
-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