summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.am2
-rw-r--r--configure.ac2
-rw-r--r--test/.gitignore6
-rw-r--r--test/Makefile.am14
-rw-r--r--test/eventcomm-test.c37
-rw-r--r--test/fake-symbols.c446
-rw-r--r--test/fake-symbols.h177
7 files changed, 683 insertions, 1 deletions
diff --git a/Makefile.am b/Makefile.am
index 538bbc5..edd28a6 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -18,7 +18,7 @@
# 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.
-SUBDIRS = include src man tools conf
+SUBDIRS = include src man tools conf test
MAINTAINERCLEANFILES = ChangeLog INSTALL
pkgconfigdir = $(libdir)/pkgconfig
diff --git a/configure.ac b/configure.ac
index 9a7ba59..cda82fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -43,6 +43,7 @@ m4_ifndef([XORG_MACROS_VERSION],
[m4_fatal([must install xorg-macros 1.13 or later before running autoconf/autogen])])
XORG_MACROS_VERSION(1.13)
XORG_DEFAULT_OPTIONS
+XORG_ENABLE_UNIT_TESTS
# Checks for libraries.
AC_CHECK_LIB([m], [rint])
@@ -149,6 +150,7 @@ AC_CONFIG_FILES([Makefile
tools/Makefile
conf/Makefile
include/Makefile
+ test/Makefile
xorg-synaptics.pc])
AC_OUTPUT
diff --git a/test/.gitignore b/test/.gitignore
new file mode 100644
index 0000000..d81fece
--- /dev/null
+++ b/test/.gitignore
@@ -0,0 +1,6 @@
+# Add & Override patterns for xf86-input-synaptics
+#
+# Edit the following section as needed
+# For example, !report.pc overrides *.pc. See 'man gitignore'
+
+eventcomm-test
diff --git a/test/Makefile.am b/test/Makefile.am
new file mode 100644
index 0000000..763ed54
--- /dev/null
+++ b/test/Makefile.am
@@ -0,0 +1,14 @@
+AM_CPPFLAGS = -I$(top_srcdir)/src
+AM_CFLAGS = $(XORG_CFLAGS) $(CWARNFLAGS)
+fake_syms = fake-symbols.c fake-symbols.h
+
+if BUILD_EVENTCOMM
+noinst_PROGRAMS = eventcomm-test
+
+eventcomm_test_SOURCES = eventcomm-test.c\
+ $(fake_syms)
+endif
+
+if ENABLE_UNIT_TESTS
+TESTS = $(noinst_PROGRAMS)
+endif
diff --git a/test/eventcomm-test.c b/test/eventcomm-test.c
new file mode 100644
index 0000000..ac24640
--- /dev/null
+++ b/test/eventcomm-test.c
@@ -0,0 +1,37 @@
+/*
+ * Copyright © 2011 Red Hat, Inc.
+ *
+ * Permission to use, copy, modify, distribute, and sell this software
+ * and its documentation for any purpose is hereby granted without
+ * fee, provided that the above copyright notice appear in all copies
+ * and that both that copyright notice and this permission notice
+ * appear in supporting documentation, and that the name of Red Hat
+ * not be used in advertising or publicity pertaining to distribution
+ * of the software without specific, written prior permission. Red
+ * Hat makes no representations about the suitability of this software
+ * for any purpose. It is provided "as is" without express or implied
+ * warranty.
+ *
+ * THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN
+ * NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+ * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
+ * OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
+ * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
+ * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ *
+ * Authors:
+ * Peter Hutterer
+ */
+
+#if HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <stdio.h>
+#include <assert.h>
+
+int main (int argc, char **argv)
+{
+ return 0;
+}
diff --git a/test/fake-symbols.c b/test/fake-symbols.c
new file mode 100644
index 0000000..9657bab
--- /dev/null
+++ b/test/fake-symbols.c
@@ -0,0 +1,446 @@
+#include "fake-symbols.h"
+
+_X_EXPORT
+int xf86ReadSerial (int fd, void *buf, int count)
+{
+ return 0;
+}
+
+
+_X_EXPORT int
+xf86WriteSerial (int fd, const void *buf, int count)
+{
+ return 0;
+}
+
+_X_EXPORT int
+xf86CloseSerial (int fd)
+{
+ return 0;
+}
+
+_X_EXPORT int
+xf86WaitForInput (int fd, int timeout)
+{
+ return 0;
+}
+
+_X_EXPORT int
+xf86OpenSerial (pointer options)
+{
+ return 0;
+}
+
+_X_EXPORT int
+xf86SetSerialSpeed (int fd, int speed)
+{
+ return 0;
+}
+
+_X_EXPORT pointer
+xf86ReplaceIntOption(pointer optlist, const char *name, const int val)
+{
+ return NULL;
+}
+
+_X_EXPORT char *
+xf86SetStrOption(pointer optlist, const char *name, char *deflt)
+{
+ return NULL;
+}
+
+_X_EXPORT int
+xf86SetBoolOption(pointer optlist, const char *name, int deflt)
+{
+ return 0;
+}
+
+_X_EXPORT pointer
+xf86AddNewOption(pointer head, const char *name, const char *val)
+{
+ return NULL;
+}
+_X_EXPORT char *
+xf86FindOptionValue(pointer options, const char *name)
+{
+ return NULL;
+}
+
+_X_EXPORT char *
+xf86OptionName(pointer opt)
+{
+ return NULL;
+}
+
+_X_EXPORT char *
+xf86OptionValue(pointer opt)
+{
+ return NULL;
+}
+
+_X_EXPORT int
+xf86NameCmp(const char *s1, const char *s2)
+{
+ return 0;
+}
+
+_X_EXPORT char *
+xf86CheckStrOption(pointer optlist, const char *name, char *deflt)
+{
+ return NULL;
+}
+
+_X_EXPORT void
+xf86AddEnabledDevice(InputInfoPtr pInfo)
+{
+ return;
+}
+
+_X_EXPORT void
+xf86RemoveEnabledDevice(InputInfoPtr pInfo)
+{
+ return;
+}
+
+_X_EXPORT Atom
+XIGetKnownProperty(char *name)
+{
+ return None;
+}
+
+_X_EXPORT void
+xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags)
+{
+ return;
+}
+
+_X_EXPORT int
+xf86ScaleAxis(int Cx,
+ int to_max,
+ int to_min,
+ int from_max,
+ int from_min )
+{
+ int X;
+ int64_t to_width = to_max - to_min;
+ int64_t from_width = from_max - from_min;
+
+ if (from_width) {
+ X = (int)(((to_width * (Cx - from_min)) / from_width) + to_min);
+ }
+ else {
+ X = 0;
+ /*ErrorF ("Divide by Zero in xf86ScaleAxis\n");*/
+ }
+
+ if (X > to_max)
+ X = to_max;
+ if (X < to_min)
+ X = to_min;
+
+ return X;
+}
+
+
+_X_EXPORT void
+DeleteInputDeviceRequest(DeviceIntPtr pDev)
+{
+ return;
+}
+
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+_X_EXPORT void
+FreeInputAttributes(InputAttributes *attrs)
+{
+ return;
+}
+#endif
+
+_X_EXPORT void
+xf86PostButtonEvent(DeviceIntPtr device,
+ int is_absolute,
+ int button,
+ int is_down,
+ int first_valuator,
+ int num_valuators,
+ ...)
+{
+ return;
+}
+
+_X_EXPORT int
+Xasprintf(char ** ret, const char * format, ...)
+{
+ return 0;
+}
+
+
+_X_EXPORT int
+XISetDevicePropertyDeletable(DeviceIntPtr dev, Atom property, Bool deletable)
+{
+ return 0;
+}
+
+
+_X_EXPORT InputInfoPtr
+xf86FirstLocalDevice(void)
+{
+ return NULL;
+}
+
+
+_X_EXPORT void
+xf86DeleteInput(InputInfoPtr pInp, int flags)
+{
+ return;
+}
+
+_X_EXPORT pointer
+xf86OptionListDuplicate(pointer options)
+{
+ return NULL;
+}
+
+_X_EXPORT Bool
+InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons, Atom* labels,
+ CARD8 *map)
+{
+ return FALSE;
+}
+
+_X_EXPORT void
+InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, Atom label, int minval, int maxval,
+ int resolution, int min_res, int max_res, int mode)
+{
+ return;
+}
+
+_X_EXPORT void
+xf86PostKeyboardEvent(DeviceIntPtr device,
+ unsigned int key_code,
+ int is_down)
+{
+ return;
+}
+
+_X_EXPORT int
+xf86SetIntOption(pointer optlist, const char *name, int deflt)
+{
+ return 0;
+}
+
+_X_EXPORT void
+xf86PostButtonEventP(DeviceIntPtr device,
+ int is_absolute,
+ int button,
+ int is_down,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators)
+{
+ return;
+}
+
+_X_EXPORT Bool
+InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc)
+{
+ return FALSE;
+}
+
+_X_EXPORT int
+XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
+ int format, int mode, unsigned long len,
+ pointer value, Bool sendevent)
+{
+ return 0;
+}
+
+_X_EXPORT CARD32
+GetTimeInMillis (void)
+{
+ return 0;
+}
+
+
+_X_EXPORT int
+NewInputDeviceRequest (InputOption *options,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+ InputAttributes *attrs,
+#endif
+ DeviceIntPtr *pdev)
+{
+ return 0;
+}
+
+
+_X_EXPORT Bool
+InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc)
+{
+ return FALSE;
+}
+
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+_X_EXPORT InputAttributes*
+DuplicateInputAttributes(InputAttributes *attrs)
+{
+ return NULL;
+}
+#endif
+
+_X_EXPORT int
+ValidAtom(Atom atom)
+{
+ return None;
+}
+
+_X_EXPORT Bool
+InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
+ BellProcPtr bell_func, KbdCtrlProcPtr ctrl_func)
+{
+ return FALSE;
+}
+
+_X_EXPORT long
+XIRegisterPropertyHandler(DeviceIntPtr dev,
+ int (*SetProperty) (DeviceIntPtr dev,
+ Atom property,
+ XIPropertyValuePtr prop,
+ BOOL checkonly),
+ int (*GetProperty) (DeviceIntPtr dev,
+ Atom property),
+ int (*DeleteProperty) (DeviceIntPtr dev,
+ Atom property))
+{
+ return 0;
+}
+
+_X_EXPORT int
+InitProximityClassDeviceStruct(DeviceIntPtr dev)
+{
+ return 0;
+}
+
+
+_X_EXPORT void
+xf86Msg(MessageType type, const char *format, ...)
+{
+ return;
+}
+
+_X_EXPORT void
+xf86MsgVerb(MessageType type, int verb, const char *format, ...)
+{
+ return;
+}
+
+
+_X_EXPORT void
+xf86PostMotionEventP(DeviceIntPtr device,
+ int is_absolute,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators)
+{
+ return;
+}
+
+
+_X_EXPORT Bool
+InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
+ int numMotionEvents, int mode)
+{
+ return FALSE;
+}
+
+
+_X_EXPORT pointer
+xf86ReplaceStrOption(pointer optlist, const char *name, const char* val)
+{
+ return NULL;
+}
+
+
+_X_EXPORT pointer
+xf86NextOption(pointer list)
+{
+ return NULL;
+}
+
+
+_X_EXPORT int
+XIGetDeviceProperty (DeviceIntPtr dev, Atom property, XIPropertyValuePtr *value)
+{
+ return 0;
+}
+
+
+_X_EXPORT Atom
+MakeAtom(const char *string, unsigned len, Bool makeit)
+{
+ return None;
+}
+
+
+_X_EXPORT int
+GetMotionHistorySize(void)
+{
+ return 0;
+}
+
+
+_X_EXPORT void
+xf86PostProximityEventP(DeviceIntPtr device,
+ int is_in,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators)
+{
+ return;
+}
+
+
+_X_EXPORT Bool
+InitFocusClassDeviceStruct(DeviceIntPtr dev)
+{
+ return FALSE;
+}
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+void
+xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer list)
+{
+}
+
+void
+xf86CollectInputOptions(InputInfoPtr pInfo,
+ const char **defaultOpts,
+ pointer extraOpts)
+{
+}
+
+InputInfoPtr xf86AllocateInput(InputDriverPtr drv, int flags)
+{
+ return NULL;
+}
+
+#endif
+
+ClientPtr serverClient;
+
+Bool QueueWorkProc (
+ Bool (*function)(ClientPtr /* pClient */, pointer /* closure */),
+ ClientPtr client, pointer closure)
+{
+ return FALSE;
+}
diff --git a/test/fake-symbols.h b/test/fake-symbols.h
new file mode 100644
index 0000000..cc62679
--- /dev/null
+++ b/test/fake-symbols.h
@@ -0,0 +1,177 @@
+#include <xorg-server.h>
+#include <xf86Xinput.h>
+
+extern int xf86ReadSerial (int fd, void *buf, int count);
+extern int xf86WriteSerial (int fd, const void *buf, int count);
+extern int xf86CloseSerial (int fd);
+extern int xf86WaitForInput (int fd, int timeout);
+extern int xf86OpenSerial (pointer options);
+extern int xf86SetSerialSpeed (int fd, int speed);
+
+extern pointer xf86ReplaceIntOption(pointer optlist, const char *name, const int val);
+extern pointer xf86AddNewOption(pointer head, const char *name, const char *val);
+extern char* xf86OptionName(pointer opt);
+extern char* xf86FindOptionValue(pointer options, const char *name);
+extern int xf86NameCmp(const char *s1, const char *s2);
+extern char* xf86CheckStrOption(pointer optlist, const char *name, char *deflt);
+
+
+extern char * xf86SetStrOption(pointer optlist, const char *name, char *deflt);
+extern int xf86SetBoolOption(pointer optlist, const char *name, int deflt);
+extern pointer xf86AddNewOption(pointer head, const char *name, const char *val);
+extern char* xf86FindOptionValue(pointer options, const char *name);
+extern char* xf86OptionName(pointer opt);
+extern char *xf86OptionValue(pointer opt);
+extern int xf86NameCmp(const char *s1, const char *s2);
+extern char * xf86CheckStrOption(pointer optlist, const char *name, char *deflt);
+extern void xf86AddEnabledDevice(InputInfoPtr pInfo);
+extern void xf86RemoveEnabledDevice(InputInfoPtr pInfo);
+extern Atom XIGetKnownProperty(char *name);
+extern void xf86AddInputDriver(InputDriverPtr driver, pointer module, int flags);
+extern int
+xf86ScaleAxis(int Cx,
+ int to_max,
+ int to_min,
+ int from_max,
+ int from_min );
+
+extern void DeleteInputDeviceRequest(DeviceIntPtr pDev);
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+extern void FreeInputAttributes(InputAttributes *attrs);
+#endif
+extern void
+xf86PostButtonEvent(DeviceIntPtr device,
+ int is_absolute,
+ int button,
+ int is_down,
+ int first_valuator,
+ int num_valuators,
+ ...);
+extern int Xasprintf(char ** ret, const char *format, ...);
+extern int
+XISetDevicePropertyDeletable(DeviceIntPtr dev, Atom property, Bool deletable);
+
+extern InputInfoPtr xf86FirstLocalDevice(void);
+extern void xf86DeleteInput(InputInfoPtr pInp, int flags);
+extern pointer xf86OptionListDuplicate(pointer options);
+extern Bool
+InitButtonClassDeviceStruct(DeviceIntPtr dev, int numButtons, Atom* labels,
+ CARD8 *map);
+extern void
+InitValuatorAxisStruct(DeviceIntPtr dev, int axnum, Atom label, int minval, int maxval,
+ int resolution, int min_res, int max_res, int mode);
+extern void
+xf86PostKeyboardEvent(DeviceIntPtr device,
+ unsigned int key_code,
+ int is_down);
+extern int
+xf86SetIntOption(pointer optlist, const char *name, int deflt);
+extern void
+xf86PostButtonEventP(DeviceIntPtr device,
+ int is_absolute,
+ int button,
+ int is_down,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators);
+extern Bool
+InitPtrFeedbackClassDeviceStruct(DeviceIntPtr dev, PtrCtrlProcPtr controlProc);
+
+extern int
+XIChangeDeviceProperty (DeviceIntPtr dev, Atom property, Atom type,
+ int format, int mode, unsigned long len,
+ pointer value, Bool sendevent);
+extern CARD32 GetTimeInMillis (void);
+
+extern int
+NewInputDeviceRequest (InputOption *options,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+ InputAttributes *attrs,
+#endif
+ DeviceIntPtr *pdev);
+
+extern Bool
+InitLedFeedbackClassDeviceStruct (DeviceIntPtr dev, LedCtrlProcPtr controlProc);
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 11
+extern InputAttributes* DuplicateInputAttributes(InputAttributes *attrs);
+#endif
+extern int ValidAtom(Atom atom);
+extern Bool
+InitKeyboardDeviceStruct(DeviceIntPtr dev, XkbRMLVOSet *rmlvo,
+ BellProcPtr bell_func, KbdCtrlProcPtr ctrl_func);
+extern long
+XIRegisterPropertyHandler(DeviceIntPtr dev,
+ int (*SetProperty) (DeviceIntPtr dev,
+ Atom property,
+ XIPropertyValuePtr prop,
+ BOOL checkonly),
+ int (*GetProperty) (DeviceIntPtr dev,
+ Atom property),
+ int (*DeleteProperty) (DeviceIntPtr dev,
+ Atom property));
+extern int InitProximityClassDeviceStruct(DeviceIntPtr dev);
+extern void xf86Msg(MessageType type, const char *format, ...);
+extern void xf86MsgVerb(MessageType type, int verb, const char *format, ...);
+
+extern void
+xf86PostMotionEventP(DeviceIntPtr device,
+ int is_absolute,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators);
+
+extern Bool
+InitValuatorClassDeviceStruct(DeviceIntPtr dev, int numAxes, Atom *labels,
+ int numMotionEvents, int mode);
+
+extern pointer
+xf86ReplaceStrOption(pointer optlist, const char *name, const char* val);
+
+extern pointer xf86NextOption(pointer list);
+
+extern int
+XIGetDeviceProperty (DeviceIntPtr dev, Atom property, XIPropertyValuePtr *value);
+
+extern Atom MakeAtom(const char *string, unsigned len, Bool makeit);
+
+extern int GetMotionHistorySize(void);
+
+extern void
+xf86PostProximityEventP(DeviceIntPtr device,
+ int is_in,
+ int first_valuator,
+ int num_valuators,
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) >= 12
+ const
+#endif
+ int *valuators);
+
+extern Bool InitFocusClassDeviceStruct(DeviceIntPtr dev);
+
+
+#if GET_ABI_MAJOR(ABI_XINPUT_VERSION) < 12
+extern void
+xf86ProcessCommonOptions(InputInfoPtr pInfo, pointer list);
+
+extern void
+xf86CollectInputOptions(InputInfoPtr pInfo,
+ const char **defaultOpts,
+ pointer extraOpts);
+
+extern InputInfoPtr
+xf86AllocateInput(InputDriverPtr drv, int flags);
+
+
+extern ClientPtr serverClient;
+
+extern Bool QueueWorkProc (
+ Bool (*function)(ClientPtr /* pClient */, pointer /* closure */),
+ ClientPtr client, pointer closure);
+#endif