1 ____ _ _ 2 | _ \| |_| |__ 3 | |_) | __| '_ \ ``It doesn't need to be 4 | __/| |_| | | | tested, because it works.'' 5 |_| \__|_| |_| -- Richard Holloway 6 7 GNU Pth - The GNU Portable Threads 8 9 TESTS 10 ===== 11 12 GNU Pth was successfully tested with the following real-world 13 applications (which are not just trivial sample applications unlike 14 the shipped test_xxx programs): 15 16 o Apache (webserver) 17 o MySQL (relational database system) 18 o OpenLDAP (LDAP toolkit) 19 o pidentd (IDENT daemon) 20 o Perl (scripting language) 21 o Python (scripting language) 22 o gFTP (FTP client) 23 o NakenChat (chat server) 24 25 Details of the tests follow: 26 27 Package: Apache 28 Version: 2.0-dev 29 URL: http://www.apache.org/ 30 Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] 31 Platform: i686-pc-freebsd3.1 32 Tester: Ralf S. Engelschall <rse@engelschall.com> 33 Date: 30-Aug-1999 34 Config: CFLAGS="`pthread-config --cflags` \ 35 -DPTHREAD_EVERYWHERE \ 36 -DNO_SERIALIZED_ACCEPT" 37 LDFLAGS="`pthread-config --ldflags`" 38 LIBS="`pthread-config --libs`" 39 --set-rule=MPM_METHOD:dexter 40 Comment: Apache 2.0-dev is a developer version, `dexter' 41 is a MPM (multi process model) module based on Pthreads. 42 The server served around 1000 requests per second. 43 44 Package: MySQL 45 Version: 3.22.25 46 URL: http://www.mysql.com/ 47 Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] 48 Platform: i686-pc-freebsd3.1 49 Tester: Ralf S. Engelschall <rse@engelschall.com> 50 Date: 30-Aug-1999 51 Config: CC=egcc CXX=eg++ \ 52 CFLAGS="`pthread-config --cflags`" \ 53 CXXFLAGS="`pthread-config --cflags`" \ 54 LDFLAGS="`pthread-config --ldflags`" \ 55 ./configure \ 56 --prefix=/tmp/mysql \ 57 --without-mit-pthreads \ 58 --with-pthread \ 59 --with-named-thread-libs="`pthread-config --libs`" 60 Comment: MySQL seems to work fine with Pth. I was able to run 61 the tests from the INSTALL/README documents, i.e. a create 62 table, a few inserts and a select and the server served them 63 fine. 64 65 Package: OpenLDAP 66 Version: 2.0-dev 67 URL: http://www.openldap.org/ 68 Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] 69 Platform: i686-pc-freebsd3.1 70 Tester: Ralf S. Engelschall <rse@engelschall.com> 71 Date: 01-Sep-1999 72 Config: CPPFLAGS="`pth-config --cflags`" \ 73 LDFLAGS="`pth-config --ldflags`" \ 74 ./configure --prefix=/tmp/openldap \ 75 --with-threads=pth 76 Comments: Still not tested under runtime, just compiled the beast. 77 Interesting is that OpenLDAP has native Pth support. 78 79 Package: pidentd 80 Version: 3.1a14 81 URL: ftp://ftp.lysator.liu.se/pub/unix/ident/servers/ 82 Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] 83 Platform: i686-pc-freebsd3.1 84 Tester: Ralf S. Engelschall <rse@engelschall.com> 85 Date: 30-Aug-1999 86 Config: CFLAGS="`pthread-config --cflags`" \ 87 LDFLAGS="`pthread-config --ldflags`" \ 88 LIBS="`pthread-config --libs`" \ 89 ./configure \ 90 --prefix=/tmp/pindent \ 91 --with-threads 92 Comment: I had to change ``CC="$CC -pthread"'' in `configure' with 93 ``: CC="$CC -pthread"'' in order to avoid the use uthreads under 94 FreeBSD. 95 96 Package: Perl 97 Version: 5.005_03 98 URL: http://www.perl.com/ 99 Pth: 1.2b1 [--enable-pthread --disable-shared 100 --enable-syscall-soft --enable-syscall-hard] 101 Platform: i686-pc-freebsd3.1 102 Tester: Ralf S. Engelschall <rse@engelschall.com> 103 Date: 02-Sep-1999 104 Config: ./Configure \ 105 -Dusethreads -des \ 106 -Dccflags="`pthread-config --cflags`" \ 107 -Dlibs="`pthread-config --ldflags --libs` -lm" \ 108 -Dprefix=/tmp/perl 109 Comment: I've tried all tests ext/Thread/*.t. All worked fine, 110 except for the io.t. Even with Pth's --enable-syscall-hard 111 Perl seems to use direct I/O for the <STDIN> facility. So 112 the Pth support for Perl is still not 100%. But perhaps 113 one can make it complete by using PerlIO abstraction layer 114 (either directly to use pth_read/write or via Sfio and 115 pth_sfdisc)? Additionally I had to deactivate the -pthread 116 in hints/freebsd to get rid of uthread under FreeBSD. 117 118 Package: Python 119 Version: 1.5.2 120 URL: http://www.python.org/ 121 Pth: 1.2b1 [--enable-pthread --disable-shared --enable-syscall-soft] 122 Platform: i686-pc-freebsd3.1 123 Tester: Ralf S. Engelschall <rse@engelschall.com> 124 Date: 01-Sep-1999 125 Config: CC="cc `pthread-config --cflags`" \ 126 LDFLAGS="`pthread-config --ldflags`" \ 127 LIBS="`pthread-config --ldflags --libs`" \ 128 ./configure \ 129 --prefix=/tmp/python \ 130 --with-thread 131 Comment: The configure stuff of Python was a little bit strange 132 (using CFLAGS or CPPFLAGS didn't work), but except for this 133 Python worked fine. It even passed its "make test" and there 134 also the test_thread. Seems to work fine with Pth. 135 136 Package: gFTP 137 Version: 2.0.5a 138 URL: http://gftp.seul.org/ 139 Pth: 1.2b6 [--enable-pthread --disable-shared --enable-syscall-soft] 140 Platform: i686-pc-freebsd3.1 141 Tester: Ralf S. Engelschall <rse@engelschall.com> 142 Date: 04-Oct-1999 143 Config: CC="cc `pthread-config --cflags`" \ 144 LDFLAGS="`pthread-config --ldflags` `pthread-config --ldflags --libs`" \ 145 ./configure \ 146 --prefix=/tmp/gftp 147 Comment: none 148 149 Package: NakenChat 150 Version: 1.10 151 URL: http://home.i1.net/~naken/nakenchat/ 152 Pth: 1.2b7 [--enable-pthread] 153 Platform: i686-pc-freebsd3.1 154 Tester: Ralf S. Engelschall <rse@engelschall.com> 155 Date: 19-Oct-1999 156 Config: cc `pthread-config --cflags` \ 157 -onakenchat nakenchat.c \ 158 `pthread-config --ldflags --libs` 159 Comment: none 160 161