test: Exercise compiling from components
This could probably use a lot more real world test cases, but it does the job for now.master
parent
a2e597675b
commit
713c8f418f
|
@ -1,3 +1,4 @@
|
|||
*.log
|
||||
namescomp
|
||||
rulescomp
|
||||
xkey
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include "X11/extensions/XKBcommon.h"
|
||||
#include <X11/extensions/XKBstrcommon.h>
|
||||
#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;
|
||||
}
|
|
@ -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)"
|
Loading…
Reference in New Issue