mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/legion/kbd.git
synced 2026-01-26 14:13:24 +00:00
It is not enough to use tty to check the terminal. It is necessary to check whether the terminal points to a real terminal and not a pseudo-terminal. To do this, we use kbdinfo to obtain the terminal mode as a terminal check. This will allow us to repeat the terminal search algorithm used by all utilities in the project. Link: https://github.com/legionus/kbd/issues/143 Signed-off-by: Alexey Gladkov <legion@kernel.org>
84 lines
3.2 KiB
Plaintext
84 lines
3.2 KiB
Plaintext
AT_BANNER([utilities unit tests])
|
|
|
|
AT_PREPARE_EACH_TEST([
|
|
LOADKEYS_KEYMAP_PATH="$abs_top_srcdir/tests/data/keymaps"
|
|
])
|
|
|
|
AT_SETUP([loadkeys mutually exclusive options])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
cat >experr <<EOF
|
|
loadkeys: Options --unicode and --ascii are mutually exclusive.
|
|
EOF
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys --ascii --unicode --parse /dev/null], [1], [], [experr])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys default keymap])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
echo > defkeymap.map
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys --default --parse])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys prefer unicode with keymap file])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -c -s -u --parse "$LOADKEYS_KEYMAP_PATH/i386/qwerty/cz.map"])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys prefer unicode with stdin])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -c -s -u --parse < "$LOADKEYS_KEYMAP_PATH/i386/qwerty/cz.map"])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys prefer unicode with stdin file])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -c -s -u --parse - < "$LOADKEYS_KEYMAP_PATH/i386/qwerty/cz.map"])
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys roundtrip])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
for keymap in "qwerty/us" "qwerty/cz" "qwerty/ru3"; do
|
|
for shape in 2 4 8 16; do
|
|
echo "Testing $keymap, shape: $shape"
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -u --tkeymap="$shape" "$LOADKEYS_KEYMAP_PATH/i386/$keymap.map"], [0], [stdout])
|
|
AT_CHECK([test -s stdout])
|
|
cp -f -- stdout expout
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -u --tkeymap="$shape" stdout], [0], [expout])
|
|
done
|
|
done
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([loadkeys pipe tkeymap to mktable])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
for keymap in "qwerty/us" "qwerty/cz" "qwerty/ru3"; do
|
|
for shape in 2 4 8 16; do
|
|
echo "Testing $keymap, shape: $shape"
|
|
AT_CHECK([$abs_top_builddir/src/loadkeys -q -u --mktable "$LOADKEYS_KEYMAP_PATH/i386/$keymap.map"], [0], [stdout])
|
|
AT_CHECK([test -s stdout])
|
|
cp -f -- stdout expout
|
|
AT_CHECK([
|
|
$abs_top_builddir/src/loadkeys -q -u --tkeymap="$shape" "$LOADKEYS_KEYMAP_PATH/i386/$keymap.map" |
|
|
$abs_top_builddir/src/loadkeys -q -u --mktable -
|
|
], [0], [expout])
|
|
done
|
|
done
|
|
AT_CLEANUP
|
|
|
|
AT_SETUP([check parsing and restoration of alt_is_meta])
|
|
AT_KEYWORDS([utils unittest])
|
|
AT_SKIP_IF([ ! $abs_top_builddir/src/kbdinfo getmode >/dev/null 2>&1 ])
|
|
AT_CHECK([
|
|
printf '%s\n' 'alt_is_meta' 'include "qwerty-layout"' |
|
|
LOADKEYS_INCLUDE_PATH="$LOADKEYS_KEYMAP_PATH/i386/include" \
|
|
$abs_top_builddir/src/loadkeys -q -u --tkeymap=2 -
|
|
], [0], [stdout])
|
|
cp -f -- stdout expout
|
|
AT_CHECK([grep -qs alt_is_meta stdout])
|
|
AT_CHECK([LOADKEYS_KEYMAP_PATH="$PWD" $abs_top_builddir/src/loadkeys -q -u --tkeymap=2 stdout], [0], [expout])
|
|
AT_CLEANUP
|