[vlc-devel] commit: Check that keys are sorted properly ( Rémi Denis-Courmont )

git version control git at videolan.org
Thu May 21 16:36:21 CEST 2009


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu May 21 16:41:27 2009 +0300| [f433cde3605ba325d96d7b4945ae81b929c10620] | committer: Rémi Denis-Courmont 

Check that keys are sorted properly

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f433cde3605ba325d96d7b4945ae81b929c10620
---

 src/test/Makefile.am |    2 ++
 src/test/keys.c      |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+), 0 deletions(-)

diff --git a/src/test/Makefile.am b/src/test/Makefile.am
index 31df537..679b212 100644
--- a/src/test/Makefile.am
+++ b/src/test/Makefile.am
@@ -4,6 +4,7 @@ check_PROGRAMS = \
 	test_block \
 	test_dictionary \
 	test_i18n_atof \
+	test_keys \
 	test_url \
 	test_utf8 \
 	test_xmlent \
@@ -18,6 +19,7 @@ LDADD = ../libvlccore.la
 test_block_SOURCES = test_block.c ../misc/block.c
 test_dictionary_SOURCES = dictionary.c
 test_i18n_atof_SOURCES = i18n_atof.c
+test_keys_SOURCES = keys.c
 test_url_SOURCES = url.c
 test_utf8_SOURCES = utf8.c
 test_xmlent_SOURCES = xmlent.c
diff --git a/src/test/keys.c b/src/test/keys.c
new file mode 100644
index 0000000..ab569c0
--- /dev/null
+++ b/src/test/keys.c
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * keys.c: test for key support
+ *****************************************************************************
+ * Copyright (C) 2009 Rémi Denis-Courmont
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <vlc_common.h>
+#include <vlc_keys.h>
+
+#include <stdio.h>
+#include <stdint.h>
+#include <stdbool.h>
+
+int main (void)
+{
+    bool ok = true;
+
+    /* Make sure keys are sorted properly, so that bsearch() works */
+    for (size_t i = 1; i < vlc_num_keys; i++)
+        if (vlc_keys[i].i_key_code < vlc_keys[i - 1].i_key_code)
+        {
+            fprintf (stderr,
+                     "%s (%06"PRIx32") should be before %s (%06"PRIx32")\n",
+                     vlc_keys[i].psz_key_string, vlc_keys[i].i_key_code,
+                     vlc_keys[i - 1].psz_key_string,
+                     vlc_keys[i - 1].i_key_code);
+            ok = false;
+        }
+
+    return !ok;
+}




More information about the vlc-devel mailing list