Fix QDnsLookup autotest failure in CI environment

The DNS server can legitimately include NS and A records for
the authoritative name server in addition to the DNS records
that were requested.
These are now ignored when checking the reply (we only check
results that match the query, rather than failing if a result
is for a different host name than the query).

Task-number: QTBUG-24698
Change-Id: I327f31d58cdca50c7df6b32b275d7f28b56405f0
Reviewed-by: Jeremy Lainé <jeremy.laine@m4x.org>
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
This commit is contained in:
Shane Kearns 2012-03-12 18:46:21 +00:00 committed by Qt by Nokia
parent 7046188bc6
commit 8a811865ab

View File

@ -159,8 +159,9 @@ void tst_QDnsLookup::lookup()
const QString hostName = cname.isEmpty() ? domain : cname; const QString hostName = cname.isEmpty() ? domain : cname;
QStringList addresses; QStringList addresses;
foreach (const QDnsHostAddressRecord &record, lookup.hostAddressRecords()) { foreach (const QDnsHostAddressRecord &record, lookup.hostAddressRecords()) {
QCOMPARE(record.name(), hostName); //reply may include A & AAAA records for nameservers, ignore them and only look at records matching the query
addresses << record.value().toString().toLower(); if (record.name() == hostName)
addresses << record.value().toString().toLower();
} }
addresses.sort(); addresses.sort();
QCOMPARE(addresses.join(" "), host); QCOMPARE(addresses.join(" "), host);
@ -176,8 +177,9 @@ void tst_QDnsLookup::lookup()
// name servers // name servers
QStringList nameServers; QStringList nameServers;
foreach (const QDnsDomainNameRecord &record, lookup.nameServerRecords()) { foreach (const QDnsDomainNameRecord &record, lookup.nameServerRecords()) {
QCOMPARE(record.name(), domain); //reply may include NS records for authoritative nameservers, ignore them and only look at records matching the query
nameServers << record.value(); if (record.name() == domain)
nameServers << record.value();
} }
nameServers.sort(); nameServers.sort();
QCOMPARE(nameServers.join(" "), ns); QCOMPARE(nameServers.join(" "), ns);