#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% -> дизайн всегда является компромиссом.