summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBruno Haible <bruno@clisp.org>2023-03-27 15:13:41 +0200
committerBruno Haible <bruno@clisp.org>2023-03-27 15:13:41 +0200
commit5a9a1ea612598404bca0e4c5dbb9505ed36fd11d (patch)
tree6331f88f2457a81fe49bdd8d064005a33c17b0f0 /tests
parent0569f76e2f67cba9a565c59486aac0dbebb9ac9a (diff)
downloadgnulib-5a9a1ea612598404bca0e4c5dbb9505ed36fd11d.tar.gz
Add test case from a past musl libc bug.
* tests/test-strstr.c (main): Add test of periodic needle. * tests/test-strcasestr.c (main): Likewise. * tests/test-c-strstr.c (main): Likewise. * tests/test-c-strcasestr.c (main): Likewise. * tests/test-memmem.c (main): Likewise.
Diffstat (limited to 'tests')
-rw-r--r--tests/test-c-strcasestr.c8
-rw-r--r--tests/test-c-strstr.c8
-rw-r--r--tests/test-memmem.c8
-rw-r--r--tests/test-strcasestr.c8
-rw-r--r--tests/test-strstr.c8
5 files changed, 40 insertions, 0 deletions
diff --git a/tests/test-c-strcasestr.c b/tests/test-c-strcasestr.c
index 818f5a994b..4f0a6c262a 100644
--- a/tests/test-c-strcasestr.c
+++ b/tests/test-c-strcasestr.c
@@ -238,6 +238,14 @@ main ()
free (haystack);
}
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const char input[] = "playing PLAY play PLAY always";
+ const char *result = c_strcasestr (input, "play PLAY play");
+ ASSERT (result == input + 8);
+ }
+
/* Test long needles. */
{
size_t m = 1024;
diff --git a/tests/test-c-strstr.c b/tests/test-c-strstr.c
index d8f8465b29..30070d70a4 100644
--- a/tests/test-c-strstr.c
+++ b/tests/test-c-strstr.c
@@ -212,6 +212,14 @@ main ()
free (haystack);
}
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const char input[] = "playing play play play always";
+ const char *result = c_strstr (input, "play play play");
+ ASSERT (result == input + 8);
+ }
+
/* Test long needles. */
{
size_t m = 1024;
diff --git a/tests/test-memmem.c b/tests/test-memmem.c
index 0daf3b07e7..589210f4a2 100644
--- a/tests/test-memmem.c
+++ b/tests/test-memmem.c
@@ -292,6 +292,14 @@ main (int argc, char *argv[])
free (haystack);
}
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const char input[] = "playing play play play always";
+ const char *result = memmem (input, strlen (input), "play play play", 14);
+ ASSERT (result == input + 8);
+ }
+
/* Test long needles. */
{
size_t m = 1024;
diff --git a/tests/test-strcasestr.c b/tests/test-strcasestr.c
index 192e1569f8..c0f5111b4a 100644
--- a/tests/test-strcasestr.c
+++ b/tests/test-strcasestr.c
@@ -252,6 +252,14 @@ main ()
free (haystack);
}
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const char input[] = "playing PLAY play PLAY always";
+ const char *result = strcasestr (input, "play PLAY play");
+ ASSERT (result == input + 8);
+ }
+
/* Test long needles. */
{
size_t m = 1024;
diff --git a/tests/test-strstr.c b/tests/test-strstr.c
index b2e00c526c..1ff9953d31 100644
--- a/tests/test-strstr.c
+++ b/tests/test-strstr.c
@@ -275,6 +275,14 @@ main (int argc, char *argv[])
free (haystack);
}
+ /* Test case from Yves Bastide.
+ <https://www.openwall.com/lists/musl/2014/04/18/2> */
+ {
+ const char input[] = "playing play play play always";
+ const char *result = strstr (input, "play play play");
+ ASSERT (result == input + 8);
+ }
+
/* Test long needles. */
{
size_t m = 1024;