efl
100 строк · 2.4 Кб
1#ifdef HAVE_CONFIG_H2# include "elementary_config.h"3#endif4
5#include "elm_suite.h"6#include "Elementary.h"7#include "elm_code_parse.h"8
9static int line_calls, file_calls;10
11static void _parser_line_callback(Elm_Code_Line *line EINA_UNUSED, void *data EINA_UNUSED)12{
13line_calls++;14}
15
16static void _parser_file_callback(Elm_Code_File *file EINA_UNUSED, void *data EINA_UNUSED)17{
18file_calls++;19}
20
21EFL_START_TEST(elm_code_parse_hook_memory_test)22{
23Elm_Code *code;24Elm_Code_File *file;25
26line_calls = 0;27file_calls = 0;28
29char *args[] = { "exe" };30elm_init(1, args);31code = elm_code_create();32file = elm_code_file_new(code);33
34elm_code_parser_add(code, _parser_line_callback, _parser_file_callback, NULL);35elm_code_file_line_append(file, "some \"test content\" for parsing", 31, NULL);36
37ck_assert_int_eq(1, line_calls);38ck_assert_int_eq(0, file_calls);39
40elm_code_free(code);41elm_shutdown();42}
43EFL_END_TEST
44
45EFL_START_TEST(elm_code_parse_hook_file_test)46{
47Elm_Code *code;48Elm_Code_File *file;49char *path = TESTS_SRC_DIR "/testfile.txt";50
51line_calls = 0;52file_calls = 0;53
54char *args[] = { "exe" };55elm_init(1, args);56code = elm_code_create();57
58elm_code_parser_add(code, _parser_line_callback, _parser_file_callback, NULL);59file = elm_code_file_open(code, path);60
61ck_assert_int_eq(4, line_calls);62ck_assert_int_eq(1, file_calls);63
64elm_code_file_close(file);65elm_code_free(code);66elm_shutdown();67}
68EFL_END_TEST
69
70EFL_START_TEST(elm_code_parse_todo_test)71{
72Elm_Code *code;73Elm_Code_File *file;74Elm_Code_Line *line;75
76char *args[] = { "exe" };77elm_init(1, args);78code = elm_code_create();79elm_code_parser_standard_add(code, ELM_CODE_PARSER_STANDARD_TODO);80file = elm_code_file_new(code);81
82elm_code_file_line_append(file, "xxx TODO line", 13, NULL);83line = elm_code_file_line_get(file, 1);84ck_assert_int_eq(ELM_CODE_STATUS_TYPE_TODO, line->status);85
86elm_code_line_text_set(line, "FIXME too", 9);87ck_assert_int_eq(ELM_CODE_STATUS_TYPE_TODO, line->status);88
89elm_code_line_text_set(line, "TOFIX", 5);90ck_assert_int_eq(ELM_CODE_STATUS_TYPE_DEFAULT, line->status);91elm_shutdown();92}
93EFL_END_TEST
94
95void elm_code_test_parse(TCase *tc)96{
97tcase_add_test(tc, elm_code_parse_hook_memory_test);98tcase_add_test(tc, elm_code_parse_hook_file_test);99tcase_add_test(tc, elm_code_parse_todo_test);100}
101