aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/core/test_strstr.in35
-rw-r--r--tests/core/test_strstr.out24
-rw-r--r--tests/test_core.py62
3 files changed, 62 insertions, 59 deletions
diff --git a/tests/core/test_strstr.in b/tests/core/test_strstr.in
new file mode 100644
index 00000000..ab049cac
--- /dev/null
+++ b/tests/core/test_strstr.in
@@ -0,0 +1,35 @@
+
+ #include <stdio.h>
+ #include <string.h>
+
+ int main()
+ {
+ printf("%d\n", !!strstr("\\n", "\\n"));
+ printf("%d\n", !!strstr("cheezy", "ez"));
+ printf("%d\n", !!strstr("cheeezy", "ez"));
+ printf("%d\n", !!strstr("cheeeeeeeeeezy", "ez"));
+ printf("%d\n", !!strstr("cheeeeeeeeee1zy", "ez"));
+ printf("%d\n", !!strstr("che1ezy", "ez"));
+ printf("%d\n", !!strstr("che1ezy", "che"));
+ printf("%d\n", !!strstr("ce1ezy", "che"));
+ printf("%d\n", !!strstr("ce1ezy", "ezy"));
+ printf("%d\n", !!strstr("ce1ezyt", "ezy"));
+ printf("%d\n", !!strstr("ce1ez1y", "ezy"));
+ printf("%d\n", !!strstr("cheezy", "a"));
+ printf("%d\n", !!strstr("cheezy", "b"));
+ printf("%d\n", !!strstr("cheezy", "c"));
+ printf("%d\n", !!strstr("cheezy", "d"));
+ printf("%d\n", !!strstr("cheezy", "g"));
+ printf("%d\n", !!strstr("cheezy", "h"));
+ printf("%d\n", !!strstr("cheezy", "i"));
+ printf("%d\n", !!strstr("cheezy", "e"));
+ printf("%d\n", !!strstr("cheezy", "x"));
+ printf("%d\n", !!strstr("cheezy", "y"));
+ printf("%d\n", !!strstr("cheezy", "z"));
+ printf("%d\n", !!strstr("cheezy", "_"));
+
+ const char *str = "a big string";
+ printf("%d\n", strstr(str, "big") - str);
+ return 0;
+ }
+ \ No newline at end of file
diff --git a/tests/core/test_strstr.out b/tests/core/test_strstr.out
new file mode 100644
index 00000000..aa0d917b
--- /dev/null
+++ b/tests/core/test_strstr.out
@@ -0,0 +1,24 @@
+1
+1
+1
+1
+0
+1
+1
+0
+1
+1
+0
+0
+0
+1
+0
+0
+1
+0
+1
+0
+1
+1
+0
+2
diff --git a/tests/test_core.py b/tests/test_core.py
index 805c06e1..ffa43192 100644
--- a/tests/test_core.py
+++ b/tests/test_core.py
@@ -3628,66 +3628,10 @@ ok
self.do_run_from_file(src, output)
def test_strstr(self):
- src = r'''
- #include <stdio.h>
- #include <string.h>
+ test_path = path_from_root('tests', 'core', 'test_strstr')
+ src, output = (test_path + s for s in ('.in', '.out'))
- int main()
- {
- printf("%d\n", !!strstr("\\n", "\\n"));
- printf("%d\n", !!strstr("cheezy", "ez"));
- printf("%d\n", !!strstr("cheeezy", "ez"));
- printf("%d\n", !!strstr("cheeeeeeeeeezy", "ez"));
- printf("%d\n", !!strstr("cheeeeeeeeee1zy", "ez"));
- printf("%d\n", !!strstr("che1ezy", "ez"));
- printf("%d\n", !!strstr("che1ezy", "che"));
- printf("%d\n", !!strstr("ce1ezy", "che"));
- printf("%d\n", !!strstr("ce1ezy", "ezy"));
- printf("%d\n", !!strstr("ce1ezyt", "ezy"));
- printf("%d\n", !!strstr("ce1ez1y", "ezy"));
- printf("%d\n", !!strstr("cheezy", "a"));
- printf("%d\n", !!strstr("cheezy", "b"));
- printf("%d\n", !!strstr("cheezy", "c"));
- printf("%d\n", !!strstr("cheezy", "d"));
- printf("%d\n", !!strstr("cheezy", "g"));
- printf("%d\n", !!strstr("cheezy", "h"));
- printf("%d\n", !!strstr("cheezy", "i"));
- printf("%d\n", !!strstr("cheezy", "e"));
- printf("%d\n", !!strstr("cheezy", "x"));
- printf("%d\n", !!strstr("cheezy", "y"));
- printf("%d\n", !!strstr("cheezy", "z"));
- printf("%d\n", !!strstr("cheezy", "_"));
-
- const char *str = "a big string";
- printf("%d\n", strstr(str, "big") - str);
- return 0;
- }
- '''
- self.do_run(src, '''1
-1
-1
-1
-0
-1
-1
-0
-1
-1
-0
-0
-0
-1
-0
-0
-1
-0
-1
-0
-1
-1
-0
-2
-''')
+ self.do_run_from_file(src, output)
def test_sscanf(self):
if self.emcc_args is None: return self.skip('needs emcc for libc')