]> git.sur5r.net Git - bacula/bacula/blob - regress/tests/runscript-test
434e3c1c964b4929c89a4950cb9da7fd693b64f0
[bacula/bacula] / regress / tests / runscript-test
1 #!/bin/sh
2 #
3 #  Test RunScript
4 #
5
6 TestName="runscript-test"
7 JobName=backup
8
9 . scripts/functions
10 set_debug 0
11 copy_test_confs
12
13 rm -f bin/bacula-dir.conf
14 rm -f tmp/RUN*log
15 /bin/cp -f scripts/bacula-dir.conf.testrunscript bin/bacula-dir.conf
16
17 echo "${cwd}/build/po" >/tmp/file-list
18
19 start_test
20
21 cat <<END_OF_DATA >tmp/bconcmds
22 @$out /dev/null
23 messages
24 label volume=TestVolume001
25 @$out tmp/RUN_FD_WARNING.log
26 run job=RUN_FD_WARNING yes
27 wait
28 messages
29 @sleep 1
30 @$out tmp/RUN_ALL_OK.log
31 run job=RUN_ALL_OK yes
32 wait
33 messages
34 @sleep 1
35 @$out tmp/RUN_FD_FAILED.log
36 run job=RUN_FD_FAILED yes
37 wait
38 messages
39 @sleep 1
40 @$out tmp/RUN_DIR_FAILED.log
41 run job=RUN_DIR_FAILED yes
42 wait
43 messages
44 @sleep 1
45 @$out tmp/RUN_FD_FAILED2.log
46 run job=RUN_FD_FAILED2 yes
47 wait
48 messages
49 st dir
50 quit
51 END_OF_DATA
52
53
54 bin/bacula start
55 cat tmp/bconcmds | bin/bconsole -c bin/bconsole.conf > /dev/null
56 stop_bacula
57
58 export dstat=0
59 export bstat=0
60 export rstat=0
61
62 if grep -q 'dir: BeforeJob: run command "/bin/echo RunBeforeJob"'          tmp/RUN_ALL_OK.log   &&
63    grep -q 'fd: ClientRunBeforeJob: ClientRunBeforeJob'                    tmp/RUN_ALL_OK.log   &&
64    grep -q 'fd: ClientAfterJob: run command "/bin/echo ClientRunAfterJob'  tmp/RUN_ALL_OK.log   &&
65    grep -q 'dir: AfterJob: run command "/bin/echo RunAfterJob'             tmp/RUN_ALL_OK.log
66 then
67    [ "$debug" = 1 ] && echo RUN_ALL_OK ok
68 else
69    echo "RUN_ALL_OK in error"
70    rstat=1
71 fi
72
73 if grep -q 'dir: BeforeJob: run command "/bin/false RUN_DIR_FAILED"' tmp/RUN_DIR_FAILED.log   &&
74    grep -q 'dir: AfterJob: RunAfterFailedJob'                        tmp/RUN_DIR_FAILED.log   &&
75    true #   grep -q 'Backup OK -- with warnings'                              tmp/RUN_DIR_FAILED.log
76 then
77    [ "$debug" = 1 ] && echo RUN_DIR_FAILED ok
78 else
79    echo "RUN_DIR_FAILED in error"
80    rstat=1
81 fi
82
83 if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"'  tmp/RUN_FD_FAILED.log   &&
84    grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"'  tmp/RUN_FD_FAILED.log   &&
85    grep -q 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"'      tmp/RUN_FD_FAILED.log   &&
86    grep -q '*** Backup Error ***'                                          tmp/RUN_FD_FAILED.log
87 then
88    [ "$debug" = 1 ] && echo RUN_FD_FAILED ok
89 else
90    echo "RUN_FD_FAILED in error"
91    rstat=1
92 fi
93
94 if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED1"'   tmp/RUN_FD_FAILED2.log &&
95    ! grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED2"' tmp/RUN_FD_FAILED2.log &&
96    grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_FAILED3"'   tmp/RUN_FD_FAILED2.log &&
97    grep -q 'dir: AfterJob: run command "/bin/echo RunAfterFailedJob"'       tmp/RUN_FD_FAILED2.log &&
98    grep -q '*** Backup Error ***'                                           tmp/RUN_FD_FAILED2.log
99
100 then
101    [ "$debug" = 1 ] && echo RUN_FD_FAILED ok
102 else
103    echo "RUN_FD_FAILED2 in error"
104    rstat=1
105 fi
106
107 if grep -q 'fd: ClientBeforeJob: run command "/bin/false RUN_FD_WARNING"' tmp/RUN_FD_WARNING.log   &&
108    ! grep -q 'RunAfterFailedJob'                                          tmp/RUN_FD_WARNING.log   &&
109    grep -q 'Backup OK -- with warnings'                                   tmp/RUN_FD_WARNING.log
110 then
111    [ "$debug" = 1 ] && echo RUN_FD_WARNING ok
112 else
113    echo "RUN_FD_WARNING in error"
114    rstat=1
115 fi
116
117 end_test