forked from aurusov/rdo_studio
-
Notifications
You must be signed in to change notification settings - Fork 0
/
system.test.txt
172 lines (126 loc) · 9.48 KB
/
system.test.txt
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
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
В настоящее время существуют следующие виды тестов для моделей:
1. Тесты на хорошо
2. Тесты на плохо с кодом возврата
3. Тесты на плохо с ошибками компиляции
4. Тесты конвертора
Структура файла проекта тестирования
Файлы тестирования представляет собой проект, описывающий какие действия будут выполняться системой тестирования.
Для системы тестирования РДО файлы тестирования пишутся с использованием XML. Описание файла тестирования .rtestx:
<?xml version="1.0"?>
<test>
<model name="1.rdox" target="CONSOLE" exit_code="0"/>
<etalons>
<file source="1.trc" target="1_etalon.trc" type="TRACE"/>
<file source="1.pmv" target="1_etalon.pmv" type="RESULT"/>
</etalons>
</test>
* <model/> - секция описания модели с опциями:
* name - относительный путь к модели от файла .rtestx
* target - указать цель
* exit_code - код завершения
~ log_compilation - относительный путь к файлу лога компиляции
<etalons/> - секция эталонов с полями:
source - источник
target - цель сравнения
type - тип сравнения
* ЗВЕЗДОЧНОЙ ОТМЕЧЕНЫ ОБЯЗАТЕЛЬНЫЕ ПОЛЯ
Список доступных целей:
CONSOLE
Для разработчиков смотреть в файле scripts/python/executor_of_system_tests.py раздел «test target type»
Список доступных кодов завершения:
RDO_CONSOLE_TERMINATION_NORMAL = 0
RDO_CONSOLE_TERMINATION_WITH_AN_ERROR_NO_MODEL = 1
RDO_CONSOLE_TERMINATION_WITH_AN_ERROR_OPEN_MODEL_ERROR = 2
RDO_CONSOLE_TERMINATION_WITH_AN_ERROR_PARSE_ERROR = 3
RDO_CONSOLE_TERMINATION_WITH_AN_ERROR_RUNTIME_ERROR = 4
Для разработчиков смотреть в файле scripts/python/executor_of_system_tests.py раздел «rdo console exit code»
Список доступных методов сравнения:
FULL - полное сравнение
TRACE - сравнить трассировку
RESULT - сравнить результаты
Для разработчиков смотреть в файле scripts/python/compare.py
-------------------------------------------------------------------------------
Для добавление теста на хорошо необходимо:
1. Написать модель на языке РДО. Формат файла проекта .rdox
2. Провести моделирование на своем компьютере, получив результаты и трассировку
3. Создать текстовый файл с расширением .rtestx и заполнить его по примеру
4. Созданные файлы модели, .rtestx файл проекта и эталоны с результатами нужно переместить в папку в репозитории РДО, назвав ее вменяемо
Пример:
<?xml version="1.0"?>
<test>
<model name="1.rdox" target="CONSOLE" exit_code="0"/>
<etalons>
<file source="1.trc" target="1_etalon.trc" type="TRACE"/>
<file source="1.pmv" target="1_etalon.pmv" type="RESULT"/>
</etalons>
</test>
Особенностью тестов на хорошо является обязательное наличие результатов и трассировки
и другие ...
-------------------------------------------------------------------------------
Для добавления теста на плохо с кодом возврата
1. Написать модель на языке РДО. Формат файла проекта .rdox
2. Провести моделирование на своем компьютере, получив код ошибки
3. Создать текстовый файл с расширением .rtestx и заполнить его по примеру
4. Созданные файлы модели, .rtestx файл проекта нужно переместить в папку в репозитории РДО, назвав ее вменяемо
Пример:
<?xml version="1.0"?>
<test>
<model name="error.rdox" target="CONSOLE" exit_code="4"/>
</test>
Особенностью тестов на плохо является код ошибки. Брать их нужно из раздела «Структура файла проекта тестирования > Список доступных кодов завершения».
-------------------------------------------------------------------------------
Для добавления теста на плохо с ошибками компиляции
1. Написать модель на языке РДО. Формат файла проекта .rdox
2. Провести моделирование на своем компьютере, получив код ошибки
3. Создать текстовый файл с расширением .rtestx и заполнить его по примеру
4. Созданные файлы модели, файл .rlog, .rtestx файл проекта нужно переместить в папку в репозитории РДО, назвав ее вменяемо
Пример:
<?xml version="1.0"?>
<test>
<model name="syntax_error.rdox" target="CONSOLE" exit_code="3" log_compilation="syntax_error.rlog"/>
</test>
Особенностью тестов на плохо является файл с ошибками компиляции.
Файл содержит список ошибок построчно. Пример:
PMD (4): предупреждение: Преобразование 'real' в 'integer', возможна потеря данных
PMD (4): предупреждение: Преобразование 'real' в 'integer', возможна потеря данных
PMD (5): предупреждение: Преобразование 'real' в 'integer', возможна потеря данных
PMD (5): предупреждение: Преобразование 'real' в 'integer', возможна потеря данных
PMD (6): ошибка: Ожидается ключевое слово $End
-------------------------------------------------------------------------------
Для добавления теста конвертора
1. Написать модель на языке РДО. Формат файла проекта .rdox
2. Провести конвертацию и подготовить эталоны
3. Создать текстовый файл с расширением .rtestx и заполнить его по примеру
4. Созданные файлы модели, .rtestx файл проекта и эталоны конвертации нужно переместить в папку в репозитории РДО, назвав ее вменяемо
Пример:
<?xml version="1.0"?>
<test>
<model name="model.smr" target="CONVERTOR" exit_code="0"/>
<etalons>
<file source="model.smr" target="etalons/model.smr" type="FULL"/>
<file source="model.rdox" target="etalons/model.rdox" type="FULL"/>
<file source="model.evn" target="etalons/model.evn" type="FULL"/>
<file source="model.pmd" target="etalons/model.pmd" type="FULL"/>
<file source="model.dpt" target="etalons/model.dpt" type="FULL"/>
<file source="model.fun" target="etalons/model.fun" type="FULL"/>
<file source="model.rss" target="etalons/model.rss" type="FULL"/>
<file source="model.rtp" target="etalons/model.rtp" type="FULL"/>
<file source="model.pat" target="etalons/model.pat" type="FULL"/>
</etalons>
</test>
-------------------------------------------------------------------------------
Пример как расположены файлы проекта тестирования в папке :
evgeny@linux-omzk:~/repository/rdo> ls -l app/rdo_console/examples_of_tests/syntax_error/
итого 44
-rw-r--r-- 1 evgeny users 106 сент. 21 17:10 syntax_error.dpt
-rw-r--r-- 1 evgeny users 292 сент. 21 17:10 syntax_error.evn
-rw-r--r-- 1 evgeny users 151 сент. 21 17:10 syntax_error.fun
-rw-r--r-- 1 evgeny users 548 сент. 21 17:10 syntax_error.pat
-rw-r--r-- 1 evgeny users 414 сент. 21 17:10 syntax_error.pmd
-rw-r--r-- 1 evgeny users 96 сент. 21 17:10 syntax_error.rdox
-rw-r--r-- 1 evgeny users 382 сент. 21 17:10 syntax_error.rlog
-rw-r--r-- 1 evgeny users 128 сент. 21 17:10 syntax_error.rss
-rw-r--r-- 1 evgeny users 230 сент. 21 17:10 syntax_error.rtestx
-rw-r--r-- 1 evgeny users 175 сент. 21 17:10 syntax_error.rtp
-rw-r--r-- 1 evgeny users 164 сент. 21 17:10 syntax_error.smr
(вывод ls -l в bash linux)