<?xml version="1.0"?>
<!DOCTYPE flood SYSTEM "flood.dtd">
<!-- Hi, I'm a flood config file.  
     This is a keepalive-enabled profile.  -->
<flood configversion="1">
  <!-- A urllist describes which hosts and which methods we want to hit. -->
  <urllist>
    <name>Test Hosts</name>
    <description>A bunch of hosts we want to hit</description>
    <!-- change element below to point to default Apache 2.0 installation -->
    <baseurl>http://localhost</baseurl>
    <url>/index.html.en</url>
    <url>/manual/index.html.en</url>
    <url>/manual/mod/index.html.en</url>
  </urllist>

  <!-- The profile describes how we will hit the urllists. 
       Round robin runs all of the URLs in the urllist in order once. -->
  <profile>
    <name>RoundRobinProfile</name>
    <description>Round Robin Configuration</description>

    <useurllist>Test Hosts</useurllist>

    <!-- Profile Events -->
    <profile_init>round_robin_profile_init</profile_init>
    <create_req>round_robin_create_req</create_req>
    <get_next_url>round_robin_get_next_url</get_next_url>
    <loop_condition>round_robin_loop_condition</loop_condition>
    <profile_destroy>round_robin_profile_destroy</profile_destroy>

    <!-- Socket Events -->
    <socket_init>keepalive_socket_init</socket_init>
    <begin_conn>keepalive_begin_conn</begin_conn>
    <send_req>keepalive_send_req</send_req>
    <recv_resp>keepalive_recv_resp</recv_resp>
    <end_conn>keepalive_end_conn</end_conn>
    <socket_destroy>keepalive_socket_destroy</socket_destroy>

    <!-- Verification Events -->
    <verify_resp>verify_200</verify_resp>

    <!-- Reporting Events -->
    <report_init>easy_report_init</report_init>
    <process_stats>easy_process_stats</process_stats>
    <report_stats>easy_report_stats</report_stats>
    <destroy_report>easy_destroy_report</destroy_report>
  </profile>

  <!-- A farmer runs one profile a certain number of times.  -->
  <farmer>
    <name>Joe</name>
    <!-- run the Joe farmer 1000 times -->
    <count>1000</count>
    <!-- Joe uses this profile -->
    <useprofile>RoundRobinProfile</useprofile>
  </farmer>

  <!-- A farm contains a bunch of farmers - each farmer is a thread.  -->
  <farm>
    <name>Bingo</name>
    <!-- Create 10 identical Joe farmers executing in parallel. -->
    <usefarmer count="10">Joe</usefarmer>
  </farm>

  <!-- Set the seed to a known value so we can reproduce the same tests -->
  <seed>23</seed>
</flood>
