<testcase>
<info>
<keywords>
unittest
curlopt_dns_shuffle_addresses
</keywords>
</info>

#
# Client-side
<client>
<server>
none
</server>
<features>
unittest
shuffle-dns
</features>
<name>
verify DNS shuffling
</name>
</client>
</testcase>
