blob: f7d16fdeb8652b3411d7b2f62a2df6d67620d272 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
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
|