Я пытаюсь запустить свои тестовые случаи, которые почти 40 КБ с приведенными ниже сценариями.
Просто показываю некоторую часть сценария -
#!/bin/bash
# RUN script
echo "please run with: nice nohup ./run_script"
# working directory where script is stored
WORKING_DIR=$(pwd)
# temp directory to build and run the cmake ctest
BUILD_DIR=${BUILD_DIR:-/localtemp/build}
# clean and make build directory
rm -rf $BUILD_DIR
mkdir -p $BUILD_DIR
mkdir -p $BUILD_DIR/../result
cmake -G Ninja
ninja test
Примечание: я использую параллельную многопоточность для 6 тестов.
При первой попытке все проходят, что верно, так как я исправил все ошибки в своих тестах.
Но когда-нибудь, если я захочу заново запустить тот же самый скрипт, я получаю ошибку при запуске некоторых тестовых случаев из 40k. Но если я запускаю эти неудачные тесты отдельно (по одному), то они проходят отлично.
Итак, я предположил, что rm -rf
требуется некоторое время, чтобы удалить этот старый двоичный файл и символы всех случаев (файлы 40 ГБ). поэтому мне нужно дождаться полного удаления, а затем снова запустить мой скрипт. Поэтому я должен добавить некоторую задержку после команды rm -rf
в моем скрипте.
Я где-то читал, что rm -rf
вернет статус, когда он завершит работу. Затем будет выполняться только следующая команда. Но мой scnerio выглядит так, как будто он показывает, что rm -rf
работает в фоновом режиме.
Означает, что я не должен начинать новый запуск немедленно, когда я остановил предыдущий запуск. Мне нужно дать некоторое время, чтобы удалить старый вывод из более раннего запуска, используя команду rm -rf
в скрипте (задержка введения) и после этого запустить мою команду ниже ninja. Это правда?