efl

Форк
0
/
efl_app_test_cml.c 
85 строк · 2.2 Кб
1
#ifdef HAVE_CONFIG_H
2
# include <config.h>
3
#endif
4

5
#define EFL_CORE_COMMAND_LINE_PROTECTED
6

7
#include <stdio.h>
8
#include <unistd.h>
9
#define EFL_NOLEGACY_API_SUPPORT
10
#include <Efl_Core.h>
11
#include "efl_app_suite.h"
12
#include "../efl_check.h"
13

14
typedef struct {
15

16
} Efl_App_Test_CML_Data;
17

18
#include "efl_app_test_cml.eo.h"
19
#include "efl_app_test_cml.eo.c"
20

21
static Eina_Array*
22
_construct_array(void)
23
{
24
   Eina_Array *array = eina_array_new(16);
25

26
   eina_array_push(array, eina_stringshare_add("/bin/sh"));
27
   eina_array_push(array, eina_stringshare_add("-C"));
28
   eina_array_push(array, eina_stringshare_add("foo"));
29
   eina_array_push(array, eina_stringshare_add("--test"));
30
   eina_array_push(array, eina_stringshare_add("--option=done"));
31
   eina_array_push(array, eina_stringshare_add("--"));
32
   eina_array_push(array, eina_stringshare_add("asdf --test"));
33
   return array;
34
}
35

36
static const char*
37
_construct_string(void)
38
{
39
   return "/bin/sh -C foo --test --option=done -- \"asdf --test\"";
40
}
41

42
EFL_START_TEST(efl_core_cml_string)
43
{
44
   Efl_App_Test_CML *cml = efl_add_ref(EFL_APP_TEST_CML_CLASS, NULL);
45
   Eina_Array *content = _construct_array();
46
   Eina_Stringshare *str;
47
   Eina_Bool b;
48
   int i = 0;
49

50
   b = efl_core_command_line_command_string_set(cml, _construct_string());
51
   ck_assert_int_ne(b, 0);
52

53
   EINA_ACCESSOR_FOREACH(efl_core_command_line_command_access(cml), i, str)
54
     {
55
        ck_assert_str_eq(eina_array_data_get(content, i), str);
56
     }
57
   ck_assert_str_eq(efl_core_command_line_command_get(cml), _construct_string());
58
}
59
EFL_END_TEST
60

61
EFL_START_TEST(efl_core_cml_array)
62
{
63
   Efl_App_Test_CML *cml = efl_add_ref(EFL_APP_TEST_CML_CLASS, NULL);
64
   Eina_Array *content1 = _construct_array();
65
   Eina_Array *content2 = _construct_array();
66
   Eina_Stringshare *str;
67
   Eina_Bool b;
68
   int i = 0;
69

70
   b = efl_core_command_line_command_array_set(cml, content1);
71
   ck_assert_int_ne(b, 0);
72

73
   EINA_ACCESSOR_FOREACH(efl_core_command_line_command_access(cml), i, str)
74
     {
75
        ck_assert_str_eq(eina_array_data_get(content2, i), str);
76
     }
77
   ck_assert_str_eq(efl_core_command_line_command_get(cml), _construct_string());
78
}
79
EFL_END_TEST
80

81
void efl_test_efl_cml(TCase *tc)
82
{
83
   tcase_add_test(tc, efl_core_cml_string);
84
   tcase_add_test(tc, efl_core_cml_array);
85
}
86

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

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

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

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