Как вы проверяете, возвращает ли скомпилированный код ожидаемый результат или не работает, как ожидалось?Лучший способ тестирования скомпилированного кода для возврата ожидаемых результатов/ошибок
Я разработал рабочий пример ниже, но это нелегко растягивается. Для каждого дополнительного теста потребуются дополнительные скобки для вложенности. Конечно, я мог бы разделить это на другие файлы, но есть ли у вас какие-либо предложения по улучшению этого ?. Также я планирую использовать это из make test stanza в make-файле, поэтому я не ожидаю, что другие люди установят что-то, что не установлено по умолчанию, просто для его тестирования. И stdout также должен чередоваться с stderr.
упрощенный пример:
./testFoo || echo execution failed
./testBar && echo expected failure
(./testBaz && (./testBaz 2>&1 | cmp -s - foo.tst && (./testFoo && echo and so on
|| echo testFoo's execution failed)|| echo testBaz's does not match )
|| echo testBaz's execution failed
мой текущий тестер выглядит следующим образом (для одного теста):
\#!/bin/bash
compiler1 $1 && (compiler2 -E --make $(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/') && (./$(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/') || echo execution failed) || less $(echo $1 | sed 's/^\(.\)\(.*\)\..*$/\l\1\2/').err) || echo compile failed
Спасибо за ответ, я буду помнить об этом. В то же время я обнаружил, что munit - тестовая среда makefile, и я проверю, делает ли она то, что я хочу. – Jean