aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorAleksander Guryanov <caiiiycuk@gmail.com>2012-05-28 21:35:04 +0700
committerAleksander Guryanov <caiiiycuk@gmail.com>2012-05-28 21:35:04 +0700
commit2134a33a61d9c5dd24b021ced4af38f29b6de06b (patch)
treedd23f47c459a3d7d212e37bd3016109b0476be7e /tests
parent712bc9041e3470920d0db6a05e5b0af85d1b78e2 (diff)
Add implementation of strndup function and test for it
Diffstat (limited to 'tests')
-rwxr-xr-xtests/runner.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/tests/runner.py b/tests/runner.py
index d6731ed5..4064af15 100755
--- a/tests/runner.py
+++ b/tests/runner.py
@@ -1393,6 +1393,40 @@ m_divisor is 1091269979
'''
self.do_run(src, '4:10,177,543,def\n4\nwowie\ntoo\n76\n5\n(null)\n/* a comment */\n// another\ntest\n', ['wowie', 'too', '74'])
+ def test_strndup(self):
+ src = '''
+ //---------------
+ //- http://pubs.opengroup.org/onlinepubs/9699919799/functions/strndup.html
+ //---------------
+
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+
+ int main(int argc, char **argv) {
+ const char* source = "strndup - duplicate a specific number of bytes from a string";
+
+ char* strdup_val = strndup(source, 7);
+ printf("%s\\n", strdup_val);
+ free(strdup_val);
+
+ strdup_val = strndup(source, 1000);
+ printf("%s\\n", strdup_val);
+ free(strdup_val);
+
+ strdup_val = strndup(source, 60);
+ printf("%s\\n", strdup_val);
+ free(strdup_val);
+
+ strdup_val = strndup(source, 19);
+ printf("%s\\n", strdup_val);
+ free(strdup_val);
+
+ return 0;
+ }
+ '''
+ self.do_run(src, 'strndup\nstrndup - duplicate a specific number of bytes from a string\nstrndup - duplicate a specific number of bytes from a string\nstrndup - duplicate\n')
+
def test_errar(self):
src = r'''
#include <stdio.h>