efl

Форк
0
/
eio_test_common.c 
93 строки · 2.1 Кб
1
#ifdef HAVE_CONFIG_H
2
# include <config.h>
3
#endif
4

5
#include <stdio.h>
6
#include <unistd.h>
7
#include <string.h>
8
#include <sys/stat.h>
9
#include <fcntl.h>
10

11
#ifdef _WIN32
12
# include <evil_private.h> /* mkdir */
13
#endif
14

15
#include "eio_suite.h"
16
#include "eio_test_common.h"
17

18
#ifndef O_BINARY
19
# define O_BINARY 0
20
#endif
21

22
static const char *good_dirs[] =
23
     {
24
        "eio_file_ls_simple_dir",
25
        "b."
26
     };
27

28
unsigned int default_rights = DEFAULT_RIGHTS;
29

30
const char *files[] =
31
     {
32
        ".hidden_file",
33
        "~$b@:-*$a!{}",
34
        "$b$a",
35
        "normal_file"
36
     };
37

38
Eina_Tmpstr*
39
get_full_path(const char* tmpdirname, const char* filename)
40
{
41
    char full_path[PATH_MAX] = "";
42
    eina_str_join(full_path, sizeof(full_path), '/', tmpdirname, filename);
43
    return eina_tmpstr_add(full_path);
44
}
45

46
Eina_Tmpstr*
47
get_eio_test_file_tmp_dir()
48
{
49
   Eina_Tmpstr *tmp_dir;
50

51
   Eina_Bool created = eina_file_mkdtemp("EioFileTestXXXXXX", &tmp_dir);
52

53
   if (!created)
54
     {
55
        return NULL;
56
     }
57

58
   return tmp_dir;
59
}
60

61
Eina_Tmpstr*
62
create_test_dirs(Eina_Tmpstr *test_dirname)
63
{
64
   int i, fd;
65
   int count = sizeof(good_dirs) / sizeof(const char *);
66
   fail_if(test_dirname == NULL);
67

68
   for (i = 0; i != count; ++i)
69
     {
70
        Eina_Tmpstr *dirname = get_full_path(test_dirname, good_dirs[i]);
71
        fail_if(mkdir(dirname, default_rights) != 0);
72
        eina_tmpstr_del(dirname);
73
     }
74
   count = sizeof(files) / sizeof(const char *);
75
   for (i = 0; i != count; ++i)
76
     {
77
        Eina_Tmpstr *filename = get_full_path(test_dirname, files[i]);
78
        fd = open(filename, O_RDWR | O_BINARY | O_CREAT, default_rights);
79
        fail_if(fd < 0);
80
        fail_if(close(fd) != 0);
81
        eina_tmpstr_del(filename);
82
     }
83
   Eina_Tmpstr *nested_dirname = get_full_path(test_dirname, good_dirs[0]);
84
   for (i = 0; i != count; ++i)
85
     {
86
        Eina_Tmpstr *filename = get_full_path(nested_dirname, files[i]);
87
        fd = open(filename, O_RDWR | O_BINARY | O_CREAT, default_rights);
88
        fail_if(fd < 0);
89
        fail_if(close(fd) != 0);
90
        eina_tmpstr_del(filename);
91
     }
92
   return nested_dirname;
93
}
94

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.