[vlc-commits] commit: Test case for vlc_strcasestr() ( Rémi Denis-Courmont )
git at videolan.org
git at videolan.org
Fri Oct 8 20:44:23 CEST 2010
vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Fri Oct 8 21:40:52 2010 +0300| [c862c0fcf254fa87a8e67bfbefccd4227f242467] | committer: Rémi Denis-Courmont
Test case for vlc_strcasestr()
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=c862c0fcf254fa87a8e67bfbefccd4227f242467
---
src/test/utf8.c | 49 ++++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 48 insertions(+), 1 deletions(-)
diff --git a/src/test/utf8.c b/src/test/utf8.c
index f34a953..aa178a8 100644
--- a/src/test/utf8.c
+++ b/src/test/utf8.c
@@ -24,11 +24,12 @@
#endif
#include <vlc_common.h>
-#include "vlc_charset.h"
+#include <vlc_charset.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>
+#include <locale.h>
static void test (const char *in, const char *out)
{
@@ -68,8 +69,40 @@ static void test (const char *in, const char *out)
free (str);
}
+static void test_strcasestr (const char *h, const char *n, size_t offset)
+{
+ printf ("\"%s\" should %sbe found in \"%s\"...\n", n,
+ (offset != -1) ? "" : "not ", h);
+
+ const char *ret = vlc_strcasestr (h, n);
+ if (offset == -1)
+ {
+ if (ret != NULL)
+ {
+ printf ("ERROR: got \"%s\"\n", ret);
+ exit (10);
+ }
+ }
+ else
+ {
+ if (ret == NULL)
+ {
+ printf ("ERROR: not found\n");
+ exit (11);
+ }
+ if ((ret - h) != offset)
+ {
+ printf ("ERROR: got \"%s\" instead of \"%s\"\n",
+ ret, h + offset);
+ exit (12);
+ }
+ }
+}
+
+
int main (void)
{
+ setlocale (LC_CTYPE, "fr_FR");
(void)setvbuf (stdout, NULL, _IONBF, 0);
test ("", "");
@@ -85,5 +118,19 @@ int main (void)
test ("\xC1\x94\xC3\xa9l\xC3\xA9vision", "??élévision"); /* overlong */
test ("Hel\xF0\x83\x85\x87lo", "Hel????lo"); /* more overlong */
+
+ test_strcasestr ("", "", 0);
+ test_strcasestr ("", "a", -1);
+ test_strcasestr ("a", "", 0);
+ test_strcasestr ("heLLo", "l", 2);
+ test_strcasestr ("heLLo", "lo", 3);
+ test_strcasestr ("heLLo", "llo", 2);
+ test_strcasestr ("heLLo", "la", -1);
+ test_strcasestr ("heLLo", "oa", -1);
+ test_strcasestr ("Télé", "é", 1);
+ test_strcasestr ("Télé", "É", 1);
+ test_strcasestr ("Télé", "Élé", 1);
+ test_strcasestr ("Télé", "léé", -1);
+
return 0;
}
More information about the vlc-commits
mailing list