From f2c9a7dbca9da36aa0cca8c4d0759e4d0406df91 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Tue, 15 Sep 2015 17:40:36 -0400 Subject: Add a basic test suite. --- tests.sh | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100755 tests.sh (limited to 'tests.sh') diff --git a/tests.sh b/tests.sh new file mode 100755 index 0000000..f7d16fd --- /dev/null +++ b/tests.sh @@ -0,0 +1,58 @@ +#!/bin/bash + +# Like a mythical touch -p +function touchp() { + install -Dm644 /dev/null "$1" +} + +# Creates a simple file+directory structure for tests +function basic_structure() { + touchp "$1/a" + touchp "$1/b" + touchp "$1/c/d" + touchp "$1/e/f" + mkdir -p "$1/g/h" + mkdir -p "$1/i" +} + +# Checks for any (order-independent) differences between bfs and find +function find_diff() { + diff -u <(./bfs "$@" | sort) <(find "$@" | sort) +} + +# Test cases + +function test_0001() { + basic_structure "$1" + find_diff "$1" +} + +function test_0002() { + basic_structure "$1" + find_diff "$1" -type d +} + +function test_0003() { + basic_structure "$1" + find_diff "$1" -type f +} + +function test_0004() { + basic_structure "$1" + find_diff "$1" -mindepth 1 +} + +function test_0005() { + basic_structure "$1" + find_diff "$1" -maxdepth 1 +} + +for i in {1..5}; do + dir="$(mktemp -d)" + test_$(printf '%04d' $i) "$dir" + status=$? + rm -rf "$dir" + if [ $status -ne 0 ]; then + exit $status + fi +done -- cgit v1.2.3