xaizek / vifm (License: GPLv2+) (since 2018-12-07)
Vifm is a file manager with curses interface, which provides Vi[m]-like environment for managing objects within file systems, extended with some useful ideas from mutt.
Commit c1cfc2e4cec032ca2eba1e5bb2877d70bfe4b8e5

Windows is not removing directories via remove()
Author: xaizek
Author date (UTC): 2016-01-01 13:55
Committer name: xaizek
Committer date (UTC): 2016-01-01 13:55
Parent(s): 24401e074c371ce0b02ca6cedb7750ac13b5dcc1
Signing key:
Tree: b682a2e02ea6a2f1d1c3eed890d9e25318829a7f
File Lines added Lines deleted
tests/utils/fsdata.c 8 7
tests/utils/fsddata.c 3 2
File tests/utils/fsdata.c changed (mode: 100644) (index 704f0dc12..f883be0dd)
1 1 #include <stic.h> #include <stic.h>
2 2
3 #include <unistd.h> /* rmdir() */
4
3 5 #include <stddef.h> /* NULL */ #include <stddef.h> /* NULL */
4 #include <stdio.h> /* remove() */
5 6
6 7 #include "../../src/compat/os.h" #include "../../src/compat/os.h"
7 8 #include "../../src/utils/fsdata.h" #include "../../src/utils/fsdata.h"
 
... ... TEST(siblings_are_independent)
84 85 assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir2", &data, sizeof(data))); assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir2", &data, sizeof(data)));
85 86 assert_true(data == 1); assert_true(data == 1);
86 87
87 assert_success(remove(SANDBOX_PATH "/dir1"));
88 assert_success(remove(SANDBOX_PATH "/dir2"));
88 assert_success(rmdir(SANDBOX_PATH "/dir1"));
89 assert_success(rmdir(SANDBOX_PATH "/dir2"));
89 90 fsdata_free(fsd); fsdata_free(fsd);
90 91 } }
91 92
 
... ... TEST(set_does_not_work_for_path_that_do_not_exist_anymore)
103 104 fsdata_t *const fsd = fsdata_create(0); fsdata_t *const fsd = fsdata_create(0);
104 105 assert_success(os_mkdir(SANDBOX_PATH "/dir", 0700)); assert_success(os_mkdir(SANDBOX_PATH "/dir", 0700));
105 106 assert_success(fsdata_set(fsd, SANDBOX_PATH "/dir", &data, sizeof(data))); assert_success(fsdata_set(fsd, SANDBOX_PATH "/dir", &data, sizeof(data)));
106 assert_success(remove(SANDBOX_PATH "/dir"));
107 assert_success(rmdir(SANDBOX_PATH "/dir"));
107 108 assert_failure(fsdata_set(fsd, SANDBOX_PATH "/dir", &data, sizeof(data))); assert_failure(fsdata_set(fsd, SANDBOX_PATH "/dir", &data, sizeof(data)));
108 109 fsdata_free(fsd); fsdata_free(fsd);
109 110 } }
 
... ... TEST(end_value_is_preferred_over_intermediate_value)
121 122 assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir", &data, sizeof(data))); assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir", &data, sizeof(data)));
122 123 assert_true(data == 1); assert_true(data == 1);
123 124
124 assert_success(remove(SANDBOX_PATH "/dir"));
125 assert_success(rmdir(SANDBOX_PATH "/dir"));
125 126 fsdata_free(fsd); fsdata_free(fsd);
126 127 } }
127 128
 
... ... TEST(intermediate_value_is_returned_if_end_value_is_not_found)
136 137 assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir", &data, sizeof(data))); assert_success(fsdata_get(fsd, SANDBOX_PATH "/dir", &data, sizeof(data)));
137 138 assert_true(data == 0); assert_true(data == 0);
138 139
139 assert_success(remove(SANDBOX_PATH "/dir"));
140 assert_success(rmdir(SANDBOX_PATH "/dir"));
140 141 fsdata_free(fsd); fsdata_free(fsd);
141 142 } }
142 143
 
... ... TEST(path_is_invalidated_in_fsdata)
154 155 assert_failure(fsdata_get(fsd, SANDBOX_PATH, &ptr, sizeof(ptr))); assert_failure(fsdata_get(fsd, SANDBOX_PATH, &ptr, sizeof(ptr)));
155 156 assert_failure(fsdata_get(fsd, SANDBOX_PATH "/dir", &ptr, sizeof(ptr))); assert_failure(fsdata_get(fsd, SANDBOX_PATH "/dir", &ptr, sizeof(ptr)));
156 157
157 assert_success(remove(SANDBOX_PATH "/dir"));
158 assert_success(rmdir(SANDBOX_PATH "/dir"));
158 159 fsdata_free(fsd); fsdata_free(fsd);
159 160 } }
160 161
File tests/utils/fsddata.c changed (mode: 100644) (index 45ed25a5b..63df506f8)
1 1 #include <stic.h> #include <stic.h>
2 2
3 #include <stdio.h> /* remove() */
3 #include <unistd.h> /* rmdir() */
4
4 5 #include <string.h> /* strdup() */ #include <string.h> /* strdup() */
5 6
6 7 #include "../../src/compat/os.h" #include "../../src/compat/os.h"
 
... ... TEST(path_is_invalidated_in_fsddata)
57 58 assert_failure(fsddata_get(fsdd, SANDBOX_PATH, &ptr)); assert_failure(fsddata_get(fsdd, SANDBOX_PATH, &ptr));
58 59 assert_failure(fsddata_get(fsdd, SANDBOX_PATH "/dir", &ptr)); assert_failure(fsddata_get(fsdd, SANDBOX_PATH "/dir", &ptr));
59 60
60 assert_success(remove(SANDBOX_PATH "/dir"));
61 assert_success(rmdir(SANDBOX_PATH "/dir"));
61 62 fsddata_free(fsdd); fsddata_free(fsdd);
62 63 } }
63 64
Hints

Before first commit, do not forget to setup your git environment:
git config --global user.name "your_name_here"
git config --global user.email "your@email_here"

Clone this repository using HTTP(S):
git clone https://code.reversed.top/user/xaizek/vifm

Clone this repository using ssh (do not forget to upload a key first):
git clone ssh://rocketgit@code.reversed.top/user/xaizek/vifm

You are allowed to anonymously push to this repository.
This means that your pushed commits will automatically be transformed into a pull request:
... clone the repository ...
... make some changes and some commits ...
git push origin master