New tests should use gtest. Other tests can't be made to produce XML output that can be processed by Jenkins.
On 05/21/2017 01:49 PM, Thomas Helland wrote: > More tests could probably be added, but this should cover > concatenation, resizing, clearing, formatted printing, > and checking the length, so it should be quite complete. > --- > configure.ac | 1 + > src/util/Makefile.am | 3 +- > src/util/tests/string_buffer/Makefile.am | 34 ++++++++++ > src/util/tests/string_buffer/append_and_print.c | 82 > +++++++++++++++++++++++++ > 4 files changed, 119 insertions(+), 1 deletion(-) > create mode 100644 src/util/tests/string_buffer/Makefile.am > create mode 100644 src/util/tests/string_buffer/append_and_print.c > > diff --git a/configure.ac b/configure.ac > index 06883a9667..0d44d99e76 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -2833,6 +2833,7 @@ AC_CONFIG_FILES([Makefile > src/mesa/main/tests/Makefile > src/util/Makefile > src/util/tests/hash_table/Makefile > + src/util/tests/string_buffer/Makefile > src/vulkan/Makefile]) > > AC_OUTPUT > diff --git a/src/util/Makefile.am b/src/util/Makefile.am > index f094eb4a0d..c730fb48d3 100644 > --- a/src/util/Makefile.am > +++ b/src/util/Makefile.am > @@ -19,7 +19,8 @@ > # FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER > DEALINGS > # IN THE SOFTWARE. > > -SUBDIRS = . tests/hash_table > +SUBDIRS = . tests/hash_table \ > + . tests/string_buffer > > include Makefile.sources > > diff --git a/src/util/tests/string_buffer/Makefile.am > b/src/util/tests/string_buffer/Makefile.am > new file mode 100644 > index 0000000000..60039a90d2 > --- /dev/null > +++ b/src/util/tests/string_buffer/Makefile.am > @@ -0,0 +1,34 @@ > +# Copyright © 2009 Intel Corporation > +# > +# 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 > +# on the rights to use, copy, modify, merge, publish, distribute, sub > +# license, 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 NON-INFRINGEMENT. IN NO EVENT SHALL > +# ADAM JACKSON 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. > + > +AM_CPPFLAGS = \ > + -I$(top_srcdir)/include \ > + -I$(top_srcdir)/src/util \ > + $(DEFINES) > + > +LDADD = \ > + $(top_builddir)/src/util/libmesautil.la \ > + $(PTHREAD_LIBS) \ > + $(DLOPEN_LIBS) > + > +TESTS = append_and_print \ > + $() > + > +check_PROGRAMS = $(TESTS) > diff --git a/src/util/tests/string_buffer/append_and_print.c > b/src/util/tests/string_buffer/append_and_print.c > new file mode 100644 > index 0000000000..bbc2727877 > --- /dev/null > +++ b/src/util/tests/string_buffer/append_and_print.c > @@ -0,0 +1,82 @@ > +/* > + * Copyright © 2017 Thomas Helland > + * > + * 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. > + * > + */ > + > +#include <stdlib.h> > +#include <stdio.h> > +#include <string.h> > +#include <assert.h> > +#include "string_buffer.h" > + > +int > +main(int argc, char **argv) > +{ > + (void) argc; > + (void) argv; > + > + struct _mesa_string_buffer *buf; > + char *str1 = "test1"; > + char *str2 = "test2"; > + char *str3 = "test1test2"; > + char str4[20]; > + > + buf = _mesa_string_buffer_create(NULL, 6); > + > + /* The string terminator needs one byte, so there should be five left */ > + assert(_mesa_string_buffer_space_left(buf) == 5); > + > + _mesa_string_buffer_append(buf, str1); > + > + /* The string should now be full */ > + assert(_mesa_string_buffer_space_left(buf) == 0); > + > + /* The content should be equal */ > + assert(strcmp(buf->buf, str1) == 0); > + > + /* Add more, so that the string is resized */ > + _mesa_string_buffer_append(buf, str2); > + > + /* The size of the buffer should have been doubled. > + * We have 5 + 5 + 1 characters, so there should be one left. > + */ > + assert(_mesa_string_buffer_space_left(buf) == 1); > + > + /* The string should now be equal to str3 */ > + assert(strcmp(buf->buf, str3) == 0); > + > + /* Compile a string with some formatting */ > + sprintf(str4, "Testing formatting %d, %f", 100, 1.0); > + > + /* Clear the string buffer first */ > + _mesa_string_buffer_clear(buf); > + > + /* Then test printing some formatted text */ > + _mesa_string_buffer_printf(buf, "Testing formatting %d, %f", 100, 1.0); > + > + /* The string should now be equal to str3 */ > + assert(strcmp(buf->buf, &str4) == 0); > + > + _mesa_string_buffer_destroy(buf); > + > + return 0; > +} > _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev