Changeset 2309891 in mainline for uspace/lib/fmgt/test
- Timestamp:
- 2025-12-14T17:15:57Z (3 months ago)
- Branches:
- master
- Children:
- 79b77ce
- Parents:
- 144fafd
- Location:
- uspace/lib/fmgt/test
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fmgt/test/walk.c
r144fafd r2309891 39 39 PCUT_TEST_SUITE(walk); 40 40 41 static errno_t test_walk_dir_enter(void *, const char * );42 static errno_t test_walk_dir_leave(void *, const char * );43 static errno_t test_walk_file(void *, const char * );41 static errno_t test_walk_dir_enter(void *, const char *, const char *); 42 static errno_t test_walk_dir_leave(void *, const char *, const char *); 43 static errno_t test_walk_file(void *, const char *, const char *); 44 44 45 45 static fmgt_walk_cb_t test_walk_cb = { … … 55 55 char *dirname; 56 56 char *fname; 57 char *dest; 58 char *de_dest; 59 char *dl_dest; 57 60 errno_t rc; 58 61 } test_resp_t; 59 62 60 /** Walk file system tree . */61 PCUT_TEST(walk_ success)63 /** Walk file system tree with no destination and successful result. */ 64 PCUT_TEST(walk_nodest_success) 62 65 { 63 66 char buf[L_tmpnam]; … … 129 132 } 130 133 131 errno_t test_walk_dir_enter(void *arg, const char *fname) 134 /** Walk file system tree with destination and successful result. */ 135 PCUT_TEST(walk_dest_success) 136 { 137 char buf[L_tmpnam]; 138 char *fname; 139 FILE *f; 140 char *p; 141 int rv; 142 fmgt_flist_t *flist; 143 fmgt_walk_params_t params; 144 test_resp_t resp; 145 errno_t rc; 146 147 /* Create name for temporary directory */ 148 p = tmpnam(buf); 149 PCUT_ASSERT_NOT_NULL(p); 150 151 /* Create temporary directory */ 152 rc = vfs_link_path(p, KIND_DIRECTORY, NULL); 153 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 154 155 rv = asprintf(&fname, "%s/%s", p, "a"); 156 PCUT_ASSERT_TRUE(rv >= 0); 157 158 f = fopen(fname, "wb"); 159 PCUT_ASSERT_NOT_NULL(f); 160 161 rv = fprintf(f, "X"); 162 PCUT_ASSERT_TRUE(rv >= 0); 163 164 rv = fclose(f); 165 PCUT_ASSERT_INT_EQUALS(0, rv); 166 167 rc = fmgt_flist_create(&flist); 168 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 169 170 rc = fmgt_flist_append(flist, p); 171 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 172 173 fmgt_walk_params_init(¶ms); 174 params.flist = flist; 175 params.dest = "foo"; 176 params.cb = &test_walk_cb; 177 params.arg = &resp; 178 179 resp.dir_enter = false; 180 resp.dir_leave = false; 181 resp.file_proc = false; 182 resp.rc = EOK; 183 184 rc = fmgt_walk(¶ms); 185 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 186 187 PCUT_ASSERT_TRUE(resp.dir_enter); 188 PCUT_ASSERT_TRUE(resp.dir_leave); 189 PCUT_ASSERT_TRUE(resp.file_proc); 190 PCUT_ASSERT_STR_EQUALS(p, resp.dirname); 191 PCUT_ASSERT_STR_EQUALS(fname, resp.fname); 192 printf("dest='%s'\n", resp.dest); 193 printf("de_dest='%s'\n", resp.de_dest); 194 printf("dl_dest='%s'\n", resp.dl_dest); 195 196 free(resp.dirname); 197 free(resp.fname); 198 fmgt_flist_destroy(flist); 199 200 rv = remove(fname); 201 PCUT_ASSERT_INT_EQUALS(0, rv); 202 203 rv = remove(p); 204 PCUT_ASSERT_INT_EQUALS(0, rv); 205 206 free(fname); 207 } 208 209 errno_t test_walk_dir_enter(void *arg, const char *fname, const char *dest) 132 210 { 133 211 test_resp_t *resp = (test_resp_t *)arg; 134 212 resp->dir_enter = true; 135 213 resp->dirname = str_dup(fname); 214 resp->de_dest = str_dup(dest); 136 215 return resp->rc; 137 216 } 138 217 139 errno_t test_walk_dir_leave(void *arg, const char *fname )218 errno_t test_walk_dir_leave(void *arg, const char *fname, const char *dest) 140 219 { 141 220 test_resp_t *resp = (test_resp_t *)arg; 142 221 resp->dir_leave = true; 222 resp->dl_dest = str_dup(dest); 143 223 return resp->rc; 144 224 } 145 225 146 errno_t test_walk_file(void *arg, const char *fname )226 errno_t test_walk_file(void *arg, const char *fname, const char *dest) 147 227 { 148 228 test_resp_t *resp = (test_resp_t *)arg; 149 229 resp->file_proc = true; 150 230 resp->fname = str_dup(fname); 231 resp->dest = str_dup(dest); 151 232 return resp->rc; 152 233 }
Note:
See TracChangeset
for help on using the changeset viewer.
