]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Test yaml output with yaml specials
authorMark Andrews <marka@isc.org>
Mon, 8 Jul 2024 05:49:48 +0000 (15:49 +1000)
committerMark Andrews <marka@isc.org>
Thu, 1 Aug 2024 02:30:57 +0000 (12:30 +1000)
bin/tests/system/digdelv/ns2/example.db.in
bin/tests/system/digdelv/tests.sh

index c711049e981c2c05de9574ffec6225b90ac69589..8a88e038cf3a61b2c239759f736bd66583cc7333 100644 (file)
@@ -49,3 +49,42 @@ hours                10800   A       10.53.0.2
 minutes                2700    A       10.53.0.2
 ;TTL of 45 seconds
 seconds                45      A       10.53.0.2
+; domain names with yaml special values and data with ': '
+yaml                   TXT     "a: b"
+'.yaml                 TXT     "a: b"
+[.yaml                 TXT     "a: b"
+{.yaml                 TXT     "a: b"
+&.yaml                 TXT     "a: b"
+#.yaml                 TXT     "a: b"
+all.yaml               TXT     ( \000 \001 \002 \003 \004 \005 \006 \007
+                                 \008 \009 \010 \011 \012 \013 \014 \015
+                                 \016 \017 \018 \019 \020 \021 \022 \023
+                                 \024 \025 \026 \027 \028 \029 \030 \031
+                                 \032 \033 \034 \035 \036 \037 \038 \039
+                                 \040 \041 \042 \043 \044 \045 \046 \047
+                                 \048 \049 \050 \051 \052 \053 \054 \055
+                                 \056 \057 \058 \059 \060 \061 \062 \063
+                                 \064 \065 \066 \067 \068 \069 \070 \071
+                                 \072 \073 \074 \075 \076 \077 \078 \079
+                                 \080 \081 \082 \083 \084 \085 \086 \087
+                                 \088 \089 \090 \091 \092 \093 \094 \095
+                                 \096 \097 \098 \099 \100 \101 \102 \103
+                                 \104 \105 \106 \107 \108 \109 \110 \111
+                                 \112 \113 \114 \115 \116 \117 \118 \119
+                                 \120 \121 \122 \123 \124 \125 \126 \127
+                                 \128 \129 \130 \131 \132 \133 \134 \135
+                                 \136 \137 \138 \139 \140 \141 \142 \143
+                                 \144 \145 \146 \147 \148 \149 \150 \151
+                                 \152 \153 \154 \155 \156 \157 \158 \159
+                                 \160 \161 \162 \163 \164 \165 \166 \167
+                                 \168 \169 \170 \171 \172 \173 \174 \175
+                                 \176 \177 \178 \179 \180 \181 \182 \183
+                                 \184 \185 \186 \187 \188 \189 \190 \191
+                                 \192 \193 \194 \195 \196 \197 \198 \199
+                                 \200 \201 \202 \203 \204 \205 \206 \207
+                                 \208 \209 \210 \211 \212 \213 \214 \215
+                                 \216 \217 \218 \219 \220 \221 \222 \223
+                                 \224 \225 \226 \227 \228 \229 \230 \231
+                                 \232 \233 \234 \235 \236 \237 \238 \239
+                                 \240 \241 \242 \243 \244 \245 \246 \247
+                                 \248 \249 \250 \251 \252 \253 \254 \255 )
index f29bcccef15bbacb32640baf63e123b562a1b408..2e867a3adc286629b6530784db563440900f5f3e 100644 (file)
@@ -1475,5 +1475,60 @@ else
   echo_i "$DELV is needed, so skipping these delv tests"
 fi
 
+if [ $HAS_PYYAML -ne 0 ]; then
+  for qname in "yaml" "'.yaml" "[.yaml" "{.yaml" "&.yaml" "#.yaml"; do
+    n=$((n + 1))
+    echo_i "check yaml special '${yaml}.example' ($n)"
+    ret=0
+    dig_with_opts @10.53.0.3 +yaml "${qname}.example" TXT +qr >dig.out.test$n 2>&1 || ret=1
+    $PYTHON yamlget.py dig.out.test$n 0 message query_message_data QUESTION_SECTION 0 >yamlget.out.test$n 2>&1 || ret=1
+    read -r value <yamlget.out.test$n
+    [ "$value" = "${qname}.example. IN TXT" ] || ret=1
+    $PYTHON yamlget.py dig.out.test$n 1 message response_message_data ANSWER_SECTION 0 >yamlget.out.test$n 2>&1 || ret=1
+    read -r value <yamlget.out.test$n
+    [ "$value" = "${qname}"'.example. 300 IN TXT "a: b"' ] || ret=1
+    if [ $ret -ne 0 ]; then echo_i "failed"; fi
+    status=$((status + ret))
+  done
+
+  n=$((n + 1))
+  echo_i "check yaml character values ($n)"
+  ret=0
+  dig_with_opts @10.53.0.3 +yaml "all.yaml.example" TXT +qr >dig.out.test$n 2>&1 || ret=1
+  $PYTHON yamlget.py dig.out.test$n 1 message response_message_data ANSWER_SECTION 0 >yamlget.out.test$n 2>&1 || ret=1
+  read -r value <yamlget.out.test$n
+  expected='all.yaml.example. 300 IN TXT'
+  expected="$expected "'"\000" "\001" "\002" "\003" "\004" "\005" "\006" "\007"'
+  expected="$expected "'"\008" "\009" "\010" "\011" "\012" "\013" "\014" "\015"'
+  expected="$expected "'"\016" "\017" "\018" "\019" "\020" "\021" "\022" "\023"'
+  expected="$expected "'"\024" "\025" "\026" "\027" "\028" "\029" "\030" "\031"'
+  expected="$expected "'" " "!" "\"" "#" "$" "%" "&" "'"'"'" "(" ")" "*" "+" ","'
+  expected="$expected "'"-" "." "/" "0" "1" "2" "3" "4" "5" "6" "7" "8" "9" ":"'
+  expected="$expected "'";" "<" "=" ">" "?" "@" "A" "B" "C" "D" "E" "F" "G" "H"'
+  expected="$expected "'"I" "J" "K" "L" "M" "N" "O" "P" "Q" "R" "S" "T" "U" "V"'
+  expected="$expected "'"W" "X" "Y" "Z" "[" "\\" "]" "^" "_" "`" "a" "b" "c" "d"'
+  expected="$expected "'"e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r"'
+  expected="$expected "'"s" "t" "u" "v" "w" "x" "y" "z" "{" "|" "}" "~" "\127"'
+  expected="$expected "'"\128" "\129" "\130" "\131" "\132" "\133" "\134" "\135"'
+  expected="$expected "'"\136" "\137" "\138" "\139" "\140" "\141" "\142" "\143"'
+  expected="$expected "'"\144" "\145" "\146" "\147" "\148" "\149" "\150" "\151"'
+  expected="$expected "'"\152" "\153" "\154" "\155" "\156" "\157" "\158" "\159"'
+  expected="$expected "'"\160" "\161" "\162" "\163" "\164" "\165" "\166" "\167"'
+  expected="$expected "'"\168" "\169" "\170" "\171" "\172" "\173" "\174" "\175"'
+  expected="$expected "'"\176" "\177" "\178" "\179" "\180" "\181" "\182" "\183"'
+  expected="$expected "'"\184" "\185" "\186" "\187" "\188" "\189" "\190" "\191"'
+  expected="$expected "'"\192" "\193" "\194" "\195" "\196" "\197" "\198" "\199"'
+  expected="$expected "'"\200" "\201" "\202" "\203" "\204" "\205" "\206" "\207"'
+  expected="$expected "'"\208" "\209" "\210" "\211" "\212" "\213" "\214" "\215"'
+  expected="$expected "'"\216" "\217" "\218" "\219" "\220" "\221" "\222" "\223"'
+  expected="$expected "'"\224" "\225" "\226" "\227" "\228" "\229" "\230" "\231"'
+  expected="$expected "'"\232" "\233" "\234" "\235" "\236" "\237" "\238" "\239"'
+  expected="$expected "'"\240" "\241" "\242" "\243" "\244" "\245" "\246" "\247"'
+  expected="$expected "'"\248" "\249" "\250" "\251" "\252" "\253" "\254" "\255"'
+  [ "$value" = "$expected" ] || ret=1
+  if [ $ret -ne 0 ]; then echo_i "failed"; fi
+  status=$((status + ret))
+fi
+
 echo_i "exit status: $status"
 [ $status -eq 0 ] || exit 1