Skip to content

Commit

Permalink
Merge pull request #140 from 1c-syntax/feature/opcodes
Browse files Browse the repository at this point in the history
Найти() не должно покрываться
  • Loading branch information
asosnoviy authored Oct 25, 2022
2 parents 85511f7 + e16f370 commit 24a4966
Show file tree
Hide file tree
Showing 4 changed files with 183 additions and 2 deletions.
4 changes: 3 additions & 1 deletion src/main/java/com/clouds42/GlobalCallsFilter.java
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,9 @@ public class GlobalCallsFilter {
"errorinfo",
"информацияобошибке",
"errordescription",
"описаниеошибки"
"описаниеошибки",
"найти",
"find"

);

Expand Down
4 changes: 3 additions & 1 deletion src/main/java/com/clouds42/LinesToCoverage.java
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,9 @@ public class LinesToCoverage {
BSLParser.WhileStatementContext.class,
BSLParser.GlobalMethodCallContext.class,
BSLParser.MethodCallContext.class,
BSLParser.ExecuteStatementContext.class
BSLParser.ExecuteStatementContext.class,
BSLParser.AddHandlerStatementContext.class,
BSLParser.RemoveHandlerStatementContext.class
);

private static final Set<Integer> tokenTypes = Set.of(
Expand Down
16 changes: 16 additions & 0 deletions src/test/java/com/clouds42/LinesToCoverageTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -174,4 +174,20 @@ void FilterTest() throws IOException {

assertThat(linesToCover, equalTo(expected));
}

@Test
void opcodesTest() throws IOException {

var file = new File("src/test/resources/linestocoverage/opcode.bsl");
BSLTokenizer tokenizer = new BSLTokenizer(Files.readString(file.toPath()));

int[] linesToCover = LinesToCoverage.getLines(tokenizer.getAst());

// Реальный замер
// 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
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};

assertThat(linesToCover, equalTo(expected));
}

}
161 changes: 161 additions & 0 deletions src/test/resources/linestocoverage/opcode.bsl
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
Процедура Проверить(Отказ, два = Ложь)

Выполнить
(
"А =
| Цел(1)"
);
А =
СтрДлина("А");
А =
СокрЛ(" А");
А =
СокрП("А ");
А =
СокрЛП(" А ");
А =
Лев("А", 1);
А =
Прав("А", 1);
А =
Сред("А", 1);
А =
Найти("А", "А");
А =
Врег("А");
А =
Нрег("А");
А =
ТРег("А");
А =
Символ(34);
А =
КодСимвола("А");
А =
ПустаяСтрока("А");
А =
Цел(1);
А =
Окр(1);
А =
Булево(1);
А =
Число("1");
А =
Строка(1);
Дата =
Дата(1, 1, 1);
А =
ДобавитьМесяц(Дата, 1);
А =
НачалоМесяца(Дата);
А =
КонецМесяца(Дата);
А =
НачалоКвартала(Дата);
А =
КонецКвартала(Дата);
А =
НачалоГода(Дата);
А =
КонецГода(Дата);
А =
Год(Дата);
А =
Месяц(Дата);
А =
День(Дата);
А =
Час(Дата);
А =
Минута(Дата);
А =
Секунда(Дата);
А =
ДеньГода(Дата);
А =
НеделяГода(Дата);
А =
ДеньНедели(Дата);
А =
НачалоНедели(Дата);
А =
КонецНедели(Дата);
А =
НачалоДня(Дата);
А =
КонецДня(Дата);
А =
НачалоЧаса(Дата);
А =
КонецЧаса(Дата);
А =
НачалоМинуты(Дата);
А =
КонецМинуты(Дата);
А =
ТекущаяДата();
А =
СтрЗаменить("А", "А", "А");
А =
СтрЧислоСтрок("А");
А =
СтрПолучитьСтроку("А", 1);
А =
Мин(1, 1);
А =
Макс(1, 1);
А =
СтрЧислоВхождений("А", "А");
Попытка
ВызватьИсключение "А";
Исключение
А =
ОписаниеОшибки();
А =
ИнформацияОбОшибке();
КонецПопытки;

А =
ТипЗнч(Дата);
А =
Тип("Строка");
А =
Вычислить("1 + 1");
А =
Формат("1", "ДЛФ=Д");
А =
Новый Массив;
А =
ACos(1);
А =
ASin(1);
А =
ATan(1);
А =
Cos(90);
А =
Exp(1);
А =
Log(1);
А =
Log10(1);
А =
Pow(1, 2);
А =
Sin(90);
А =
Sqrt(4);
А =
Tan(90);

ДобавитьОбработчик
Документы.Анкета.СоздатьДокумент().ПриЗаписи,
Проверить;
УдалитьОбработчик
Документы.Анкета.СоздатьДокумент().ПриЗаписи,
Проверить;

КонецПроцедуры

Проверить(Ложь);

0 comments on commit 24a4966

Please sign in to comment.