2013-04-05 20:49:27 +04:00
/*
* Copyright ( C ) 2013 Red Hat , Inc .
*
* This library is free software ; you can redistribute it and / or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation ; either
* version 2.1 of the License , or ( at your option ) any later version .
*
* This library is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the GNU
* Lesser General Public License for more details .
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library ; If not , see
* < http : //www.gnu.org/licenses/>.
*
* Author : Daniel P . Berrange < berrange @ redhat . com >
*/
# include <config.h>
# include <stdlib.h>
# include "testutils.h"
# include "virkeycode.h"
# include "virutil.h"
# include "virerror.h"
# include "viralloc.h"
# include "virlog.h"
# include "virlockspace.h"
# define VIR_FROM_THIS VIR_FROM_NONE
2014-02-28 16:16:17 +04:00
VIR_LOG_INIT ( " tests.keycodetest " ) ;
2013-04-05 20:49:27 +04:00
static int testKeycodeMapping ( const void * data ATTRIBUTE_UNUSED )
{
int ret = - 1 ;
int got ;
# define TRANSLATE(from, to, val, want) \
do { \
if ( ( got = virKeycodeValueTranslate ( VIR_KEYCODE_SET_ # # from , \
VIR_KEYCODE_SET_ # # to , \
val ) ) ! = want ) { \
fprintf ( stderr , " Translating %d from %s to %s, got %d want %d \n " , \
val , # from , # to , got , want ) ; \
goto cleanup ; \
} \
} while ( 0 )
TRANSLATE ( LINUX , LINUX , 111 , 111 ) ;
TRANSLATE ( LINUX , USB , 111 , 76 ) ;
TRANSLATE ( LINUX , RFB , 88 , 88 ) ;
TRANSLATE ( LINUX , RFB , 160 , 163 ) ;
TRANSLATE ( ATSET2 , ATSET3 , 259 , 55 ) ;
# undef TRANSLATE
ret = 0 ;
2014-03-25 10:53:44 +04:00
cleanup :
2013-04-05 20:49:27 +04:00
return ret ;
}
static int testKeycodeStrings ( const void * data ATTRIBUTE_UNUSED )
{
int ret = - 1 ;
int got ;
# define TRANSLATE(from, str, want) \
do { \
if ( ( got = virKeycodeValueFromString ( VIR_KEYCODE_SET_ # # from , \
str ) ) ! = want ) { \
fprintf ( stderr , " Converting %s from %s, got %d want %d \n " , \
str , # from , got , want ) ; \
goto cleanup ; \
} \
} while ( 0 )
TRANSLATE ( LINUX , " KEY_DELETE " , 111 ) ;
TRANSLATE ( OSX , " Function " , 0x3f ) ;
TRANSLATE ( WIN32 , " VK_UP " , 0x26 ) ;
# undef TRANSLATE
ret = 0 ;
2014-03-25 10:53:44 +04:00
cleanup :
2013-04-05 20:49:27 +04:00
return ret ;
}
static int
mymain ( void )
{
int ret = 0 ;
2013-09-20 22:13:35 +04:00
if ( virtTestRun ( " Keycode mapping " , testKeycodeMapping , NULL ) < 0 )
2013-04-05 20:49:27 +04:00
ret = - 1 ;
2013-09-20 22:13:35 +04:00
if ( virtTestRun ( " Keycode strings " , testKeycodeStrings , NULL ) < 0 )
2013-04-05 20:49:27 +04:00
ret = - 1 ;
return ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ;
}
VIRT_TEST_MAIN ( mymain )