bool torture_local_replace(struct torture_context *ctx) { bool ret = true; ret &= test_ftruncate(); ret &= test_strlcpy(); ret &= test_strlcat(); ret &= test_mktime(); ret &= test_initgroups(); ret &= test_memmove(); ret &= test_strdup(); ret &= test_setlinebuf(); ret &= test_vsyslog(); ret &= test_timegm(); ret &= test_setenv(); ret &= test_strndup(); ret &= test_strnlen(); ret &= test_waitpid(); ret &= test_seteuid(); ret &= test_setegid(); ret &= test_asprintf(); ret &= test_snprintf(); ret &= test_vasprintf(); ret &= test_vsnprintf(); ret &= test_opendir(); ret &= test_readdir(); ret &= test_telldir(); ret &= test_seekdir(); ret &= test_dlopen(); ret &= test_chroot(); ret &= test_bzero(); ret &= test_strerror(); ret &= test_errno(); ret &= test_mkdtemp(); ret &= test_mkstemp(); ret &= test_pread(); ret &= test_pwrite(); ret &= test_getpass(); ret &= test_inet_ntoa(); ret &= test_strtoll(); ret &= test_strtoull(); ret &= test_va_copy(); ret &= test_FUNCTION(); ret &= test_MIN(); ret &= test_MAX(); ret &= test_socketpair(); ret &= test_strptime(); ret &= test_getifaddrs(); ret &= test_utime(); ret &= test_utimes(); ret &= test_memmem(); return ret; }
int main(void) { char buffer[10]; plan(23); is_int(3, test_strlcpy(buffer, "foo", sizeof(buffer)), "simple strlcpy"); is_string("foo", buffer, "...result is correct"); is_int(9, test_strlcpy(buffer, "hello wor", sizeof(buffer)), "strlcpy exact length of buffer"); is_string("hello wor", buffer, "...result is correct"); is_int(10, test_strlcpy(buffer, "world hell", sizeof(buffer)), "strlcpy one more than buffer length"); is_string("world hel", buffer, "...result is correct"); ok(buffer[9] == '\0', "...buffer is nul-terminated"); is_int(11, test_strlcpy(buffer, "hello world", sizeof(buffer)), "strlcpy more than buffer length"); is_string("hello wor", buffer, "...result is correct"); ok(buffer[9] == '\0', "...buffer is nul-terminated"); /* Make sure that with a size of 0, the destination isn't changed. */ is_int(3, test_strlcpy(buffer, "foo", 0), "buffer unchanged if size 0"); is_string("hello wor", buffer, "...contents still the same"); /* Now play with empty strings. */ is_int(0, test_strlcpy(buffer, "", 0), "copy empty string with size 0"); is_string("hello wor", buffer, "...buffer unchanged"); is_int(0, test_strlcpy(buffer, "", sizeof(buffer)), "copy empty string into full buffer"); is_string("", buffer, "...buffer now empty string"); is_int(3, test_strlcpy(buffer, "foo", 2), "copy string into buffer of size 2"); is_string("f", buffer, "...got one character"); ok(buffer[1] == '\0', "...buffer is nul-terminated"); is_int(0, test_strlcpy(buffer, "", 1), "copy empty string into buffer of size 1"); ok(buffer[0] == '\0', "...buffer is empty string"); /* Finally, check using strlcpy as strlen. */ is_int(3, test_strlcpy(NULL, "foo", 0), "use strlcpy as strlen"); is_int(11, test_strlcpy(NULL, "hello world", 0), "...again"); return 0; }