On Mon, 2011-03-21 at 12:08 +1000, Peter Hutterer wrote: > Also adds a bunch of fake symbols so we can link. Note that any of these > symbols will return false, 0 or whatever the zero value for the symbol is. > Care must be taken when writing test that this doesn't screw up the test. > > Tests are always built but only run on make check.
Even when configuring with --disable-unit-tests? An interesting choice. The default is "auto" so it would always get build. > > Signed-off-by: Peter Hutterer <[email protected]> > --- > Makefile.am | 2 +- > configure.ac | 3 + > test/Makefile.am | 14 ++ > test/eventcomm-test.c | 37 ++++ > test/fake-symbols.c | 446 > +++++++++++++++++++++++++++++++++++++++++++++++++ > test/fake-symbols.h | 177 +++++++++++++++++++ > 6 files changed, 678 insertions(+), 1 deletions(-) > create mode 100644 test/Makefile.am > create mode 100644 test/eventcomm-test.c > create mode 100644 test/fake-symbols.c > create mode 100644 test/fake-symbols.h Missing .gitignore new file with evencomm-test > > 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 fd2d0c3..dc47c3e 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -61,6 +61,8 @@ AC_SUBST([sdkdir]) > DRIVER_NAME=synaptics > AC_SUBST([DRIVER_NAME]) > > +XORG_ENABLE_UNIT_TESTS I typically put these together following XORG_DEFAULT_OPTIONS. > + > # > ----------------------------------------------------------------------------- > # Configuration options > # > ----------------------------------------------------------------------------- > @@ -149,6 +151,7 @@ AC_CONFIG_FILES([Makefile > tools/Makefile > conf/Makefile > include/Makefile > + test/Makefile > xorg-synaptics.pc]) > AC_OUTPUT > > diff --git a/test/Makefile.am b/test/Makefile.am > new file mode 100644 > index 0000000..aaa160d > --- /dev/null > +++ b/test/Makefile.am > @@ -0,0 +1,14 @@ > +INCLUDES = -I$(top_srcdir)/src Deprecated. Use AM_CPPFLAGS. > +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 > -- > 1.7.4 > > _______________________________________________ > [email protected]: X.Org development > Archives: http://lists.x.org/archives/xorg-devel > Info: http://lists.x.org/mailman/listinfo/xorg-devel
signature.asc
Description: This is a digitally signed message part
_______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
