diff options
Diffstat (limited to 'xorg-server/test')
-rw-r--r-- | xorg-server/test/Makefile.am | 5 | ||||
-rw-r--r-- | xorg-server/test/string.c | 69 | ||||
-rw-r--r-- | xorg-server/test/xi2/Makefile.am | 10 |
3 files changed, 81 insertions, 3 deletions
diff --git a/xorg-server/test/Makefile.am b/xorg-server/test/Makefile.am index 689dd7f60..62c398c18 100644 --- a/xorg-server/test/Makefile.am +++ b/xorg-server/test/Makefile.am @@ -1,10 +1,10 @@ if ENABLE_UNIT_TESTS -if HAVE_LD_WRAP SUBDIRS= . xi2 -noinst_PROGRAMS = xkb input xtest list misc fixes xfree86 +noinst_PROGRAMS = xkb input xtest list misc fixes xfree86 string check_LTLIBRARIES = libxservertest.la TESTS=$(noinst_PROGRAMS) +TESTS_ENVIRONMENT = $(XORG_MALLOC_DEBUG_ENV) AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ INCLUDES = $(XORG_INCS) -I$(top_srcdir)/hw/xfree86/parser \ @@ -43,4 +43,3 @@ libxservertest_la_LIBADD = \ @XORG_LIBS@ libxservertest_la_DEPENDENCIES = $(libxservertest_la_LIBADD) endif -endif diff --git a/xorg-server/test/string.c b/xorg-server/test/string.c new file mode 100644 index 000000000..e3a5adb6d --- /dev/null +++ b/xorg-server/test/string.c @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved. + * + * 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 (including the next + * paragraph) 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. + */ + +/** + * Tests for fallback implementations of string handling routines + * provided in os/ subdirectory for some platforms. + */ + +#ifdef HAVE_DIX_CONFIG_H +#include <dix-config.h> +#endif + +#include <assert.h> +#include "os.h" + +/* Ensure we're testing our functions, even on platforms with libc versions */ +#include <string.h> +#undef strndup +#define strndup my_strndup +char * +strndup(const char *str, size_t n); + +#include "../os/strndup.c" + +static void strndup_checks(void) +{ + const char *sample="0123456789abcdef"; + char *allofit; + + char *firsthalf = strndup(sample, 8); + char *secondhalf = strndup(sample + 8, 8); + + assert(strcmp(firsthalf, "01234567") == 0); + assert(strcmp(secondhalf, "89abcdef") == 0); + + free(firsthalf); + free(secondhalf); + + allofit = strndup(sample, 20); + assert(strcmp(allofit, sample) == 0); + free(allofit); +} + +int main(int argc, char** argv) +{ + strndup_checks(); + + return 0; +} diff --git a/xorg-server/test/xi2/Makefile.am b/xorg-server/test/xi2/Makefile.am index b15d8ba02..c6e93e78f 100644 --- a/xorg-server/test/xi2/Makefile.am +++ b/xorg-server/test/xi2/Makefile.am @@ -13,6 +13,7 @@ noinst_PROGRAMS = \ protocol-eventconvert TESTS=$(noinst_PROGRAMS) +TESTS_ENVIRONMENT = $(XORG_MALLOC_DEBUG_ENV) AM_CFLAGS = $(DIX_CFLAGS) @XORG_CFLAGS@ INCLUDES = @XORG_INCS@ @@ -53,5 +54,14 @@ protocol_xigetclientpointer_SOURCES=$(COMMON_SOURCES) protocol-xigetclientpointe protocol_xiquerypointer_SOURCES=$(COMMON_SOURCES) protocol-xiquerypointer.c protocol_xipassivegrabdevice_SOURCES=$(COMMON_SOURCES) protocol-xipassivegrabdevice.c protocol_xiwarppointer_SOURCES=$(COMMON_SOURCES) protocol-xiwarppointer.c +else +# Print that xi2-tests were skipped (exit code 77 for automake test harness) +TESTS = xi2-tests +CLEANFILES = $(TESTS) + +xi2-tests: + @echo 'echo "ld -wrap support required for xi2 unit tests, skipping"' > $@ + @echo 'exit 77' >> $@ + $(AM_V_GEN)chmod +x $@ endif endif |