diff --git a/tests/.gitignore b/tests/.gitignore new file mode 100644 index 00000000..24600083 --- /dev/null +++ b/tests/.gitignore @@ -0,0 +1 @@ +!Makefile diff --git a/tests/Makefile b/tests/Makefile new file mode 100644 index 00000000..e1afd8d5 --- /dev/null +++ b/tests/Makefile @@ -0,0 +1,11 @@ + +TESTS = $(wildcard t[0-9][0-9][0-9][0-9]-*.sh) + +all: + +check: + @for test in $(TESTS); do \ + echo $$test; \ + ./$$test; \ + done + diff --git a/tests/libtest.sh b/tests/libtest.sh new file mode 100644 index 00000000..ec0bf165 --- /dev/null +++ b/tests/libtest.sh @@ -0,0 +1,31 @@ +# Source library for shell script tests +# +# Copyright (C) 2011 Colin Walters +# +# 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 2 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# Author: Colin Walters + +TMPDIR=${TMPDIR:-/tmp} +export TMPDIR +test_tmpdir=`mktemp -d "$TMPDIR/hacktree-tests.XXXXXXXXXX"` +cd "$test_tmpdir" +touch "$test_tmpdir/.test$$" + +die () { + test -f "$test_tmpdir/.test$$" && rm -rf "$test_tmpdir" +} + +trap 'die' EXIT diff --git a/tests/t0000-init-link-files-fsck.sh b/tests/t0000-init-link-files-fsck.sh new file mode 100755 index 00000000..4178beba --- /dev/null +++ b/tests/t0000-init-link-files-fsck.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +set -e + +. libtest.sh + +echo '1..5' + +mkdir files +files=`pwd`/files +touch files/foo +echo moo > files/cow + +mkdir repo +cd repo +hacktree init +echo 'ok init' +hacktree fsck -q +echo 'ok fsck' +hacktree link-file $files/foo +echo 'ok link' +hacktree fsck -q +echo 'ok link-fsk' +hacktree link-file $files/cow +hacktree fsck -q +echo 'ok link-fsk2' +