/
solidbase
/
C2_SimpleBashUtils
Обзор
Документация
Войти
/
solidbase
/
C2_SimpleBashUtils
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
develop
src/cat/tests/run_cat_tests.sh
88 строк
2 KB
Dmitrii Isaev
refactor(cat): decompose process.c according to structural programming principles
02 дек 2025, 10:19
02 дек 2025, 10:19
9065e1b
Код
Авторство
О чём код?
#!/usr/bin/env bash S21_CAT=./s21_cat SYS_CAT=gcat TEST_DIR=./tests TMP_DIR=./tmp mkdir -p "${TMP_DIR}" FLAGS_LIST=( "" "-n" "--number" "-b" "--number-nonblank" "-s" "--squeeze-blank" "-e" "-t" "-E" "-T" "-v" "--number --squeeze-blank" "-n -s" "-b -s" "-b -n" "-e -v" "-t -v" "-e -t" "-E -T" ) FILES_LIST=( "${TEST_DIR}/file1.txt" "${TEST_DIR}/file2.txt" "${TEST_DIR}/file1.txt ${TEST_DIR}/file2.txt" "${TEST_DIR}/blank_lines.txt" "${TEST_DIR}/nonprintable.txt" ) failures=0 test_id=0 run_test() { local flags="$1" local files="$2" test_id=$((test_id + 1)) local label="case_${test_id}" local my_out="${TMP_DIR}/cat_${test_id}.out" local my_err="${TMP_DIR}/cat_${test_id}.err" local ref_out="${TMP_DIR}/cat_${test_id}_ref.out" local ref_err="${TMP_DIR}/cat_${test_id}_ref.err" echo "Test ${test_id}: [${flags}] [${files}]" # shellcheck disable=SC2086 ${S21_CAT} ${flags} ${files} >"${my_out}" 2>"${my_out}.err" || true # shellcheck disable=SC2086 ${SYS_CAT} ${flags} ${files} >"${ref_out}" 2>"${ref_out}.err" || true if ! diff -u "${ref_out}" "${my_out}" >/dev/null; then echo " RESULT: FAIL (output mismatch)" failures=$((failures + 1)) else echo " RESULT: OK" fi echo } for flags in "${FLAGS_LIST[@]}"; do for files in "${FILES_LIST[@]}"; do run_test "${flags}" "${files}" done done run_test "" "no_such_file.txt" run_test "-n" "no_such_file.txt" if [ "${failures}" -eq 0 ]; then echo "All tests passed." exit 0 else echo "${failures} test(s) failed." exit 1 fi