Skip to content

Commit 24a4966

Browse files
authored
Merge pull request #140 from 1c-syntax/feature/opcodes
Найти() не должно покрываться
2 parents 85511f7 + e16f370 commit 24a4966

4 files changed

Lines changed: 183 additions & 2 deletions

File tree

src/main/java/com/clouds42/GlobalCallsFilter.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -153,7 +153,9 @@ public class GlobalCallsFilter {
153153
"errorinfo",
154154
"информацияобошибке",
155155
"errordescription",
156-
"описаниеошибки"
156+
"описаниеошибки",
157+
"найти",
158+
"find"
157159

158160
);
159161

src/main/java/com/clouds42/LinesToCoverage.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,9 @@ public class LinesToCoverage {
4848
BSLParser.WhileStatementContext.class,
4949
BSLParser.GlobalMethodCallContext.class,
5050
BSLParser.MethodCallContext.class,
51-
BSLParser.ExecuteStatementContext.class
51+
BSLParser.ExecuteStatementContext.class,
52+
BSLParser.AddHandlerStatementContext.class,
53+
BSLParser.RemoveHandlerStatementContext.class
5254
);
5355

5456
private static final Set<Integer> tokenTypes = Set.of(

src/test/java/com/clouds42/LinesToCoverageTest.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,4 +174,20 @@ void FilterTest() throws IOException {
174174

175175
assertThat(linesToCover, equalTo(expected));
176176
}
177+
178+
@Test
179+
void opcodesTest() throws IOException {
180+
181+
var file = new File("src/test/resources/linestocoverage/opcode.bsl");
182+
BSLTokenizer tokenizer = new BSLTokenizer(Files.readString(file.toPath()));
183+
184+
int[] linesToCover = LinesToCoverage.getLines(tokenizer.getAst());
185+
186+
// Реальный замер
187+
// 10, 8, 3, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 152, 153, 155, 156, 159, 161
188+
var expected = new int[]{3, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108, 111, 113, 115, 117, 119, 121, 123, 125, 127, 129, 131, 133, 135, 137, 139, 141, 143, 145, 147, 149, 152, 153, 155, 156, 159, 161};
189+
190+
assertThat(linesToCover, equalTo(expected));
191+
}
192+
177193
}
Lines changed: 161 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,161 @@
1+
Процедура Проверить(Отказ, два = Ложь)
2+
3+
Выполнить
4+
(
5+
"А =
6+
| Цел(1)"
7+
);
8+
А =
9+
СтрДлина("А");
10+
А =
11+
СокрЛ(" А");
12+
А =
13+
СокрП("А ");
14+
А =
15+
СокрЛП(" А ");
16+
А =
17+
Лев("А", 1);
18+
А =
19+
Прав("А", 1);
20+
А =
21+
Сред("А", 1);
22+
А =
23+
Найти("А", "А");
24+
А =
25+
Врег("А");
26+
А =
27+
Нрег("А");
28+
А =
29+
ТРег("А");
30+
А =
31+
Символ(34);
32+
А =
33+
КодСимвола("А");
34+
А =
35+
ПустаяСтрока("А");
36+
А =
37+
Цел(1);
38+
А =
39+
Окр(1);
40+
А =
41+
Булево(1);
42+
А =
43+
Число("1");
44+
А =
45+
Строка(1);
46+
Дата =
47+
Дата(1, 1, 1);
48+
А =
49+
ДобавитьМесяц(Дата, 1);
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+
СтрПолучитьСтроку("А", 1);
104+
А =
105+
Мин(1, 1);
106+
А =
107+
Макс(1, 1);
108+
А =
109+
СтрЧислоВхождений("А", "А");
110+
Попытка
111+
ВызватьИсключение "А";
112+
Исключение
113+
А =
114+
ОписаниеОшибки();
115+
А =
116+
ИнформацияОбОшибке();
117+
КонецПопытки;
118+
119+
А =
120+
ТипЗнч(Дата);
121+
А =
122+
Тип("Строка");
123+
А =
124+
Вычислить("1 + 1");
125+
А =
126+
Формат("1", "ДЛФ=Д");
127+
А =
128+
Новый Массив;
129+
А =
130+
ACos(1);
131+
А =
132+
ASin(1);
133+
А =
134+
ATan(1);
135+
А =
136+
Cos(90);
137+
А =
138+
Exp(1);
139+
А =
140+
Log(1);
141+
А =
142+
Log10(1);
143+
А =
144+
Pow(1, 2);
145+
А =
146+
Sin(90);
147+
А =
148+
Sqrt(4);
149+
А =
150+
Tan(90);
151+
152+
ДобавитьОбработчик
153+
Документы.Анкета.СоздатьДокумент().ПриЗаписи,
154+
Проверить;
155+
УдалитьОбработчик
156+
Документы.Анкета.СоздатьДокумент().ПриЗаписи,
157+
Проверить;
158+
159+
КонецПроцедуры
160+
161+
Проверить(Ложь);

0 commit comments

Comments
 (0)