system_calls.exp revision 421cfb52e0153a8898f79331645832d93c2dde92
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 "SYS_munmap"
33ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 2
34set pattern "SYS_write"
35ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
36set pattern "SYS_unlink"
37ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
38
39set pattern "SYS_brk"
40ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
41set pattern "SYS_open"
42ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
43set pattern "SYS_(new)?fstat"
44ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
45set pattern "SYS_(old_)?mmap"
46ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
47set pattern "SYS_close"
48ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
49
50set pattern "SYS_getcwd"
51ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
52set pattern "SYS_chdir"
53ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
54set pattern "SYS_symlink"
55ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
56set pattern "SYS_unlink"
57ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
58set pattern "SYS_(new)?stat"
59ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1 egrep
60set pattern "SYS_access"
61ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
62set pattern "SYS_rename"
63ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
64set pattern "SYS_mkdir"
65ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
66set pattern "SYS_rmdir"
67ltrace_verify_output ${objdir}/${subdir}/${testfile}.ltrace $pattern 1
68