vlc | branch: master | Hugo Beauzée-Luyssen <[email protected]> | Wed Dec 9 18:05:50 2015 +0100| [71001a361d398da3389b9fcddbf51345de0a6002] | committer: Hugo Beauzée-Luyssen
test: Provide tests for our strnstr implementation > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=71001a361d398da3389b9fcddbf51345de0a6002 --- compat/Makefile.am | 9 +++++++++ compat/test/strnstr.c | 50 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 59 insertions(+) diff --git a/compat/Makefile.am b/compat/Makefile.am index 253061d..e4b7a8e 100644 --- a/compat/Makefile.am +++ b/compat/Makefile.am @@ -9,3 +9,12 @@ CLEANFILES = dummy.c dummy.c: $(AM_V_at)rm -f dummy.c $(AM_V_GEN)echo '/* Automatically generated */' > dummy.c + + +check_PROGRAMS = \ + test_strnstr + +TESTS = $(check_PROGRAMS) + +test_strnstr_SOURCES = test/strnstr.c +test_strnstr_LDADD = libcompat.la diff --git a/compat/test/strnstr.c b/compat/test/strnstr.c new file mode 100644 index 0000000..8b60f1a --- /dev/null +++ b/compat/test/strnstr.c @@ -0,0 +1,50 @@ +/***************************************************************************** + * strnstr.c: Test for strnstr implementation API + ***************************************************************************** + * Copyright © 2015 VideoLAN & VLC authors + * + * Authors: Hugo Beauzée-Luyssen <[email protected]> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation; either version 2.1 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this program; if not, write to the Free Software Foundation, + * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. + *****************************************************************************/ + +#include "config.h" + +#include <stdbool.h> +#include <assert.h> +#include <string.h> + +const char* haystack = "Lorem ipsum dolor sit amet"; + +void test( const char* haystack, const char* needle, size_t len, bool res ); + +void test( const char* haystack, const char* needle, size_t len, bool res ) +{ + if ( len == 0 ) + len = strlen( haystack ); + char* str = strnstr( haystack, needle, len ); + assert( res == ( str != NULL ) ); +} + +int main(void) +{ + test( haystack, "Lorem", 0, true ); + test( haystack, "Sea Otters", 0, false ); + test( haystack, "", 0, true ); + test( haystack, "Lorem ipsum dolor sit amet, but bigger", 0, false ); + test( haystack, haystack, 0, true ); + test( haystack, "amet", 0, true ); + test( haystack, "dolor", 5, false ); +} _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
