diff options
-rw-r--r-- | testsuite/ChangeLog | 5 | ||||
-rw-r--r-- | testsuite/systemtap.base/utrace_p5.exp | 2 | ||||
-rw-r--r-- | testsuite/systemtap.base/utrace_p5_multi.c | 14 |
3 files changed, 16 insertions, 5 deletions
diff --git a/testsuite/ChangeLog b/testsuite/ChangeLog index bf2f7cca..1fd4c0e6 100644 --- a/testsuite/ChangeLog +++ b/testsuite/ChangeLog @@ -1,5 +1,10 @@ 2008-06-11 David Smith <dsmith@redhat.com> + * systemtap.base/utrace_p5.exp: Made changes to work when not + configured in the src directory. + * systemtap.base/utrace_p5_multi.c: Made changes to work on x86_64 + systems. + * systemtap.base/utrace_p5.exp: Added 'process().thread.begin' and 'process().thread.end' tests. * systemtap.base/utrace_p5_multi.c: Added multi-threaded test diff --git a/testsuite/systemtap.base/utrace_p5.exp b/testsuite/systemtap.base/utrace_p5.exp index 1185f015..fcd617fe 100644 --- a/testsuite/systemtap.base/utrace_p5.exp +++ b/testsuite/systemtap.base/utrace_p5.exp @@ -3,7 +3,7 @@ # Initialize variables set utrace_support_found 0 set exepath "[pwd]/cat_[pid]" -set multi_srcpath "systemtap.base/utrace_p5_multi.c" +set multi_srcpath "$srcdir/systemtap.base/utrace_p5_multi.c" set multi_exepath "[pwd]/utrace_p5_multi_[pid]" set multi_flags "libs=-lpthread" diff --git a/testsuite/systemtap.base/utrace_p5_multi.c b/testsuite/systemtap.base/utrace_p5_multi.c index 03c6eea0..153243d0 100644 --- a/testsuite/systemtap.base/utrace_p5_multi.c +++ b/testsuite/systemtap.base/utrace_p5_multi.c @@ -7,6 +7,10 @@ void *thread_function( void *ptr ); +struct thread_data { + int tnum; +}; + int main() { @@ -14,8 +18,10 @@ main() int iret1, iret2; /* Create independent threads each of which will execute function */ - iret1 = pthread_create(&thread1, NULL, thread_function, (void*) 1); - iret2 = pthread_create(&thread2, NULL, thread_function, (void*) 2); + struct thread_data t1 = { 1 }; + struct thread_data t2 = { 2 }; + iret1 = pthread_create(&thread1, NULL, thread_function, (void*) &t1); + iret2 = pthread_create(&thread2, NULL, thread_function, (void*) &t2); /* Wait till threads are complete before main continues. Unless we * wait we run the risk of executing an exit which will terminate @@ -31,8 +37,8 @@ main() void *thread_function(void *ptr) { - int tnum = (int)ptr; - if (tnum == 1) { + struct thread_data *td = ptr; + if (td->tnum == 1) { int fd = open("/dev/null", O_RDONLY); close(fd); } |