Syntax02 (syntax02)

Status: Final

Purpose

  • Validate that no domain label starts or ends with a hyphen (-).

Preconditions And Inputs

  • Preconditions:
    • A zone.Zone object is available.
  • Required inputs:
    • Child zone name (z.Name).
  • Profile/config knobs that affect behavior:
    • None inside this testcase.

Algorithm And Decision Flow

  1. Emit TEST_CASE_START.
  2. For each label in the tested domain:
    • If the label starts with -, emit INITIAL_HYPHEN.
    • If the label ends with -, emit TERMINAL_HYPHEN.
  3. If at least one label exists and no issues were emitted, emit NO_ENDING_HYPHENS.
  4. Emit TEST_CASE_END.

Emitted Tags (Possible Set)

TagEmitted when
INITIAL_HYPHENA label starts with -.
TERMINAL_HYPHENA label ends with -.
NO_ENDING_HYPHENSDomain labels exist and none starts/ends with -.
TEST_CASE_ENDTestcase completion marker is emitted.
TEST_CASE_STARTTestcase start marker is emitted.

Tag Arguments

TagArgument keyTypeMeaning
INITIAL_HYPHENlabelstringLabel that starts with -.
INITIAL_HYPHENdomainstringTested domain name.
TERMINAL_HYPHENlabelstringLabel that ends with -.
TERMINAL_HYPHENdomainstringTested domain name.
NO_ENDING_HYPHENSdomainstringTested domain name.
TEST_CASE_ENDtestcasestringTestcase display name (Syntax02).
TEST_CASE_STARTtestcasestringTestcase display name (Syntax02).

Severity Levels Per Tag

TagLevelNotes
INITIAL_HYPHENERRORDefault from share/profile.json (test_levels.SYNTAX).
TERMINAL_HYPHENERRORDefault from share/profile.json (test_levels.SYNTAX).
NO_ENDING_HYPHENSINFODefault from share/profile.json (test_levels.SYNTAX).
TEST_CASE_ENDDEBUGDefault from share/profile.json (test_levels.SYNTAX).
TEST_CASE_STARTDEBUGDefault from share/profile.json (test_levels.SYNTAX).

Differences From Upstream

  • Upstream reference: syntax02.md
  • Differences (Upstream vs Gonemaster):
    • Upstream: No material behavioral difference identified. Gonemaster: Matches upstream behavior for this testcase.
  • Potential upstream report:
    • no

Edge Cases And Limitations

  • A single label can emit both INITIAL_HYPHEN and TERMINAL_HYPHEN.
  • If the tested name has zero labels, NO_ENDING_HYPHENS is not emitted.