Задать вопрос
@AHMED_RAPIRA

Можно ли во время теста в Cargo подставлять другие rustflags?

Сейчас у меня имеется .cargo/config.toml :

[build]
target = "wasm32-unknown-unknown"

[target.wasm32-unknown-unknown]
rustflags = [
 ...
]


Проблема в том, что в rustflags содержатся флаги, ломающие мои юнит-тесты. Я хочу их для юнит тестов сбросить. В самом коде разделение на юнит-тесты и обычную сборку я сделал через cfg feature cfg(feature = "...") , но на уровне config.toml такая конструкция с feature не работает.

# не сработает так

[target.'cfg(feature = "...")']
rustflags = [...]


Есть ли какой-то другой способ переопределить rustflags для тестирования?
  • Вопрос задан
  • 143 просмотра
Подписаться 3 Средний 4 комментария
Решения вопроса 1
@AHMED_RAPIRA Автор вопроса
вообщем есть такое решение, которое позволяет подставлять rustflags в зависимости от profile:
https://github.com/rust-lang/cargo/pull/10217

в целом можно выкрутиться с таким решением, но сейчас оно доступно только для nightly сборки. опять тупик какой-то

я сделал костыль: удалил config.toml и создал от него два конфига - один для сборки с rustflags, а другой для тестов без них. затем написал shell скрипт, который в зависимости от сборки или тестирования копирует нужный конфиг в виде файла config.toml, а сам config.toml занес в .gitignore

пока живу с таким решением, в целом все это печально
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы