count-record.exp revision 98d884bfd78ea7a37f46515c6e9e3635a95d8cbc
1# This file was written by Yao Qi <qiyao@cn.ibm.com>.
2
3set testfile "count-record"
4set srcfile ${testfile}.c
5set binfile ${testfile}
6
7verbose "compiling source file now....."
8# Build the shared libraries this test case needs.
9if  { [ ltrace_compile "${srcdir}/${subdir}/${testfile}.c" "${srcdir}/${subdir}/${binfile}" executable {debug} ] != "" } {
10     send_user "Testcase compile failed, so all tests in this file will automatically fail.\n"
11}
12
13# set options for ltrace.
14ltrace_options "-c"
15
16# Run PUT for ltarce.
17set exec_output [ltrace_runtest $srcdir/$subdir $srcdir/$subdir/$binfile]
18
19# Check the output of this program.
20verbose "ltrace runtest output: $exec_output\n"
21if [regexp {ELF from incompatible architecture} $exec_output] {
22	fail "32-bit ltrace can not perform on 64-bit PUTs and rebuild ltrace in 64 bit mode!"
23	return
24} elseif [ regexp {Couldn't get .hash data} $exec_output ] {
25	fail "Couldn't get .hash data!"
26	return
27}
28
29
30ltrace_saveoutput $exec_output $srcdir/$subdir/$binfile.ltrace
31
32#
33#  This is a sample output and Verify the forth and fifth column.
34#
35#  13.31    0.001051        1051         1 rmdir
36#  12.81    0.001012        1012         1 fopen
37#  10.32    0.000815         407         2 remove
38#   9.56    0.000755         755         1 mkdir
39#   7.86    0.000621         621         1 fseek
40#   6.86    0.000542         542         1 fwrite
41#   6.60    0.000521         521         1 fclose
42#   6.03    0.000476         476         1 rename
43#   5.61    0.000443         443         1 symlink
44#   5.05    0.000399         399         1 chdir
45#   4.80    0.000379         379         1 access
46#   4.00    0.000316         316         1 __xstat
47#   3.81    0.000301         301         1 getcwd
48#   3.39    0.000268         268         1 fread
49#
50
51set pattern "\'1 rmdir\'"
52ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
53set pattern "\'1 fopen\'"
54ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
55set pattern "\'2 remove\'"
56ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
57set pattern "\'1 mkdir\'"
58ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
59set pattern "\'1 fseek\'"
60ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
61set pattern "\'1 fwrite\'"
62ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
63set pattern "\'1 fclose\'"
64ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
65set pattern "\'1 rename\'"
66ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
67set pattern "\'1 symlink\'"
68ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
69set pattern "\'1 chdir\'"
70ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
71set pattern "\'1 access\'"
72ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
73set pattern "\'1 getcwd\'"
74ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
75set pattern "\'1 fread\'"
76ltrace_verify_output ${srcdir}/${subdir}/${testfile}.ltrace $pattern
77
78