blob: a0c2e96601e9f72307d9c889a80b5078e5e58362 (
plain) (
blame)
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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# Test that xtrace output is correctly generated
%prep
mkdir xtrace.tmp && cd xtrace.tmp
function xtf {
local regression_test_dummy_variable
print "$*"
}
echo 'print "$*"' > xt.in
%test
PS4='+%N:%i> '
set -x
print 'Tracing: builtin'
print 'Tracing: builtin 2>file' 2>xtrace.err
cat <<<'Tracing: external'
cat <<<'Tracing: external 2>file' 2>>xtrace.err
( print 'Tracing: ( builtin )' )
( print 'Tracing: ( builtin ) 2>file' ) 2>>xtrace.err
( cat <<<'Tracing: ( external )' )
( cat <<<'Tracing: ( external ) 2>file' ) 2>>xtrace.err
{ print 'Tracing: { builtin }' }
{ print 'Tracing: { builtin } 2>file' } 2>>xtrace.err
{ cat <<<'Tracing: { external }' }
{ cat <<<'Tracing: { external } 2>file' } 2>>xtrace.err
repeat 1 do print 'Tracing: do builtin done'; done
repeat 1 do print 'Tracing: do builtin done 2>file'; done 2>>xtrace.err
repeat 1 do cat <<<'Tracing: do external done'; done
repeat 1 do cat <<<'Tracing: do external done 2>file'; done 2>>xtrace.err
xtf 'Tracing: function'
xtf 'Tracing: function 2>file' 2>>xtrace.err
. ./xt.in 'Tracing: source'
. ./xt.in 'Tracing: source 2>file' 2>>xtrace.err
set +x
cat xtrace.err
0:xtrace with and without redirection
>Tracing: builtin
>Tracing: builtin 2>file
>Tracing: external
>Tracing: external 2>file
>Tracing: ( builtin )
>Tracing: ( builtin ) 2>file
>Tracing: ( external )
>Tracing: ( external ) 2>file
>Tracing: { builtin }
>Tracing: { builtin } 2>file
>Tracing: { external }
>Tracing: { external } 2>file
>Tracing: do builtin done
>Tracing: do builtin done 2>file
>Tracing: do external done
>Tracing: do external done 2>file
>Tracing: function
>Tracing: function 2>file
>Tracing: source
>Tracing: source 2>file
>+(eval):4> print 'Tracing: builtin 2>file'
>+(eval):6> cat
>+(eval):8> print 'Tracing: ( builtin ) 2>file'
>+(eval):10> cat
>+(eval):12> print 'Tracing: { builtin } 2>file'
>+(eval):14> cat
>+(eval):16> print 'Tracing: do builtin done 2>file'
>+(eval):18> cat
>+(eval):20> xtf 'Tracing: function 2>file'
>+xtf:1> local regression_test_dummy_variable
>+xtf:2> print 'Tracing: function 2>file'
>+(eval):22> . ./xt.in 'Tracing: source 2>file'
>+./xt.in:1> print 'Tracing: source 2>file'
?+(eval):3> print 'Tracing: builtin'
?+(eval):5> cat
?+(eval):7> print 'Tracing: ( builtin )'
?+(eval):9> cat
?+(eval):11> print 'Tracing: { builtin }'
?+(eval):13> cat
?+(eval):15> print 'Tracing: do builtin done'
?+(eval):17> cat
?+(eval):19> xtf 'Tracing: function'
?+xtf:1> local regression_test_dummy_variable
?+xtf:2> print 'Tracing: function'
?+(eval):21> . ./xt.in 'Tracing: source'
?+./xt.in:1> print 'Tracing: source'
?+(eval):23> set +x
typeset -ft xtf
xtf 'Tracing: function'
0:tracing function
>Tracing: function
?+xtf:1> local regression_test_dummy_variable
?+xtf:2> print 'Tracing: function'
echo 'PS4="+%x:%I> "
fn() {
print This is fn.
}
:
fn
' >fnfile
$ZTST_testdir/../Src/zsh -fx ./fnfile 2>errfile
grep '\./fnfile' errfile 1>&2
0:Trace output with sourcefile and line number.
>This is fn.
?+./fnfile:1> PS4='+%x:%I> '
?+./fnfile:5> :
?+./fnfile:6> fn
?+./fnfile:3> print This is fn.
|