Use xkb_contexts in keymap compilation
[platform/upstream/libxkbcommon.git] / test / canonicalise.sh
1 #!/bin/sh -x
2
3 srcdir=${srcdir-.}
4 builddir=${builddir-.}
5
6 name=canonicalise
7 prog="$builddir/$name$EXEEXT"
8 log="$builddir/$name.log"
9
10 log_kccgst()
11 {
12     echo "  keycodes: $1" >>"$log"
13     echo "  compat: $2" >>"$log"
14     echo "  symbols: $3" >>"$log"
15     echo "  types: $4" >>"$log"
16 }
17
18 rm -f "$log"
19
20 test() {
21     ret=`$prog $2 $3`
22     echo "Input (new):" >>"$log"
23     log_kccgst $2
24     echo >>"$log"
25     echo "Input (old):" >>"$log"
26     log_kccgst $3
27     echo >>"$log"
28     echo "Expecting:" >>"$log"
29     log_kccgst $1
30     echo >>"$log"
31     echo "Received:" >>"$log"
32     log_kccgst $ret
33     echo >>"$log"
34
35     ret=`echo "$ret" | sed -e 's/[  ]*/ /g;'`
36     exp=`echo "$1" | sed -e 's/[  ]*/ /g;'`
37
38     if ! [ "$ret" = "$exp" ]; then
39         echo "Error: Return and expectations different" >>"$log"
40         exit 1
41     fi
42 }
43
44 # This is a bit of a horror, but I can't really remember how to properly
45 # handle arrays in shell, and I'm offline.
46 twopart_new="+inet(pc104)        %+complete     pc(pc104)+%+ctrl(nocaps)          |complete"
47 twopart_old="xfree86             basic          us(dvorak)                        xfree86"
48 twopart_exp="xfree86+inet(pc104) basic+complete pc(pc104)+us(dvorak)+ctrl(nocaps) xfree86|complete"
49
50 onepart_new="evdev               complete       pc(pc104)+us+compose(ralt)        complete"
51 onepart_exp="evdev               complete       pc(pc104)+us+compose(ralt)        complete"
52
53 test "$twopart_exp" "$twopart_new" "$twopart_old"
54 echo >>"$log"
55 echo >>"$log"
56 test "$onepart_exp" "$onepart_new"