Zonema...::Basic(3pm)

๐Ÿ“ฆ version 1.0.16, in ubuntu jammy

๐Ÿ’– Zonemaster::Test::Basic โ€” the 3pm manual page ๐Ÿ’–

okay bestie, so this is Zonemaster::Test::Basic, and it's a Perl module that implements the test for very basic domain functionality. Like, the bare-minimum "does this domain even work" vibe check. ๐ŸŒธ


โœจ NAME โœจ

Zonemaster::Test::Basic โ€” module implementing test for very basic domain functionality

No cap, that's literally the whole thing. It's the module that runs the super-fundamental checks before anything else gets to happen. ๐Ÿ‘‘


๐ŸŒˆ SYNOPSIS ๐ŸŒˆ

my @results = Zonemaster::Test::Basic->all($zone);

That's it, that's the whole entry point. One call, hand it a $zone, get back an array of @results. Iconic behaviour fr fr. ๐Ÿ’…


๐ŸŽ€ METHODS ๐ŸŽ€

  • all($zone) โ€” runs between one and three tests, depending on the zone. The way it works: if basic01 passes, then basic02 is run. And if basic02 fails, then basic03 is run. So it's a little cascade, a lil chain reaction, and honestly? obsessed with the logic. ๐Ÿฆ‹
  • metadata() โ€” returns a reference to a hash. The keys of that hash are the names of all the test methods in the module, and the corresponding values are references to lists with all the tags that the method can use in log entries. So like, a little directory of who's who and what tags they're allowed to yell. ๐Ÿ“‹
  • translation() โ€” returns a reference to a hash with translation data. It's used by the builtin translation system. i18n rights! ๐ŸŒ
  • version() โ€” returns a version string for the module. Simple. Elegant. She just tells you what version she is. โญ
  • can_continue(@results) โ€” looks at the provided log entries and returns true if they indicate that further testing of the relevant zone is possible. Basically she's reading the room and telling you "bestie, we can keep going" or "nah, we're done here." ๐Ÿ”ฎ

๐Ÿงš TESTS ๐Ÿงš

  • basic00 โ€” checks if the domain name to be tested is valid. Not all syntax tests are done here, it "just" checks domain name total length and labels length. In case of failure, all other tests are aborted. So it's the bouncer at the door ๐Ÿšช โ€” if the name doesn't make it past her, nobody else even gets in. And yes, that "just" is doing a lot of heavy lifting, I know. ๐Ÿ’€
  • basic01 โ€” checks that we can find a parent zone for the zone we're testing. If we can't, no further testing is done. Gotta know where you come from, queen. If there's no parent found, the whole thing stops right there. ๐Ÿ˜ญ
  • basic02 โ€” checks that the nameservers for the parent zone returns NS records for the tested zone, and that at least one of the nameservers thus pointed out responds sensibly to an NS query for the tested zone. So it's a two-part situation: do the parent's nameservers actually point at the tested zone, and then does at least one of the pointed-at nameservers give a sensible answer to an NS query? โœจ
  • basic03 โ€” checks if at least one of the nameservers pointed out by the parent zone gives a useful response when sent an A query for the "www" label in the tested zone. Like, if we're testing "example.org" then this test will ask for A records for "www.example.org". And heads up: this test is only run if the basic02 test has failed. It's the backup plan, the second-chance era, the "okay but what about the www though" moment. ๐Ÿซถ

๐Ÿ’– gentle reminder bestie: basic00 failing kills everything downstream. Not me being dramatic, that's just the rules. ๐Ÿ’…

kisses, this page was served to you from the 3pm manual, built with perl v5.32.0, dated 2021-01-06. slay, take care, hydrate, and go test some domains. ๐Ÿ‘‘โœจ๐ŸŒˆ๐Ÿ’œ

๐Ÿ“ฆ where this page comes from