static void test_dir(void) { test_opendir(); test_canonpath(); test_abspath(); test_basename(); test_dirname(); }
int test_dir(void){ struct dirent entry; void * handle; int i; char buffer[64]; if ( (handle = test_opendir("")) == NULL ){ printf("failed to opendir()\n"); return -1; } i = 0; while( test_readdir_r(handle, i, &entry) == 0 ){ sprintf(buffer, "test%d", i); printf("dir: %d %s\n", (int)entry.d_ino, entry.d_name); if ( strcmp(buffer, entry.d_name) != 0 ){ printf("Unexpected directory entry %s\n", entry.d_name); } i++; } if ( test_readdir_r(handle, i, &entry) == 0 ){ printf("Failed to remove all directories\n"); } if ( test_closedir(handle) ){ return -1; } return 0; }
static bool torture_libsmbclient_opendir(struct torture_context *tctx) { int i; SMBCCTX *ctx; bool ret = true; const char *bad_urls[] = { "", NULL, "smb", "smb:", "smb:/", "smb:///", "bms://", ":", ":/", "://", ":///", "/", "//", "///" }; const char *good_urls[] = { "smb://", "smb://WORKGROUP", "smb://WORKGROUP/" }; torture_assert(tctx, torture_libsmbclient_init_context(tctx, &ctx), ""); smbc_set_context(ctx); for (i=0; i < ARRAY_SIZE(bad_urls); i++) { ret &= test_opendir(tctx, ctx, bad_urls[i], false); } for (i=0; i < ARRAY_SIZE(good_urls); i++) { ret &= test_opendir(tctx, ctx, good_urls[i], true); } smbc_free_context(ctx, 1); return ret; }
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 test_listdir(const char * path){ void * handle; struct dirent entry; int i; if ( (handle = test_opendir(path)) == NULL ){ printf("failed to opendir()\n"); return -1; } i = 0; while( test_readdir_r(handle, i, &entry) == 0 ){ printf("dir: %d %s\n", (int)entry.d_ino, entry.d_name); i++; } test_closedir(&handle); return 0; }