мезон: ::1 генерирует УСТАРЕВАНИЕ: «:» не допускается в имени теста, оно было заменено на «_»

#string #testing #meson-build

Вопрос:

У меня есть мезонный тест, который проверяет пинг на ::1

 args = ['-c 1', '::1']
name = 'ping '   ' '.join(args) # 'ping -c1 ::1'
test(name, ping, args : args)
 

meson test генерирует:

 meson.build:94: DEPRECATION: ":" is not allowed in test name "ping -c::1", it has been replaced with "_"
...
1/1 ping -c1 __1            OK             0.02s
 

Но я бы очень хотел напечатать команду, которая выдается, потому что даже meson test -v команда не печатается.

Ответ №1:

Похоже, что у вас версия meson >= 0.56, так как эта проверка/устаревание является результатом >этой фиксации, которая добавляет поддержку запуска тестов подпроекта с использованием синтаксиса с’:’, который отделяет имя подпроекта от имени теста, например:

 meson test subprojectname:testname
 

и поэтому, по-видимому, его необходимо заменить, чтобы избежать неправильного толкования части имени как несуществующего подпроекта (поэтому вы видите только предупреждение об этом, и оно заменено на»_»).

В этом коммите также есть конкретные рассуждения о»:»

 Also forbid ':' in test names. We already forbid this elsewhere, so
should not be a big deal.
 

Итак, ваш вариант-всегда держать мезон ниже 0,56 (я проверил ваш код на своем 0,49, и он работает), что, по-видимому, не очень хорошо, или адаптировать ваше имя теста:

 test('test_ping_loopback', ping, args : args)
 

Комментарии:

1. Спасибо за информацию! Сохранение старой версии недопустимо, потому что это должно быть частью тестирования docker , поскольку это системный инструмент, мы стараемся поддерживать как различные старые, так и новые версии мезонов (трэвис: travis-ci.org/github/iputils/iputils/branches , собираюсь переключиться на действия github из-за ограничения скорости вытягивания). Но наличие такого ограничения-еще одна причина, по которой я не рассматриваю Мезон как хорошую систему сборки. Я мог бы сообщить об ошибке, связанной с этим ограничением.

2. @pevik вполне разумное ограничение, однако, возможность запускать тесты в подпроектах потребуется, скажем, для 30% пользователей, наличие двоеточия в тестах, скажем, для 0,01% -> дизайн всегда является компромиссом.