system_calls.exp revision 5069ef8f498e5189de0789d79485f39b76c621d4
1# This file was written by Yao Qi <qiyao@cn.ibm.com>.
2
3set testfile "system_calls"
4set srcfile ${testfile}.c
5set binfile ${testfile}
6
7
8verbose "compiling source file now....."
9# Build the shared libraries this test case needs.
10if  { [ ltrace_compile "${srcdir}/${subdir}/${testfile}.c" "${objdir}/${subdir}/${binfile}" executable {debug} ] != "" } {
11     send_user "Testcase compile failed, so all tests in this file will automatically fail.\n"
12}
13
14# set options for ltrace.
15ltrace_options "-S"
16
17#Run PUT for ltarce.
18set exec_output [ltrace_runtest $objdir/$subdir $objdir/$subdir/$binfile]
19
20#check the output of this program.
21verbose "ltrace runtest output: $exec_output\n"
22
23if [regexp {ELF from incompatible architecture} $exec_output] {
24	fail "32-bit ltrace can not perform on 64-bit PUTs and rebuild ltrace in 64 bit mode!"
25        return
26} elseif [ regexp {Couldn't get .hash data} $exec_output ] {
27	fail "Couldn't get .hash data!"
28	return
29}
30
31
32set pattern "^munmap@SYS"
33ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 2
34set pattern "^write@SYS"
35ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
36set pattern "^unlink@SYS"
37ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
38
39set pattern "^brk@SYS"
40ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
41set pattern "^open@SYS"
42ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
43set pattern "^(new)?fstat(64)?@SYS"
44ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
45set pattern "^(old_)?mmap2?@SYS"
46ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
47set pattern "^close@SYS"
48ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
49
50set pattern "^getcwd@SYS"
51ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
52set pattern "^chdir@SYS"
53ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
54set pattern "^symlink@SYS"
55ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
56set pattern "^unlink@SYS"
57ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
58set pattern "^(new)?stat(64)?@SYS"
59ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
60set pattern "^access@SYS"
61ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
62set pattern "^rename@SYS"
63ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
64set pattern "^mkdir@SYS"
65ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
66set pattern "^rmdir@SYS"
67ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
68