Add test to make sure ot-languages array is sorted
authorBehdad Esfahbod <behdad@behdad.org>
Mon, 7 Dec 2015 09:28:46 +0000 (10:28 +0100)
committerBehdad Esfahbod <behdad@behdad.org>
Mon, 7 Dec 2015 09:28:46 +0000 (10:28 +0100)
Currently fails.  Part of
https://bugs.freedesktop.org/show_bug.cgi?id=93275

src/Makefile.am
src/hb-ot-tag.cc

index ec55656..976f11f 100644 (file)
@@ -392,7 +392,14 @@ dist_check_SCRIPTS = \
        check-symbols.sh \
        $(NULL)
 
-TESTS = $(dist_check_SCRIPTS)
+check_PROGRAMS = \
+       test-ot-tag \
+       $(NULL)
+test_ot_tag_SOURCES = hb-ot-tag.cc
+test_ot_tag_CPPFLAGS = $(HBCFLAGS) -DMAIN
+test_ot_tag_LDADD = libharfbuzz.la $(HBLIBS)
+
+TESTS = $(dist_check_SCRIPTS) $(check_PROGRAMS)
 TESTS_ENVIRONMENT = \
        srcdir="$(srcdir)" \
        MAKE="$(MAKE) $(AM_MAKEFLAGS)" \
index a2e5728..fc8cf45 100644 (file)
@@ -928,4 +928,27 @@ hb_ot_tag_to_language (hb_tag_t tag)
   }
 }
 
+static inline void
+test_langs_sorted (void)
+{
+  for (unsigned int i = 1; i < ARRAY_LENGTH (ot_languages); i++)
+  {
+    int c = lang_compare_first_component (ot_languages[i-1].language, ot_languages[i].language);
+    if (c >= 0)
+    {
+      fprintf (stderr, "ot_languages not sorted at index %d: %s %d %s\n",
+              i, ot_languages[i-1].language, c, ot_languages[i].language);
+      abort();
+    }
+  }
+}
+
+#ifdef MAIN
+int
+main (void)
+{
+  test_langs_sorted ();
+  return 0;
+}
 
+#endif