~ubuntu-branches/ubuntu/trusty/bash/trusty-security

« back to all changes in this revision

Viewing changes to tests/trap.tests

  • Committer: Package Import Robot
  • Author(s): Matthias Klose
  • Date: 2014-03-03 22:52:05 UTC
  • mfrom: (1.3.5) (2.2.6 experimental)
  • Revision ID: package-import@ubuntu.com-20140303225205-87ltrt5kspeq0g1b
Tags: 4.3-1ubuntu1
* Merge with Debian; remaining changes:
  - skel.bashrc:
    - Run lesspipe.
    - Enable ls aliases.
    - Set options in ll alias to -alF.
    - Define an alert alias.
    - Enabled colored grep aliases.
  - etc.bash.bashrc:
    - Add sudo hint.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
# test the trap code
 
2
 
 
3
trap 'echo exiting' 0
 
4
trap 'echo aborting' 1 2 3 6 15
 
5
 
 
6
# make sure a user-specified subshell runs the exit trap, but does not
 
7
# inherit the exit trap from a parent shell
 
8
( trap 'echo subshell exit' 0; exit 0 )
 
9
( exit 0 )
 
10
 
 
11
trap
 
12
 
 
13
func()
 
14
{
 
15
        trap 'echo ${FUNCNAME:-$0}[$LINENO] funcdebug' DEBUG
 
16
        echo funcdebug line
 
17
}
 
18
 
 
19
trap 'echo [$LINENO] debug' DEBUG
 
20
echo debug line
 
21
 
 
22
trap
 
23
 
 
24
func
 
25
 
 
26
trap
 
27
 
 
28
trap 'echo ${FUNCNAME:-$0}[$LINENO] debug' DEBUG
 
29
func2()
 
30
{
 
31
        echo func2debug line
 
32
}
 
33
declare -ft func2
 
34
func2
 
35
 
 
36
unset -f func2
 
37
 
 
38
trap '' DEBUG
 
39
 
 
40
trap
 
41
 
 
42
trap - debug
 
43
 
 
44
trap
 
45
 
 
46
trap - HUP
 
47
trap hup
 
48
trap '' INT
 
49
trap '' int
 
50
 
 
51
trap
 
52
 
 
53
# exit 0 in exit trap should set exit status
 
54
(
 
55
set -e
 
56
trap 'exit 0' EXIT
 
57
false   
 
58
echo bad
 
59
)
 
60
echo $?
 
61
 
 
62
# hmmm...should this set the handling to SIG_IGN for children, too?
 
63
trap '' USR2
 
64
./trap1.sub
 
65
 
 
66
# test ERR trap
 
67
./trap2.sub
 
68
 
 
69
${THIS_SH} ./trap3.sub
 
70
 
 
71
${THIS_SH} ./trap4.sub
 
72
 
 
73
# This doesn't work right on all Unix versions
 
74
#${THIS_SH} ./trap5.sub
 
75
 
 
76
#
 
77
# show that setting a trap on SIGCHLD is not disastrous.
 
78
#
 
79
set -o monitor
 
80
 
 
81
trap 'echo caught a child death' SIGCHLD
 
82
 
 
83
sleep 7 & sleep 6 & sleep 5 &
 
84
 
 
85
# this will only catch the first, since there's a trap on SIGCHLD
 
86
wait
 
87
 
 
88
trap -p SIGCHLD
 
89
 
 
90
# Now reset some of the signals the shell handles specially back to
 
91
# their default values (with or without the SIG prefix)
 
92
trap - SIGINT QUIT TERM
 
93
 
 
94
trap
 
95
 
 
96
trap - SIGCHLD
 
97
wait