27 #if defined(__unix__) || defined(__POSIX__) || \
28 defined(__APPLE__) || defined(__sun) || \
29 defined(_AIX) || defined(__MVS__) || \
35 # define unlink _unlink
55 #define FILE_NAME_SIZE 128
56 static char absent_file[FILE_NAME_SIZE];
57 static char empty_file[FILE_NAME_SIZE];
58 static char dummy_file[FILE_NAME_SIZE];
59 static char empty_dir[] =
"empty_dir";
76 static void refresh() {
80 sprintf(absent_file,
"test_file_%d", sid++);
88 sprintf(empty_file,
"test_file_%d", sid++);
102 sprintf(dummy_file,
"test_file_%d", sid++);
128 static void openFail(
char *
file,
int error) {
147 static void refreshOpen(
char *
file) {
158 static void writeExpect(
char *
file,
char *expected,
int size) {
201 static void writeFail(
char *
file,
int error) {
226 static void readExpect(
char *
file,
char *expected,
int size) {
246 static void readFail(
char *
file,
int error) {
271 static void fs_open_flags(
int add_flags) {
278 openFail(absent_file, UV_ENOENT);
279 writeFail(empty_file, UV_EPERM);
280 readExpect(empty_file,
"", 0);
281 writeFail(dummy_file, UV_EPERM);
282 readExpect(dummy_file,
"a", 1);
283 writeFail(empty_dir, UV_EPERM);
284 readFail(empty_dir, UV_EISDIR);
288 openFail(absent_file, UV_ENOENT);
289 writeFail(empty_file, UV_EPERM);
290 readExpect(empty_file,
"", 0);
291 writeFail(dummy_file, UV_EPERM);
292 readExpect(dummy_file,
"a", 1);
293 writeFail(empty_dir, UV_EPERM);
294 readFail(empty_dir, UV_EISDIR);
298 openFail(absent_file, UV_ENOENT);
299 writeExpect(empty_file,
"bc", 2);
300 readExpect(empty_file,
"", 0);
301 writeExpect(dummy_file,
"bc", 2);
302 readExpect(dummy_file,
"a", 1);
303 writeFail(empty_dir, UV_EISDIR);
304 readFail(empty_dir, UV_EISDIR);
308 openFail(absent_file, UV_ENOENT);
309 writeExpect(empty_file,
"bc", 2);
310 readExpect(empty_file,
"", 0);
311 writeExpect(dummy_file,
"bc", 2);
312 readExpect(dummy_file,
"a", 1);
313 writeFail(empty_dir, UV_EISDIR);
314 readFail(empty_dir, UV_EISDIR);
318 writeExpect(absent_file,
"bc", 2);
319 readFail(absent_file, UV_EPERM);
320 writeExpect(empty_file,
"bc", 2);
321 readFail(empty_file, UV_EPERM);
322 writeExpect(dummy_file,
"bc", 2);
323 readFail(dummy_file, UV_EPERM);
324 openFail(empty_dir, UV_EISDIR);
329 writeExpect(absent_file,
"bc", 2);
330 readFail(absent_file, UV_EPERM);
331 openFail(empty_file, UV_EEXIST);
332 openFail(dummy_file, UV_EEXIST);
333 openFail(empty_dir, UV_EEXIST);
337 writeExpect(absent_file,
"bc", 2);
338 readExpect(absent_file,
"", 0);
339 writeExpect(empty_file,
"bc", 2);
340 readExpect(empty_file,
"", 0);
341 writeExpect(dummy_file,
"bc", 2);
342 readExpect(dummy_file,
"", 0);
343 openFail(empty_dir, UV_EISDIR);
348 writeExpect(absent_file,
"bc", 2);
349 readExpect(absent_file,
"", 0);
350 openFail(empty_file, UV_EEXIST);
351 openFail(dummy_file, UV_EEXIST);
352 openFail(empty_dir, UV_EEXIST);
356 writeExpect(absent_file,
"bc", 2);
357 readFail(absent_file, UV_EPERM);
358 writeExpect(empty_file,
"bc", 2);
359 readFail(empty_file, UV_EPERM);
360 writeExpect(dummy_file,
"abc", 3);
361 readFail(dummy_file, UV_EPERM);
362 writeFail(empty_dir, UV_EISDIR);
363 readFail(empty_dir, UV_EPERM);
368 writeExpect(absent_file,
"bc", 2);
369 readFail(absent_file, UV_EPERM);
370 openFail(empty_file, UV_EEXIST);
371 openFail(dummy_file, UV_EEXIST);
372 openFail(empty_dir, UV_EEXIST);
377 writeExpect(absent_file,
"bc", 2);
378 readFail(absent_file, UV_EPERM);
379 writeExpect(empty_file,
"bc", 2);
380 readFail(empty_file, UV_EPERM);
381 writeExpect(dummy_file,
"abc", 3);
382 readFail(dummy_file, UV_EPERM);
383 writeFail(empty_dir, UV_EISDIR);
384 readFail(empty_dir, UV_EPERM);
388 writeExpect(absent_file,
"bc", 2);
389 readExpect(absent_file,
"", 0);
390 writeExpect(empty_file,
"bc", 2);
391 readExpect(empty_file,
"", 0);
392 writeExpect(dummy_file,
"abc", 3);
393 readExpect(dummy_file,
"a", 1);
394 writeFail(empty_dir, UV_EISDIR);
395 readFail(empty_dir, UV_EISDIR);
400 writeExpect(absent_file,
"bc", 2);
401 readExpect(absent_file,
"", 0);
402 openFail(empty_file, UV_EEXIST);
403 openFail(dummy_file, UV_EEXIST);
404 openFail(empty_dir, UV_EEXIST);
409 writeExpect(absent_file,
"bc", 2);
410 readExpect(absent_file,
"", 0);
411 writeExpect(empty_file,
"bc", 2);
412 readExpect(empty_file,
"", 0);
413 writeExpect(dummy_file,
"abc", 3);
414 readExpect(dummy_file,
"a", 1);
415 writeFail(empty_dir, UV_EISDIR);
416 readFail(empty_dir, UV_EISDIR);