вопрос по tcl тестированию - PullRequest
1 голос
/ 14 июля 2011

У меня есть вопрос по Tcl, мы используем Tcl для написания тестов для приложений на c и c ++. Я видел несколько тестов Tcl:

if {0} { #START:HELLO1
//some code here
}#END:HELLO1

if {0} { #START:HELLO2
//some code here
}#END:HELLO2

if {0} { #START:HELLO3
//some code here
}#END:HELLO3

Как работает этот код? #START: и #END: что значит? и почему они имеют индекс, такой как:

HELLO1 HELLO2 HELLO3

Может ли кто-нибудь помочь мне в этом?

Ответы [ 3 ]

1 голос
/ 14 июля 2011

Это очень странный код Tcl.Это похоже на синтаксис проприетарного (?) Инструмента тестирования.Можете ли вы дать нам какие-либо другие советы о названии инструмента тестирования?

Как правило, # запускает комментарий (хотя это немного сложнее), а if {0} эффективно предотвращает запуск следующего блока кода.Может быть, ваш инструмент тестирования извлекает код между START и END и запускает его в режиме тестирования, в противном случае код игнорируется?Тем не менее, }# (то есть: без пробелов между ними) обычно выдает синтаксическую ошибку.Вы уверены, что демонстрируете нам, как выглядит код тестирования?

1 голос
/ 14 июля 2011

Это очень странные тесты по терминам Tcl. Если бы они читали так (с дополнительной точкой с запятой):

if {0} { #START:HELLO1
//some code here
};#END:HELLO1

Тогда они будут просто заблокированы кодом, который ничего не делает (буквально; Tcl не будет пытаться сгенерировать код для него, как компилятор C или C ++ вряд ли много сделает для if(0){...}), но версия, которую вы у меня есть только синтаксическая ошибка. За скобками не должно следовать ничего, кроме пробела (если только это не специальный синтаксис {*}, который расширяет подстановку).

Тем не менее, я ожидаю, что тестовый код будет выглядеть примерно так:

doATest "the test name" {
    // Whatever makes the body of the test, in whatever language
}

doATest может игнорировать тест, основанный на некоторой логике, но общий сценарий будет забывать. (Собственный встроенный тестовый комплект Tcl - пакет tcltest - следует этому шаблону с некоторыми дополнительными параметрами для управления такими вещами, как условия, при которых нужно выполнить тест, и ожидаемый результат.)

1 голос
/ 14 июля 2011

Хэши начинают комментарии, но будьте осторожны.

http://wiki.tcl.tk/1669

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...