У меня есть проект, который включает в себя некоторые (довольно простые) генерации C-кода в составе системы сборки. В сущности, у меня есть информация о версии, связанная с проектом (встроенный C), который я хочу открыть в своем двоичном формате, так что я могу легко определить, какая версия прошивки была запрограммирована для определенного устройства для целей отладки.Единичный тест C-генерирующий код python
Я пишу некоторые упрощенные инструменты python для этого, и я хочу убедиться, что они тщательно протестированы. В общем, это было довольно просто, но я не уверен, какая лучшая стратегия для части кода. По сути, я хочу, чтобы убедиться, что сгенерированные файлы как:
- синтаксически правильно
- содержат необходимую информацию
Во-вторых, я могу (я считаю) достичь в достаточной степени с регулярное выражение. Первое, однако, является чем-то большим. Я мог бы, вероятно, использовать что-то вроде pycparser и исследовать полученный АСТ для достижения обеих целей, но это похоже на излишне тяжелое решение.
Edit: блок-схема моей иерархии построения
regex не является ответом. –
Не могли бы вы [изменить свой вопрос] (https: // stackoverflow.com/posts/38905560/edit), чтобы включить диаграмму потока данных о том, как части C/Python/binary/codegen совпадают друг с другом, и точно, какой результат этапа вы пытаетесь проверить? Кроме того, пытаетесь ли вы полностью проверить какой-либо аспект вашего процесса сборки или пытаетесь ли вы проверить, прежде чем записывать на Flash, что образ, который вы собираетесь записать, должен содержать информацию, которая должна быть основана на источнике C или Python? (Или что-то еще?) Спасибо! – cxw
@cxw Добавлена основная диаграмма. Это всего лишь единичный тест для генерации кода, поэтому все, о чем я забочусь, это то, что требуемая информация существует в паре заголовка/исходного файла и что пара действительна C (сама по себе не приведет к сбою сборки) –