Как создать список переменных в процессе выполнения и использовать его для постобработки - PullRequest
0 голосов
/ 27 апреля 2019

Мне нужно вызывать субмаки рекурсивно с разными настройками переменных.Во время этого мне нужно составить список переменных настроек.После завершения всех субмейков мне нужно проверить результаты всех субмейков, используя построенный список.

tests:
    echo "Testcase 1 $(testname)..."; \
    $(MAKE) -e TESTCASE=1 guimode=no run > test.tc1.log; \ # must save variable TESTCASE_LIST = {1} or similar
    $(MAKE) -e TESTCASE=2 guimode=no run > test.tc2.log; \ # must append to variable TESTCASE_LIST = {1 2}
    $(MAKE) -e TESTCASE=2 guimode=no run > test.tc3.log; \ # must append to variable TESTCASE_LIST = {1 2 3}
    echo "Completed Tests at time $(realtime) ..."; \
    $(MAKE) check_test_results;  # must run through results of tests 1,2,3 and get data

check_test_results:
    for testcase in $(TESTCASE_LIST); do something; done

1 Ответ

0 голосов
/ 28 апреля 2019

Sub-make является дочерним процессом, поэтому он не может передавать переменные окружения своему родителю.Я предлагаю просто изучить коды выхода и обработать их внутри tests рецепта, вида:

.ONESHELL:
tests:
    $(MAKE) TEST=1 ... && TESTCASE_LIST+=(1)
    $(MAKE) TEST=2 ... && TESTCASE_LIST+=(2)
    ...
    # check results
    echo "Successful tests: $${TESTCASE_LIST[@]}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...