ctdb-event: Force script directory to be absolute
[amitay/samba.git] / ctdb / tests / cunit / event_script_test_001.sh
1 #!/bin/sh
2
3 . "${TEST_SCRIPTS_DIR}/unit.sh"
4
5 scriptdir="${TEST_VAR_DIR}/cunit/scriptdir"
6 mkdir -p "${scriptdir}"
7
8 scriptdir=$(cd "$scriptdir" && echo "$PWD")
9
10 test_cleanup "rm -rf ${scriptdir}"
11
12 # Invalid path
13 invalid="${scriptdir}/notfound"
14 ok <<EOF
15 Script list ${invalid} failed with result=$(errcode ENOENT)
16 EOF
17 unit_test event_script_test list "${invalid}"
18
19 # Empty directory
20 ok <<EOF
21 No scripts found
22 EOF
23 unit_test event_script_test list "$scriptdir"
24
25 # Invalid script, doesn't end in ".script"
26 touch "${scriptdir}/prog"
27
28 ok <<EOF
29 No scripts found
30 EOF
31 unit_test event_script_test list "$scriptdir"
32
33 # Is not found because enabling "prog" actually looks for "prog.script"
34 ok <<EOF
35 Script enable ${scriptdir} prog completed with result=$(errcode ENOENT)
36 EOF
37 unit_test event_script_test enable "$scriptdir" "prog"
38
39 required_result 1 <<EOF
40 EOF
41 unit_test test -x "${scriptdir}/prog"
42
43 # Is not found because enabling "prog" actually looks for "prog.script"
44 ok <<EOF
45 Script disable ${scriptdir} prog completed with result=$(errcode ENOENT)
46 EOF
47 unit_test event_script_test disable "$scriptdir" "prog"
48
49 # Valid script
50 touch "$scriptdir/11.foo.script"
51
52 ok <<EOF
53 11.foo
54 EOF
55 unit_test event_script_test list "$scriptdir"
56
57 ok <<EOF
58 Script enable ${scriptdir} 11.foo completed with result=0
59 EOF
60 unit_test event_script_test enable "$scriptdir" "11.foo"
61
62 ok <<EOF
63 EOF
64 unit_test test -x "${scriptdir}/11.foo.script"
65
66 ok <<EOF
67 Script disable ${scriptdir} 11.foo.script completed with result=0
68 EOF
69 unit_test event_script_test disable "$scriptdir" "11.foo.script"
70
71 required_result 1 <<EOF
72 EOF
73 unit_test test -x "${scriptdir}/11.foo.script"
74
75 # Multiple scripts
76 touch "${scriptdir}/22.bar.script"
77
78 ok <<EOF
79 11.foo
80 22.bar
81 EOF
82 unit_test event_script_test list "$scriptdir"
83
84 # Symlink to existing file
85 ln -s "${scriptdir}/prog" "${scriptdir}/33.link.script"
86
87 ok <<EOF
88 11.foo
89 22.bar
90 33.link
91 EOF
92 unit_test event_script_test list "$scriptdir"
93
94 ok <<EOF
95 Script enable ${scriptdir} 33.link completed with result=$(errcode EINVAL)
96 EOF
97 unit_test event_script_test enable "$scriptdir" "33.link"
98
99
100 ok <<EOF
101 Script disable ${scriptdir} 33.link.script completed with result=$(errcode EINVAL)
102 EOF
103 unit_test event_script_test disable "$scriptdir" "33.link.script"
104
105 # Dangling symlink
106 rm "${scriptdir}/33.link.script"
107 ln -s "${scriptdir}/nosuchfile" "${scriptdir}/33.link.script"
108
109 ok <<EOF
110 11.foo
111 22.bar
112 33.link
113 EOF
114 unit_test event_script_test list "$scriptdir"
115
116 ok <<EOF
117 Script enable ${scriptdir} 33.link completed with result=$(errcode ENOENT)
118 EOF
119 unit_test event_script_test enable "$scriptdir" "33.link"
120
121
122 ok <<EOF
123 Script disable ${scriptdir} 33.link.script completed with result=$(errcode ENOENT)
124 EOF
125 unit_test event_script_test disable "$scriptdir" "33.link.script"
126
127 exit 0