From 44e7cb05ce922e794b7b75489d2f4f0691c3dbd7 Mon Sep 17 00:00:00 2001 From: svu Date: Sun, 25 Apr 2004 19:26:03 +0000 Subject: [PATCH] starting test scripts --- tests/listCIs.xsl | 15 +++++++++ tests/testModels.pl | 80 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 95 insertions(+) create mode 100644 tests/listCIs.xsl create mode 100644 tests/testModels.pl diff --git a/tests/listCIs.xsl b/tests/listCIs.xsl new file mode 100644 index 0000000..0d2cd97 --- /dev/null +++ b/tests/listCIs.xsl @@ -0,0 +1,15 @@ + + + + + + + + + + + + + diff --git a/tests/testModels.pl b/tests/testModels.pl new file mode 100644 index 0000000..a0fd30b --- /dev/null +++ b/tests/testModels.pl @@ -0,0 +1,80 @@ +#!/bin/env perl + +use strict; + +my $origXkbRules; +my $origXkbModel; +my $origXkbLayouts; +my $origXkbOptions; +my $origXkbVariants; + +sub backupXkbSettings +{ + open (XPROP, "xprop -root |") or die "Could not start xprop"; + PROP: while () + { + if (/_XKB_RULES_NAMES\(STRING\) = \"(.*)\", \"(.*)\", \"(.*)\", \"(.*)\", \"(.*)\"/) + { + ( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions ) = + ( $1, $2, $3, $4, $5 ) ; + last PROP; + } + } + close XPROP; +} + +sub setXkbSettings +{ + my ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions ) = @_; + ( system ( "setxkbmap", + "-rules", $xkbRules, + "-model", $xkbModel, + "-layout", $xkbLayouts, + "-variant", $xkbVariants, + "-option", $xkbOptions ) == 0 ) or die "Could not set xkb configuration"; +} + +sub restoreXkbSettings +{ + setXkbSettings( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions ); +} + +sub dumpXkbSettings +{ + my ( $xkbRules, $xkbModel, $xkbLayouts, $xkbVariants, $xkbOptions ) = @_; + print "rules: [$xkbRules]\n" ; + print "model: [$xkbModel]\n" ; + print "layouts: [$xkbLayouts]\n" ; + print "variants: [$xkbVariants]\n" ; + print "options: [$xkbOptions]\n" ; +} + +sub testLevel1 +{ + my ( $type, $idx ) = @_; + + open ( XSLTPROC, "xsltproc --stringparam type $type listCIs.xsl ../rules/base.xml.in |" ) or + die ( "Could not start xsltproc" ); + while () + { + chomp(); + if (/(\w+)/) + { + my $paramValue=$1; + print "--- setting $type: [$paramValue]\n"; + my @params = ( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions ); + @params[$idx] = $paramValue; + dumpXkbSettings ( @params ); + setXkbSettings ( @params ); + } + } + close XSLTPROC; +} + +backupXkbSettings(); + +dumpXkbSettings( $origXkbRules, $origXkbModel, $origXkbLayouts, $origXkbVariants, $origXkbOptions ); + +testLevel1( "model", 1 ); + +restoreXkbSettings(); -- 2.32.0.93.g670b81a890