[О блоге]
[наверх]
[пред]
[2025-10-09 23:02:00+03:00]
[021d6a90d3dfc6c0b812c66f1b4e811a444644fe]
Темы: [keks]
Проверка отсутствия лишних полей в KEKS
KEKS/Schema я написал уже относительно давно. Но только сегодня был
шокирован осознанием того, что у меня не было возможности убедиться
через схемы в том, что в MAP нет лишних полей, за исключением явно
перечисленных, пускай даже и optional. Это вообще поведение по
умолчанию как и в ASN.1, так и в CDDL. И мои команды валидации не
позволяли это проверить.
Добавил команду EXAMINED, которая декрементирует счётчик кол-ва
неучтённых/необработанных полей в MAP. По завершению проверки схемы
напротив MAP-а, он проверяет что равен нулю. Проверка включается только
если хотя бы одна команды EXAMINED была встречена. Соответственно в Tcl
схеме, если не указать "len=~", то EXAMINED команды будут добавляться
после каждого TAKE создаваемого во время выполнения "field" команды
схемы. Иначе EXAMINED не добавляется и проверки на кол-во учтённых полей
не будет.
Для меня на удивление мало кода потребовалось для поддержки этой
команды и вообще проверки.
[оставить комментарий]