Changeset f9c30b9a in mainline for uspace/lib
- Timestamp:
- 2026-02-11T18:02:17Z (5 weeks ago)
- Branches:
- master
- Children:
- cd0dce3
- Parents:
- 59ed424e
- Location:
- uspace/lib/fmgt
- Files:
-
- 3 added
- 8 edited
-
include/fmgt.h (modified) (2 diffs)
-
include/fmgt/move.h (added)
-
include/types/fmgt.h (modified) (1 diff)
-
meson.build (modified) (2 diffs)
-
private/fsops.h (modified) (1 diff)
-
src/fsops.c (modified) (1 diff)
-
src/move.c (added)
-
test/copy.c (modified) (5 diffs)
-
test/fsops.c (modified) (1 diff)
-
test/main.c (modified) (1 diff)
-
test/move.c (added)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/fmgt/include/fmgt.h
r59ed424e rf9c30b9a 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2026 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 44 44 #include "fmgt/copy.h" 45 45 #include "fmgt/flist.h" 46 #include "fmgt/move.h" 46 47 #include "fmgt/newfile.h" 47 48 #include "fmgt/verify.h" -
uspace/lib/fmgt/include/types/fmgt.h
r59ed424e rf9c30b9a 69 69 fmgt_io_open, 70 70 /** Create */ 71 fmgt_io_create 71 fmgt_io_create, 72 /** Delete */ 73 fmgt_io_delete 72 74 } fmgt_io_op_type_t; 73 75 -
uspace/lib/fmgt/meson.build
r59ed424e rf9c30b9a 32 32 'src/fmgt.c', 33 33 'src/fsops.c', 34 'src/move.c', 34 35 'src/newfile.c', 35 36 'src/verify.c', … … 43 44 'test/fsops.c', 44 45 'test/main.c', 46 'test/move.c', 45 47 'test/newfile.c', 46 48 'test/verify.c', -
uspace/lib/fmgt/private/fsops.h
r59ed424e rf9c30b9a 46 46 errno_t fmgt_create_file(fmgt_t *, const char *, int *, fmgt_exists_action_t *); 47 47 errno_t fmgt_create_dir(fmgt_t *, const char *); 48 errno_t fmgt_remove(fmgt_t *, const char *); 48 49 errno_t fmgt_read(fmgt_t *, int, const char *, aoff64_t *, void *, size_t, 49 50 size_t *); -
uspace/lib/fmgt/src/fsops.c
r59ed424e rf9c30b9a 166 166 } 167 167 168 /** Remove file or empty directory. 169 * 170 * @param fmgt File management object 171 * @param fame File or directory name 172 * @return EOK on success or an error code 173 */ 174 errno_t fmgt_remove(fmgt_t *fmgt, const char *fname) 175 { 176 fmgt_io_error_t err; 177 fmgt_error_action_t action; 178 errno_t rc; 179 180 do { 181 rc = vfs_unlink_path(fname); 182 if (rc == EOK) 183 break; 184 185 /* I/O error */ 186 err.fname = fname; 187 err.optype = fmgt_io_delete; 188 err.rc = rc; 189 190 fmgt_timer_stop(fmgt); 191 action = fmgt_io_error_query(fmgt, &err); 192 fmgt_timer_start(fmgt); 193 } while (action == fmgt_er_retry); 194 195 return rc; 196 } 197 168 198 /** Read data from file. 169 199 * -
uspace/lib/fmgt/test/copy.c
r59ed424e rf9c30b9a 1 1 /* 2 * Copyright (c) 202 5Jiri Svoboda2 * Copyright (c) 2026 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 167 167 char *fname; 168 168 char *dname; 169 char *rname; 169 170 FILE *f; 170 171 char *p; … … 181 182 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 182 183 183 rv = asprintf(&fname, "%s/%s", p, "a"); 184 PCUT_ASSERT_TRUE(rv >= 0); 185 186 rv = asprintf(&dname, "%s/%s", p, "b"); 184 rv = asprintf(&fname, "%s/a", p); 185 PCUT_ASSERT_TRUE(rv >= 0); 186 187 rv = asprintf(&dname, "%s/b", p); 188 PCUT_ASSERT_TRUE(rv >= 0); 189 190 rv = asprintf(&rname, "%s/b/a", p); 187 191 PCUT_ASSERT_TRUE(rv >= 0); 188 192 … … 208 212 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 209 213 210 rc = fmgt_flist_append(flist, dname);211 PCUT_ASSERT_ERRNO_VAL(EOK, rc);212 213 214 rc = fmgt_copy(fmgt, flist, dname); 214 215 PCUT_ASSERT_ERRNO_VAL(EOK, rc); … … 217 218 218 219 rv = remove(fname); 220 PCUT_ASSERT_INT_EQUALS(0, rv); 221 222 rv = remove(rname); 219 223 PCUT_ASSERT_INT_EQUALS(0, rv); 220 224 -
uspace/lib/fmgt/test/fsops.c
r59ed424e rf9c30b9a 131 131 } 132 132 133 /** Remove file. */ 134 PCUT_TEST(remove) 135 { 136 fmgt_t *fmgt = NULL; 137 char buf[L_tmpnam]; 138 FILE *f; 139 char *p; 140 int rv; 141 errno_t rc; 142 143 /* Create name for temporary file */ 144 p = tmpnam(buf); 145 PCUT_ASSERT_NOT_NULL(p); 146 147 f = fopen(p, "wb"); 148 PCUT_ASSERT_NOT_NULL(f); 149 150 rv = fprintf(f, "X"); 151 PCUT_ASSERT_TRUE(rv >= 0); 152 153 rv = fclose(f); 154 PCUT_ASSERT_INT_EQUALS(0, rv); 155 156 rc = fmgt_create(&fmgt); 157 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 158 159 rc = fmgt_remove(fmgt, p); 160 PCUT_ASSERT_ERRNO_VAL(EOK, rc); 161 162 fmgt_destroy(fmgt); 163 } 164 133 165 /** Read data from file. */ 134 166 PCUT_TEST(read) -
uspace/lib/fmgt/test/main.c
r59ed424e rf9c30b9a 31 31 PCUT_INIT; 32 32 33 PCUT_IMPORT(copy); 33 34 PCUT_IMPORT(flist); 34 35 PCUT_IMPORT(fmgt); 35 36 PCUT_IMPORT(fsops); 37 PCUT_IMPORT(move); 36 38 PCUT_IMPORT(newfile); 37 39 PCUT_IMPORT(verify);
Note:
See TracChangeset
for help on using the changeset viewer.
