26754: tweak zgetdir() and test for realpath()
[zsh.git] / Test / E02xtrace.ztst
bloba0c2e96601e9f72307d9c889a80b5078e5e58362
1 # Test that xtrace output is correctly generated
3 %prep
4   mkdir xtrace.tmp && cd xtrace.tmp
6   function xtf {
7     local regression_test_dummy_variable
8     print "$*"
9   }
10   echo 'print "$*"' > xt.in
12 %test
14   PS4='+%N:%i> '
15   set -x
16   print 'Tracing: builtin'
17   print 'Tracing: builtin 2>file' 2>xtrace.err
18   cat <<<'Tracing: external'
19   cat <<<'Tracing: external 2>file' 2>>xtrace.err
20   ( print 'Tracing: ( builtin )' )
21   ( print 'Tracing: ( builtin ) 2>file' ) 2>>xtrace.err
22   ( cat <<<'Tracing: ( external )' )
23   ( cat <<<'Tracing: ( external ) 2>file' ) 2>>xtrace.err
24   { print 'Tracing: { builtin }' }
25   { print 'Tracing: { builtin } 2>file' } 2>>xtrace.err
26   { cat <<<'Tracing: { external }' }
27   { cat <<<'Tracing: { external } 2>file' } 2>>xtrace.err
28   repeat 1 do print 'Tracing: do builtin done'; done
29   repeat 1 do print 'Tracing: do builtin done 2>file'; done 2>>xtrace.err
30   repeat 1 do cat <<<'Tracing: do external done'; done
31   repeat 1 do cat <<<'Tracing: do external done 2>file'; done 2>>xtrace.err
32   xtf 'Tracing: function'
33   xtf 'Tracing: function 2>file' 2>>xtrace.err
34   . ./xt.in 'Tracing: source'
35   . ./xt.in 'Tracing: source 2>file' 2>>xtrace.err
36   set +x
37   cat xtrace.err
38 0:xtrace with and without redirection
39 >Tracing: builtin
40 >Tracing: builtin 2>file
41 >Tracing: external
42 >Tracing: external 2>file
43 >Tracing: ( builtin )
44 >Tracing: ( builtin ) 2>file
45 >Tracing: ( external )
46 >Tracing: ( external ) 2>file
47 >Tracing: { builtin }
48 >Tracing: { builtin } 2>file
49 >Tracing: { external }
50 >Tracing: { external } 2>file
51 >Tracing: do builtin done
52 >Tracing: do builtin done 2>file
53 >Tracing: do external done
54 >Tracing: do external done 2>file
55 >Tracing: function
56 >Tracing: function 2>file
57 >Tracing: source
58 >Tracing: source 2>file
59 >+(eval):4> print 'Tracing: builtin 2>file'
60 >+(eval):6> cat
61 >+(eval):8> print 'Tracing: ( builtin ) 2>file'
62 >+(eval):10> cat
63 >+(eval):12> print 'Tracing: { builtin } 2>file'
64 >+(eval):14> cat
65 >+(eval):16> print 'Tracing: do builtin done 2>file'
66 >+(eval):18> cat
67 >+(eval):20> xtf 'Tracing: function 2>file'
68 >+xtf:1> local regression_test_dummy_variable
69 >+xtf:2> print 'Tracing: function 2>file'
70 >+(eval):22> . ./xt.in 'Tracing: source 2>file'
71 >+./xt.in:1> print 'Tracing: source 2>file'
72 ?+(eval):3> print 'Tracing: builtin'
73 ?+(eval):5> cat
74 ?+(eval):7> print 'Tracing: ( builtin )'
75 ?+(eval):9> cat
76 ?+(eval):11> print 'Tracing: { builtin }'
77 ?+(eval):13> cat
78 ?+(eval):15> print 'Tracing: do builtin done'
79 ?+(eval):17> cat
80 ?+(eval):19> xtf 'Tracing: function'
81 ?+xtf:1> local regression_test_dummy_variable
82 ?+xtf:2> print 'Tracing: function'
83 ?+(eval):21> . ./xt.in 'Tracing: source'
84 ?+./xt.in:1> print 'Tracing: source'
85 ?+(eval):23> set +x
87  typeset -ft xtf
88  xtf 'Tracing: function'
89 0:tracing function
90 >Tracing: function
91 ?+xtf:1> local regression_test_dummy_variable
92 ?+xtf:2> print 'Tracing: function'
94  echo 'PS4="+%x:%I> "
95  fn() {
96    print This is fn.
97  }
98  :
99  fn
100  ' >fnfile
101  $ZTST_testdir/../Src/zsh -fx ./fnfile 2>errfile
102  grep '\./fnfile' errfile 1>&2
103 0:Trace output with sourcefile and line number.
104 >This is fn.
105 ?+./fnfile:1> PS4='+%x:%I> ' 
106 ?+./fnfile:5> :
107 ?+./fnfile:6> fn
108 ?+./fnfile:3> print This is fn.