summaryrefslogtreecommitdiff
path: root/xts5/Xopen/XKeysymToKeycode/TestL.c
diff options
context:
space:
mode:
Diffstat (limited to 'xts5/Xopen/XKeysymToKeycode/TestL.c')
-rw-r--r--xts5/Xopen/XKeysymToKeycode/TestL.c339
1 files changed, 339 insertions, 0 deletions
diff --git a/xts5/Xopen/XKeysymToKeycode/TestL.c b/xts5/Xopen/XKeysymToKeycode/TestL.c
new file mode 100644
index 00000000..a3f2cc05
--- /dev/null
+++ b/xts5/Xopen/XKeysymToKeycode/TestL.c
@@ -0,0 +1,339 @@
+/*
+Copyright (c) 2005 X.Org Foundation L.L.C.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
+of the Software, and to permit persons to whom the Software is furnished to do
+so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
+*/
+/*
+* $Header: /cvs/xtest/xtest/xts5/tset/Xopen/XKeysymToKeycode/TestL.c,v 1.2 2005-11-03 08:44:00 jmichael Exp $
+*
+* Project: VSW5
+*
+* File: xts5/tset/Xopen/XKeysymToKeycode/TestL.c
+*
+* Description:
+* Tests for XKeysymToKeycode()
+*
+* Modifications:
+* $Log: TestL.c,v $
+* Revision 1.2 2005-11-03 08:44:00 jmichael
+* clean up all vsw5 paths to use xts5 instead.
+*
+* Revision 1.1.1.2 2005/04/15 14:05:40 anderson
+* Reimport of the base with the legal name in the copyright fixed.
+*
+* Revision 8.0 1998/12/23 23:35:48 mar
+* Branch point for Release 5.0.2
+*
+* Revision 7.0 1998/10/30 22:58:28 mar
+* Branch point for Release 5.0.2b1
+*
+* Revision 6.0 1998/03/02 05:27:01 tbr
+* Branch point for Release 5.0.1
+*
+* Revision 5.0 1998/01/26 03:23:35 tbr
+* Branch point for Release 5.0.1b1
+*
+* Revision 4.1 1996/05/09 21:17:34 andy
+* Fixed X includes
+*
+* Revision 4.0 1995/12/15 09:14:16 tbr
+* Branch point for Release 5.0.0
+*
+* Revision 3.1 1995/12/15 01:17:38 andy
+* Prepare for GA Release
+*
+*/
+/*
+ * SCCS: @(#) TestL.c Rel 1.1 (11/28/91)
+ *
+ * UniSoft Ltd., London, England
+ *
+ * (C) Copyright 1991 X/Open Company Limited
+ *
+ * All rights reserved. No part of this source code may be reproduced,
+ * stored in a retrieval system, or transmitted, in any form or by any
+ * means, electronic, mechanical, photocopying, recording or otherwise,
+ * except as stated in the end-user licence agreement, without the prior
+ * permission of the copyright owners.
+ *
+ * X/Open and the 'X' symbol are trademarks of X/Open Company Limited in
+ * the UK and other countries.
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdlib.h>
+#include "xtest.h"
+#include "X11/Xlib.h"
+#include "X11/Xutil.h"
+#include "X11/Xresource.h"
+#include "tet_api.h"
+#include "xtestlib.h"
+#include "pixval.h"
+
+extern char *TestName;
+extern Display *Dsp;
+
+int minkc;
+int maxkc;
+int keysyms_per_keycode;
+
+static int
+test(symbol, str)
+KeySym symbol;
+char *str;
+{
+KeyCode kycd;
+int mod;
+
+ kycd = XKeysymToKeycode(Dsp, symbol);
+ if(kycd == 0) {
+ trace("XKeysymToKeycode() returned 0 for KeySym \"XK_%s\".", str);
+ return(1);
+ }
+
+ if(kycd > maxkc || kycd < minkc) {
+ report("XKeysymToKeycode() returned invalid keycode value %d for KeySym \"XK_%s\".", kycd, str);
+ return(0);
+ }
+
+ for(mod = 0; mod < keysyms_per_keycode; mod++) {
+ if( symbol == XKeycodeToKeysym(Dsp, kycd, mod)) {
+ trace("KeySym \"XK_%s\", keycode %d, mod %d",
+ str, kycd, mod);
+ return(1);
+ }
+ }
+
+ report("The keycode value %d for KeySym \"XK_%s\"", kycd, str);
+ report("never returns that KeySym when using XKeycodeToKeysym()");
+ return(0);
+}
+
+static void
+reporterr(s)
+char *s;
+{
+ report("Symbol XK_\"%s\" is not defined.", s);
+}
+#define XK_APL
+#include <X11/keysymdef.h>
+#undef XK_APL
+
+kysymtcdL()
+{
+int pass = 0, fail = 0;
+
+ XDisplayKeycodes(Dsp, &minkc, &maxkc);
+ XGetKeyboardMapping(Dsp, (KeyCode)minkc, 1, &keysyms_per_keycode);
+
+#ifdef XK_leftcaret
+ if(test(XK_leftcaret, "leftcaret") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("leftcaret");
+ FAIL;
+#endif
+
+#ifdef XK_rightcaret
+ if(test(XK_rightcaret, "rightcaret") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("rightcaret");
+ FAIL;
+#endif
+
+#ifdef XK_downcaret
+ if(test(XK_downcaret, "downcaret") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("downcaret");
+ FAIL;
+#endif
+
+#ifdef XK_upcaret
+ if(test(XK_upcaret, "upcaret") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("upcaret");
+ FAIL;
+#endif
+
+#ifdef XK_overbar
+ if(test(XK_overbar, "overbar") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("overbar");
+ FAIL;
+#endif
+
+#ifdef XK_downtack
+ if(test(XK_downtack, "downtack") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("downtack");
+ FAIL;
+#endif
+
+#ifdef XK_upshoe
+ if(test(XK_upshoe, "upshoe") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("upshoe");
+ FAIL;
+#endif
+
+#ifdef XK_downstile
+ if(test(XK_downstile, "downstile") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("downstile");
+ FAIL;
+#endif
+
+#ifdef XK_underbar
+ if(test(XK_underbar, "underbar") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("underbar");
+ FAIL;
+#endif
+
+#ifdef XK_jot
+ if(test(XK_jot, "jot") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("jot");
+ FAIL;
+#endif
+
+#ifdef XK_quad
+ if(test(XK_quad, "quad") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("quad");
+ FAIL;
+#endif
+
+#ifdef XK_uptack
+ if(test(XK_uptack, "uptack") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("uptack");
+ FAIL;
+#endif
+
+#ifdef XK_circle
+ if(test(XK_circle, "circle") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("circle");
+ FAIL;
+#endif
+
+#ifdef XK_upstile
+ if(test(XK_upstile, "upstile") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("upstile");
+ FAIL;
+#endif
+
+#ifdef XK_downshoe
+ if(test(XK_downshoe, "downshoe") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("downshoe");
+ FAIL;
+#endif
+
+#ifdef XK_rightshoe
+ if(test(XK_rightshoe, "rightshoe") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("rightshoe");
+ FAIL;
+#endif
+
+#ifdef XK_leftshoe
+ if(test(XK_leftshoe, "leftshoe") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("leftshoe");
+ FAIL;
+#endif
+
+#ifdef XK_lefttack
+ if(test(XK_lefttack, "lefttack") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("lefttack");
+ FAIL;
+#endif
+
+#ifdef XK_righttack
+ if(test(XK_righttack, "righttack") == 1)
+ CHECK;
+ else
+ FAIL;
+#else
+ reporterr("righttack");
+ FAIL;
+#endif
+
+ CHECKPASS(19);
+}