<testcase>
<info>
<keywords>
HTTP
HTTP GET
shared connections
</keywords>
</info>

# Server-side
<reply>
<data>
HTTP/1.1 200 OK
Date: Tue, 09 Nov 2010 14:49:00 GMT
Server: test-server/fake
Content-Type: text/html
Content-Length: 29

run 1: foobar and so on fun!
</data>
<datacheck>
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
run 1: foobar and so on fun!
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
run 1: foobar and so on fun!
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
run 1: foobar and so on fun!
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
-> Mutex lock SHARE
<- Mutex unlock SHARE
-> Mutex lock SHARE
-> Mutex lock CONNECT
<- Mutex unlock CONNECT
<- Mutex unlock SHARE
</datacheck>
</reply>

# Client-side
<client>
<server>
http
</server>
<name>
HTTP with shared connection cache
</name>
<tool>
lib%TESTNUMBER
</tool>
<command>
http://%HOSTIP:%HTTPPORT/%TESTNUMBER
</command>
</client>

# Verify data after the test has been "shot"
<verify>
</verify>
</testcase>
