-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy path01.sh
More file actions
executable file
·74 lines (59 loc) · 1.46 KB
/
01.sh
File metadata and controls
executable file
·74 lines (59 loc) · 1.46 KB
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env bash
set -e
set -u
set -o pipefail
SCRIPT_PATH="$( cd "$(dirname "$0")" && pwd -P )"
BIN_PATH="${SCRIPT_PATH}/../bin"
DIR_PATH="${SCRIPT_PATH}/dirs"
cleanup() {
rm -rf "${DIR_PATH}" || true
rm -rf "${SCRIPT_PATH}/01.actual" || true
rm -rf "${SCRIPT_PATH}/01.expected" || true
rm -rf "${SCRIPT_PATH}/01.tmp" || true
}
###
### 01. Clean and create test dirs
###
cleanup
mkdir -p "${DIR_PATH}/dir 1"
mkdir -p "${DIR_PATH}/dir 2"
mkdir -p "${DIR_PATH}/dir 3"
mkdir -p "${DIR_PATH}/dir 4"
mkdir -p "${DIR_PATH}/dir 4/subdir"
touch "${DIR_PATH}/file 1"
touch "${DIR_PATH}/file 2"
###
### 02. Setup expected
###
{
echo "[OK] ADD succeeded: ./dir 1"
echo "[OK] ADD succeeded: ./dir 2"
echo "[OK] ADD succeeded: ./dir 3"
echo "[OK] ADD succeeded: ./dir 4"
} > "${SCRIPT_PATH}/01.expected"
###
### 03. Run watcherd
###
cd "${DIR_PATH}"
"${BIN_PATH}/watcherd" -v -p "." -a "echo 'add: %p'" -d "echo 'del: %p'" > "${SCRIPT_PATH}/01.tmp" &
watch_pid="${!}"
echo "Started watcherd with pid: ${watch_pid}"
echo "Waiting 5 sec."
sleep 5
cat "${SCRIPT_PATH}/01.tmp" | grep -Eo '\[OK.*' > "${SCRIPT_PATH}/01.actual"
###
### 04 .Compare results and shutdown
###
echo "Diff results"
if ! diff "${SCRIPT_PATH}/01.actual" "${SCRIPT_PATH}/01.expected"; then
echo "[ERR] Results did not equal"
echo "Killing watcherd"
kill "${watch_pid}" || true
cleanup
exit 1
fi
echo "[OK] Results equal."
echo "Killing watcherd"
kill "${watch_pid}" || true
cleanup
exit 0