From: Dan Nicholson Date: Sat, 4 Apr 2009 19:54:44 +0000 (-0700) Subject: test: Exercise compiling from components X-Git-Tag: xkbcommon-0.2.0~918 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=713c8f418f4d04fbf4e776a57a3997e89b15711b;p=platform%2Fupstream%2Flibxkbcommon.git test: Exercise compiling from components This could probably use a lot more real world test cases, but it does the job for now. --- diff --git a/test/.gitignore b/test/.gitignore index fd63fc1..19c5293 100644 --- a/test/.gitignore +++ b/test/.gitignore @@ -1,3 +1,4 @@ *.log +namescomp rulescomp xkey diff --git a/test/Makefile.am b/test/Makefile.am index 871cbd5..bb86435 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -3,8 +3,8 @@ AM_CFLAGS = $(X11_CFLAGS) $(CWARNFLAGS) TESTS_ENVIRONMENT = $(SHELL) -check_PROGRAMS = xkey rulescomp -TESTS = xkey.sh rulescomp.sh +check_PROGRAMS = xkey namescomp rulescomp +TESTS = xkey.sh namescomp.sh rulescomp.sh clean-local: rm -f *.log @@ -14,3 +14,6 @@ xkey_LDADD = $(top_builddir)/src/libxkbcommon.la rulescomp_SOURCES = rulescomp.c rulescomp_LDADD = $(top_builddir)/src/libxkbcommon.la + +namescomp_SOURCES = namescomp.c +namescomp_LDADD = $(top_builddir)/src/libxkbcommon.la diff --git a/test/namescomp.c b/test/namescomp.c new file mode 100644 index 0000000..4f40b1f --- /dev/null +++ b/test/namescomp.c @@ -0,0 +1,64 @@ +/* +Copyright 2009 Dan Nicholson + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +Except as contained in this notice, the names of the authors or their +institutions shall not be used in advertising or otherwise to promote the +sale, use or other dealings in this Software without prior written +authorization from the authors. +*/ + +#include +#include +#include "X11/extensions/XKBcommon.h" +#include +#include "../src/xkbcomp/utils.h" + +int main(int argc, char *argv[]) +{ + XkbComponentNamesRec ktcsg; + XkbcDescPtr xkb; + + /* Require rmlvo */ + if (argc < 6) { + fprintf(stderr, "Not enough arguments\n"); + fprintf(stderr, "Usage: %s KEYCODES TYPES COMPAT SYMBOLS GEOMETRY\n", + argv[0]); + exit(1); + } + + ktcsg.keymap = NULL; + ktcsg.keycodes = argv[1]; + ktcsg.types = argv[2]; + ktcsg.compat = argv[3]; + ktcsg.symbols = argv[4]; + ktcsg.geometry = argv[5]; + + uSetErrorFile(NULL); + XkbcInitAtoms(); + + xkb = XkbcCompileKeymapFromComponents(&ktcsg); + + if (!xkb) { + fprintf(stderr, "Failed to compile keymap\n"); + exit(1); + } + + return 0; +} diff --git a/test/namescomp.sh b/test/namescomp.sh new file mode 100755 index 0000000..6fdfb09 --- /dev/null +++ b/test/namescomp.sh @@ -0,0 +1,36 @@ +#!/bin/sh + +srcdir=${srcdir-.} +builddir=${builddir-.} + +name=namescomp +prog="$builddir/$name$EXEEXT" +log="$builddir/$name.log" + +compile() +{ + echo "$prog '$1' '$2' '$3' '$4' '$5'" >>"$log" + $prog "$1" "$2" "$3" "$4" "$5" >>"$log" 2>&1 || exit $? +} + +failcompile() +{ + echo "$prog '$1' '$2' '$3' '$4' '$5'" >>"$log" + if $prog "$1" "$2" "$3" "$4" "$5" >>"$log" 2>&1; then + exit 1 + fi +} + +rm -f "$log" + +compile "xfree86+aliases(qwerty)" "" "" "" "" +compile "xfree86+aliases(qwertz)" "" "" "pc+de" "" +compile "xfree86+aliases(qwerty)" "complete" "complete" "pc+us" "pc(pc105)" +compile "xfree86+aliases(qwertz)" "complete" "complete" \ + "pc+de+level3(ralt_switch_for_alts_toggle)+group(alts_toggle)" \ + "pc(pc104)" + +failcompile "" "" "" "" "" "" +failcompile "" "complete" "" "" "" "" +failcompile "" "" "complete" "" "" "" +failcompile "badnames" "complete" "complete" "pc+us" "pc(pc101)"