-
Notifications
You must be signed in to change notification settings - Fork 33
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Ability to run single testcase via test_zone() #1312
Conversation
71278c4
to
966a032
Compare
68ec36b
to
0eda5db
Compare
@marc-vanderwal, @matsduf, @tgreenx, @hannaeko Would you guys have time to have a look at this? If this PR is approved I could build on top of it for the custom test modules feature design. |
I won’t have time today, but I can take a more thorough look at it tomorrow. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, apart from that comment, it looks good to me.
13c00aa
to
f2ac714
Compare
I've rebased onto develop. Please review again. |
A lot of changes in MANIFEST, but any real change? |
I do not understand what this PR wants to change. Could you clarify the purpose? |
* Zonemaster::Engine::Test::DNSSEC->all() * Zonemaster::Engine::Test::Syntax->all() * Zonemaster::Engine::Test::Basic->all()
* HAS_NAMESERVER_NO_WWW_A_TEST * ADDITIONAL_DNSKEY_SKIPPED
I probably ran
I'm not sure what you're looking for. Maybe you could rephrase your question in the language of the Purpose and Changes sections of the PR description? |
Could you clarify the purpose of this PR? Could you also clarify what is changed by this PR? |
f2ac714
to
d708dde
Compare
@matsduf We talked about this offline. |
Is the model defined anywhere? |
If by that you mean that there is a data structure, such as a graph, that defines those dependency relationships, then no; this model is defined in code by a series of I’d say that the code could be refactored so that each test case is a method with appropriate subroutine attributes. We could get rid of some repetitive boilerplate and encode dependencies between subroutines that way. The downside is that this technique is pretty advanced Perl and requires some brutal metaprogramming. |
I expected a model, "this is how dependencies should be implemented", but is sound like there is just the implementations. I think the dependency, if there should be any, should be defined in the specifications. |
Co-authored-by: tgreenx <96772376+tgreenx@users.noreply.github.com>
Co-authored-by: tgreenx <96772376+tgreenx@users.noreply.github.com>
I was able to test most of the changes introduced by this PR. Although I could not be exhaustive with my testing, I am confident enough that there are no regressions.
Success: I ran
Partially tested. Testing with
Couldn’t test exhaustively, but with a domain that doesn’t cause
With a broken domain such as
Successfully tested: with
Successfully tested with
Successfully tested: with
Cannot test: none of the available user interfaces allow a test to start when a domain name contains invalid characters.
Cannot test these three: I was unable to find a zone that elicited NO_RESPONSE_SOA_QUERY or NO_RESPONSE_MX_QUERY. Testing these will require IBDNS.
Successfully tested with
Cannot test: I was unable to find a zone that elicited ADDITIONAL_DNSKEY_SKIPPED. |
Purpose
Improve the semantics of the test_cases profile property to be more useful and less surprising. This is helpful for
Context
Prerequisite for zonemaster/zonemaster-cli#359.
Changes
This PR the behavior of Zonemaster::Engine->test_zone() (and its plumbing). It is updated in some important ways:
This PR also includes a bug fix:
How to test this PR
Automated tests:
Manual tests:
zonemaster-cli --test dnssec
and verify that it doesn't emit stray TEST_CASE_END messages.Tests that ought to be automated as part of this PR but that I'm lacking test data for: