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/>.
*/
# include <config.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
2019-10-14 15:45:03 +03:00
static int testKeycodeMapping ( const void * data G_GNUC_UNUSED )
2013-04-05 20:49:27 +04:00
{
int got ;
2017-11-03 15:09:47 +03:00
# define TRANSLATE(from, to, val, want) \
do { \
if ( ( got = virKeycodeValueTranslate ( VIR_KEYCODE_SET_ # # from , \
VIR_KEYCODE_SET_ # # to , \
val ) ) ! = want ) { \
2013-04-05 20:49:27 +04:00
fprintf ( stderr , " Translating %d from %s to %s, got %d want %d \n " , \
2017-11-03 15:09:47 +03:00
val , # from , # to , got , want ) ; \
2019-11-12 23:46:29 +03:00
return - 1 ; \
2017-11-03 15:09:47 +03:00
} \
2013-04-05 20:49:27 +04:00
} while ( 0 )
TRANSLATE ( LINUX , LINUX , 111 , 111 ) ;
TRANSLATE ( LINUX , USB , 111 , 76 ) ;
2018-03-12 14:10:47 +03:00
TRANSLATE ( LINUX , QNUM , 88 , 88 ) ;
TRANSLATE ( LINUX , QNUM , 160 , 163 ) ;
2017-08-07 16:38:28 +03:00
TRANSLATE ( ATSET2 , ATSET3 , 131 , 55 ) ;
2017-03-02 13:46:53 +03:00
TRANSLATE ( OSX , WIN32 , 90 , 131 ) ;
2017-08-07 16:38:28 +03:00
TRANSLATE ( OSX , ATSET1 , 90 , 90 ) ;
2017-03-02 13:46:53 +03:00
TRANSLATE ( OSX , ATSET1 , 3200 , - 1 ) ;
2013-04-05 20:49:27 +04:00
# undef TRANSLATE
2019-11-12 23:46:29 +03:00
return 0 ;
2013-04-05 20:49:27 +04:00
}
2019-10-14 15:45:03 +03:00
static int testKeycodeStrings ( const void * data G_GNUC_UNUSED )
2013-04-05 20:49:27 +04:00
{
int got ;
2017-11-03 15:09:47 +03:00
# 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 ) ; \
2019-11-12 23:46:29 +03:00
return - 1 ; \
2017-11-03 15:09:47 +03:00
} \
2013-04-05 20:49:27 +04:00
} while ( 0 )
TRANSLATE ( LINUX , " KEY_DELETE " , 111 ) ;
2017-03-02 13:46:53 +03:00
TRANSLATE ( LINUX , " KEY_RFKILL " , 524 ) ;
2019-03-16 21:20:32 +03:00
TRANSLATE ( LINUX , " KEY_WIBBLE " ,
- 1 ) ;
2013-04-05 20:49:27 +04:00
TRANSLATE ( OSX , " Function " , 0x3f ) ;
TRANSLATE ( WIN32 , " VK_UP " , 0x26 ) ;
# undef TRANSLATE
2019-11-12 23:46:29 +03:00
return 0 ;
2013-04-05 20:49:27 +04:00
}
static int
mymain ( void )
{
int ret = 0 ;
2016-05-26 18:01:50 +03:00
if ( virTestRun ( " Keycode mapping " , testKeycodeMapping , NULL ) < 0 )
2013-04-05 20:49:27 +04:00
ret = - 1 ;
2016-05-26 18:01:50 +03:00
if ( virTestRun ( " Keycode strings " , testKeycodeStrings , NULL ) < 0 )
2013-04-05 20:49:27 +04:00
ret = - 1 ;
return ret = = 0 ? EXIT_SUCCESS : EXIT_FAILURE ;
}
2017-03-29 17:45:42 +03:00
VIR_TEST_MAIN ( mymain )