BIND 10 #2480: use real data sources in auth QueryTest
BIND 10 Development
do-not-reply at isc.org
Fri Dec 28 14:32:10 UTC 2012
#2480: use real data sources in auth QueryTest
-------------------------------------+-------------------------------------
Reporter: jinmei | Owner:
Type: defect | jinmei
Priority: medium | Status:
Component: b10-auth | reviewing
Keywords: | Milestone:
Sensitive: 0 | Sprint-20130108
Sub-Project: DNS | Resolution:
Estimated Difficulty: 5 | CVSS Scoring:
Total Hours: 0 | Defect Severity: N/A
| Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by vorner):
* owner: vorner => jinmei
Comment:
Hello
It doesn't compile for me, it seems the set of warnings of clang++ and g++
are
different. I think most of the defined but not used ones is side-effect of
the
previous error (whenever there's an error in a test file, g++ spits out
bunch
of unrelated warnings), the real one would be the control reaches…:
{{{
query_unittest.cc: In function
‘boost::shared_ptr<isc::datasrc::ClientList>
{anonymous}::createDataSrcClientList({anonymous}::DataSrcType,
isc::datasrc::DataSourceClient&)’:
query_unittest.cc:811:1: error: control reaches end of non-void function
[-Werror=return-type]
query_unittest.cc: At global scope:
query_unittest.cc:946:2: error: ‘{anonymous}::gtest_QueryTest_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:985:557: error:
‘{anonymous}::QueryTest_noZone_Test::gtest_registering_dummy_’ defined but
not used [-Werror=unused-variable]
query_unittest.cc:995:585: error:
‘{anonymous}::QueryTest_exactMatch_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1002:691: error:
‘{anonymous}::QueryTest_exactMatchMultipleQueries_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1019:649: error:
‘{anonymous}::QueryTest_exactMatchIgnoreSIG_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1029:614: error:
‘{anonymous}::QueryTest_dnssecPositive_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1046:614: error:
‘{anonymous}::QueryTest_exactAddrMatch_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1059:593: error:
‘{anonymous}::QueryTest_apexNSMatch_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1070:607: error:
‘{anonymous}::QueryTest_exactAnyMatch_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1089:600: error:
‘{anonymous}::QueryTest_apexAnyMatch_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1100:586: error:
‘{anonymous}::QueryTest_mxANYMatch_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1108:600: error:
‘{anonymous}::QueryTest_glueANYMatch_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1115:593: error:
‘{anonymous}::QueryTest_nodomainANY_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1128:572: error:
‘{anonymous}::QueryTest_noApexNS_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1141:586: error:
‘{anonymous}::QueryTest_delegation_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1150:656: error:
‘{anonymous}::QueryTest_delegationWithDNSSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1161:628: error:
‘{anonymous}::QueryTest_secureDelegation_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1176:684: error:
‘{anonymous}::QueryTest_secureUnsignedDelegation_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1191:747: error:
‘{anonymous}::QueryTest_secureUnsignedDelegationWithNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1218:789: error:
‘{anonymous}::QueryTest_secureUnsignedDelegationWithNSEC3OptOut_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1244:649: error:
‘{anonymous}::QueryTest_badSecureDelegation_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1264:572: error:
‘{anonymous}::QueryTest_nxdomain_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1272:628: error:
‘{anonymous}::QueryTest_nxdomainWithNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1292:635: error:
‘{anonymous}::QueryTest_nxdomainWithNSEC2_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1318:691: error:
‘{anonymous}::QueryTest_nxdomainWithNSECDuplicate_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1340:628: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC1_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1355:628: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC2_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1370:621: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1385:628: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC4_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1399:628: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC5_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1425:628: error:
‘{anonymous}::QueryTest_nxdomainBadNSEC6_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1440:565: error:
‘{anonymous}::QueryTest_nxrrset_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1448:621: error:
‘{anonymous}::QueryTest_nxrrsetWithNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1463:635: error:
‘{anonymous}::QueryTest_emptyNameWithNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1484:642: error:
‘{anonymous}::QueryTest_nxrrsetWithoutNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1497:600: error:
‘{anonymous}::QueryTest_wildcardNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1517:607: error:
‘{anonymous}::QueryTest_CNAMEwildNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1533:607: error:
‘{anonymous}::QueryTest_wildcardNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1567:614: error:
‘{anonymous}::QueryTest_CNAMEwildNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1593:628: error:
‘{anonymous}::QueryTest_badWildcardNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1613:635: error:
‘{anonymous}::QueryTest_badWildcardProof1_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1629:635: error:
‘{anonymous}::QueryTest_badWildcardProof2_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1643:635: error:
‘{anonymous}::QueryTest_badWildcardProof3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1658:740: error:
‘{anonymous}::QueryTest_wildcardNxrrsetWithDuplicateNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1679:677: error:
‘{anonymous}::QueryTest_wildcardNxrrsetWithNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1704:684: error:
‘{anonymous}::QueryTest_wildcardNxrrsetWithNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1743:747: error:
‘{anonymous}::QueryTest_wildcardNxrrsetWithNSEC3Collision_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1762:726: error:
‘{anonymous}::QueryTest_wildcardNxrrsetWithNSEC3Broken_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1784:663: error:
‘{anonymous}::QueryTest_wildcardEmptyWithNSEC_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1807:551: error:
‘{anonymous}::QueryTest_noSOA_Test::gtest_registering_dummy_’ defined but
not used [-Werror=unused-variable]
query_unittest.cc:1826:593: error:
‘{anonymous}::QueryTest_noMatchZone_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1839:530: error:
‘{anonymous}::QueryTest_MX_Test::gtest_registering_dummy_’ defined but not
used [-Werror=unused-variable]
query_unittest.cc:1853:565: error:
‘{anonymous}::QueryTest_MXAlias_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1873:551: error:
‘{anonymous}::QueryTest_CNAME_Test::gtest_registering_dummy_’ defined but
not used [-Werror=unused-variable]
query_unittest.cc:1881:607: error:
‘{anonymous}::QueryTest_explicitCNAME_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1891:614: error:
‘{anonymous}::QueryTest_CNAME_NX_RRSET_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1903:670: error:
‘{anonymous}::QueryTest_explicitCNAME_NX_RRSET_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1912:621: error:
‘{anonymous}::QueryTest_CNAME_NX_DOMAIN_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1926:677: error:
‘{anonymous}::QueryTest_explicitCNAME_NX_DOMAIN_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1935:579: error:
‘{anonymous}::QueryTest_CNAME_OUT_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1951:635: error:
‘{anonymous}::QueryTest_explicitCNAME_OUT_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:1968:551: error:
‘{anonymous}::QueryTest_DNAME_Test::gtest_registering_dummy_’ defined but
not used [-Werror=unused-variable]
query_unittest.cc:1984:579: error:
‘{anonymous}::QueryTest_DNAME_ANY_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:1993:607: error:
‘{anonymous}::QueryTest_explicitDNAME_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2005:565: error:
‘{anonymous}::QueryTest_DNAME_A_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:2017:614: error:
‘{anonymous}::QueryTest_DNAME_NX_RRSET_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2030:579: error:
‘{anonymous}::QueryTest_LongDNAME_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:2050:593: error:
‘{anonymous}::QueryTest_MaxLenDNAME_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2106:579: error:
‘{anonymous}::QueryTest_findNSEC3_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:2250:635: error:
‘{anonymous}::QueryTest_dsAboveDelegation_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2277:677: error:
‘{anonymous}::QueryTest_dsAboveDelegationNoData_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2304:635: error:
‘{anonymous}::QueryTest_dsBelowDelegation_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2320:677: error:
‘{anonymous}::QueryTest_dsBelowDelegationWithDS_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2339:572: error:
‘{anonymous}::QueryTest_dsNoZone_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:2347:621: error:
‘{anonymous}::QueryTest_dsAtGrandParent_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2362:677: error:
‘{anonymous}::QueryTest_dsAtGrandParentAndChild_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2387:572: error:
‘{anonymous}::QueryTest_dsAtRoot_Test::gtest_registering_dummy_’ defined
but not used [-Werror=unused-variable]
query_unittest.cc:2410:614: error:
‘{anonymous}::QueryTest_dsAtRootWithDS_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2432:628: error:
‘{anonymous}::QueryTest_nxrrsetWithNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2452:649: error:
‘{anonymous}::QueryTest_nxrrsetMissingNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2470:691: error:
‘{anonymous}::QueryTest_nxrrsetWithNSEC3_ds_exact_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2495:712: error:
‘{anonymous}::QueryTest_nxrrsetWithNSEC3_ds_no_exact_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2527:670: error:
‘{anonymous}::QueryTest_nxdomainWithNSEC3Proof_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2569:719: error:
‘{anonymous}::QueryTest_nxdomainWithBadNextNSEC3Proof_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2588:747: error:
‘{anonymous}::QueryTest_nxdomainWithBadWildcardNSEC3Proof_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
query_unittest.cc:2615:642: error:
‘{anonymous}::QueryTest_emptyNameWithNSEC3_Test::gtest_registering_dummy_’
defined but not used [-Werror=unused-variable]
cc1plus: all warnings being treated as errors
}}}
Then, I think this kind of rules in Makefile are wrong:
{{{
testdata/example-base.zone example_base_inc.cc:
testdata/query_testzone_data.txt
$(PYTHON) $(srcdir)/gen-query-testdata.py \
$(srcdir)/testdata/query_testzone_data.txt \
testdata/example-base.zone example_base_inc.cc
}}}
Make doesn't really know multi-target rules. This are effectively two
independent rules (one to create `testdata/example-base.zone`, the other
to
generate `example_base_inc.cc`) which have the same dependencies and the
same
body. But they'd be run twice, possibly at the same twice. It could lead
to
strange behaviour on some OSes (compilation failures or file that are
written
twice, interleaved). Would it be possible to have two modes for the
gen-query-test.py, one for generating each file, and splitting the rule?
Why is this safety-catch removed? It was supposed (I guess) to catch bad
updates to the test data:
{{{#!diff
- const string hlabel = hash_map_[name.split(i, labels - i)];
- if (hlabel.empty()) {
- isc_throw(isc::Unexpected, "findNSEC3() hash failure for " <<
- name.split(i, labels - i));
- }
+ const string hlabel = nsec3_hash_.calculate(name.split(i, labels
- i));
}}}
If I look at the file `src/bin/auth/tests/testdata/example.zone.in`, would
it
be better to use the generated directly, instead of a file that contains
only
include of it?
The test data contains two „var=“ (without the variable name) in a row,
could
the second one be omitted?
{{{
#var=
example.com. 3600 IN RRSIG SOA 5 3 3600 20000101000000 20000201000000
12345 example.com. FAKEFAKEFAKE
example.com. 3600 IN RRSIG NS 5 3 3600 20000101000000 20000201000000 12345
example.com. FAKEFAKEFAKE
#var=
noglue.example.com. 3600 IN RRSIG A 5 3 3600 20000101000000 20000201000000
12345 example.com. FAKEFAKEFAKE
}}}
Thinking about it, could it be directly a master file and #var= would be
;var=?
In which case, only the .cc and sqlite3 files would need to be generated.
Also, about the way the tests are selectively disabled, I don't really
like
this much. This looks like the thing is tested and passes (because the
test is
listed in the output), but it is actually not tested. Wouldn't there be a
way to
run only the right tests? I could think of a way with defining separate
lists
of values (MOCK, MOCK+SQLITE3, everything) and having 3 different typedef
aliases for the test class, but I don't think that is an elegant solution
(but
maybe still slightly better).
{{{#!c++
TEST_P(QueryTest, exactAnyMatch) {
// there's a bug in the in-memory data source and this doesn't work
if (GetParam() == INMEMORY) {
return;
}
}}}
--
Ticket URL: <http://bind10.isc.org/ticket/2480#comment:12>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list