]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Test of valid A-label in locale that cannot display it only with non-broken idn2
authorOndřej Surý <ondrej@sury.org>
Mon, 30 Sep 2019 07:04:59 +0000 (09:04 +0200)
committerOndřej Surý <ondrej@sury.org>
Mon, 30 Sep 2019 09:47:39 +0000 (11:47 +0200)
The libidn2 library on Ubuntu Bionic is broken and idn2_to_unicode_8zlz() does't
fail when it should.  This commit ensures that we don't run the system test for
valid A-label in locale that cannot display with the buggy libidn2 as it would
break the tests.

bin/tests/system/idna/tests.sh

index 0d96c8bd7f291e3ffdac182761d14c8cfe2f0f98..fe8ae5551d426ccaa065a11b7fe7cb3f21edf652 100644 (file)
@@ -254,12 +254,14 @@ idna_enabled_test() {
     # The "+[no]idnout" flag has no effect in these cases.
     text="Checking valid A-label in C locale"
     label="xn--nxasmq6b.com"
-    LC_ALL=C idna_test "$text" ""                   "$label" "$label."
-    LC_ALL=C idna_test "$text" "+noidnin +noidnout" "$label" "$label."
-    LC_ALL=C idna_test "$text" "+noidnin +idnout"   "$label" "$label."
-    LC_ALL=C idna_test "$text" "+idnin +noidnout"   "$label" "$label."
-    LC_ALL=C idna_test "$text" "+idnin +idnout"     "$label" "$label."
-    LC_ALL=C idna_test "$text" "+noidnin +idnout"   "$label" "$label."
+    if command -v idn2 >/dev/null && ! LC_ALL=C idn2 -d "$label" >/dev/null 2>/dev/null; then
+       LC_ALL=C idna_test "$text" ""                   "$label" "$label."
+       LC_ALL=C idna_test "$text" "+noidnin +noidnout" "$label" "$label."
+       LC_ALL=C idna_test "$text" "+noidnin +idnout"   "$label" "$label."
+       LC_ALL=C idna_test "$text" "+idnin +noidnout"   "$label" "$label."
+       LC_ALL=C idna_test "$text" "+idnin +idnout"     "$label" "$label."
+       LC_ALL=C idna_test "$text" "+noidnin +idnout"   "$label" "$label."
+    fi