aboutsummaryrefslogtreecommitdiffstats
path: root/src/tests/automated/automated.template
blob: ef13addbdd8fe5d4a43c7975188a5c61e81f774a (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
<!--(macro init)-->
   /** init **/
   fail_if(!eina_init(), "ERROR: Cannot init Eina!\n");
   fail_if(!ecore_init(), "ERROR: Cannot init Ecore!\n");
   fail_if(!efl_object_init(), "ERROR: Cannot init EO!\n");
   fail_if(!eio_init(), "ERROR: Cannot init EIO!\n");

  <!--(if exists("mfunc") and mfunc!= None)-->
   ${mfunc}$
  <!--(elif exists("mcls") and mcls!= None)-->
   ${mcls}$
  <!--(else)-->
   Eo *obj = efl_add(${cls.c_name}$, NULL);
   fail_if(!obj, "ERROR: Cannot init ${cls.full_name}$!\n");
  <!--(end)-->
<!--(end)-->
<!--(macro shutdown)-->
   /** shutdown **/
  <!--(if exists("mfunc") and mfunc != None)-->
   ${mfunc}$
  <!--(elif exists("mcls") and mcls != None)-->
   ${mcls}$
  <!--(end)-->
   efl_unref(obj);
   eio_shutdown();
   ecore_shutdown();
   eina_shutdown();
<!--(end)-->
<!--(macro args_declaration)-->
  <!--(for arg in args)-->
   ${arg.type.c_type_return}$ arg_${arg.name}$ = <!--(if arg.type.is_ptr or arg.type.type == arg.type.type.CLASS or arg.type.builtin_type == arg.type.builtin_type.STRING)-->NULL<!--(elif arg.type.builtin_type == arg.type.builtin_type.ANY_VALUE)-->EINA_VALUE_EMPTY<!--(else)-->0<!--(end)-->;
  <!--(end)-->
<!--(end)-->
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif

#include "${cls.c_name.lower()}$_suite.h"
#include "../efl_check.h"

static const Efl_Test_Case etc[] = {
  { "${cls.c_name}$", automated_test_${cls.c_name.lower()}$},
  { NULL, NULL }
};
<!--(if cls.custom != None)-->

${cls.custom}$
<!--(end)-->

START_TEST(automated_test_${cls.c_name.lower()}$_smoke)
{
${init(mcls=cls.init)}$
${shutdown(mcls=cls.shutdown)}$
}
END_TEST

<!--(for func in cls.methods)-->
START_TEST(automated_test_${func.full_c_method_name}$)
{
${args_declaration(args=func.parameters)}$${init(mcls=cls.init,mfunc=func.init)}$
${func.arg_init}$
   <!--(if func.method_return_type)-->${func.method_return_type.c_type_return}$ r = <!--(end)-->${func.full_c_method_name}$(obj<!--(for arg in func.parameters)-->, arg_${arg.name}$<!--(end)-->);
${func.arg_shutdown}$
${shutdown(mcls=cls.shutdown,mfunc=func.shutdown)}$
}
END_TEST

<!--(end)-->

<!--(for func in cls.properties)-->
  <!--(if func.getter_scope)-->
START_TEST(automated_test_${func.full_c_getter_name}$)
{
    <!--(if len(list(func.getter_values)) > 1)-->
${args_declaration(args=func.getter_values)}$
    <!--(end)-->
${args_declaration(args=func.getter_keys)}$${init(mcls=cls.init,mfunc=func.init)}$
${func.arg_get_init}$
   <!--(if len(list(func.getter_values)) == 1)-->
   ${list(func.getter_values)[0].type.c_type_return}$ r = ${func.full_c_getter_name}$(obj<!--(for arg in func.getter_keys)-->arg_${arg.name}$<!--(end)-->);
   <!--(else)-->
   ${func.full_c_getter_name}$(obj<!--(for arg in func.getter_values)-->, &arg_${arg.name}$<!--(end)--><!--(for arg in func.getter_keys)-->, arg_${arg.name}$<!--(end)-->);
   <!--(end)-->
${func.arg_get_shutdown}$
${shutdown(mcustom=cls.shutdown,mfunc=func.shutdown)}$
}
END_TEST

  <!--(end)-->
  <!--(if func.setter_scope)-->
START_TEST(automated_test_${func.full_c_setter_name}$)
{
${args_declaration(args=func.setter_keys)}$${args_declaration(args=func.setter_values)}$${init(mcls=cls.init,mfunc=func.init)}$
${func.arg_set_init}$
   ${func.full_c_getter_name}$(obj<!--(for arg in func.setter_values)-->, &arg_${arg.name}$<!--(end)--><!--(for arg in func.setter_keys)-->, arg_${arg.name}$<!--(end)-->);
${func.arg_set_shutdown}$
${shutdown(mcls=cls.shutdown,mfunc=func.shutdown)}$
}
END_TEST

  <!--(end)-->
<!--(end)-->
void automated_test_${cls.c_name.lower()}$(TCase *tc)
{
   tcase_add_test(tc, automated_test_${cls.c_name.lower()}$_smoke);

   <!--(for func in cls.methods)-->
   tcase_add_test(tc, automated_test_${func.full_c_method_name}$);
   <!--(end)-->
   <!--(for func in cls.properties)-->
    <!--(if func.getter_scope)-->
   tcase_add_test(tc, automated_test_${func.full_c_getter_name}$);
    <!--(end)-->
    <!--(if func.setter_scope)-->
   tcase_add_test(tc, automated_test_${func.full_c_setter_name}$);
    <!--(end)-->
   <!--(end)-->
}

int
main(int argc, char **argv)
{
   int failed_count;

   if (!_efl_test_option_disp(argc, argv, etc))
     return 0;

#ifdef NEED_RUN_IN_TREE
   putenv("EFL_RUN_IN_TREE=1");
#endif

   failed_count = _efl_suite_build_and_run(argc - 1, (const char **)argv + 1,
                                           "${cls.c_name}$", etc);

   return (failed_count == 0) ? 0 : 255;
}