test_recover_02.sh 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #!/bin/bash
  2. # SPDX-License-Identifier: GPL-2.0
  3. . "$(cd "$(dirname "$0")" && pwd)"/test_common.sh
  4. ERR_CODE=0
  5. ublk_run_recover_test()
  6. {
  7. run_io_and_recover 256M "kill_daemon" "$@"
  8. ERR_CODE=$?
  9. if [ ${ERR_CODE} -ne 0 ]; then
  10. echo "$TID failure: $*"
  11. _show_result $TID $ERR_CODE
  12. fi
  13. }
  14. if ! _have_program fio; then
  15. exit "$UBLK_SKIP_CODE"
  16. fi
  17. if ! _have_feature "ZERO_COPY"; then
  18. exit "$UBLK_SKIP_CODE"
  19. fi
  20. _prep_test "recover" "basic recover function verification (zero copy)"
  21. _create_backfile 0 256M
  22. _create_backfile 1 128M
  23. _create_backfile 2 128M
  24. ublk_run_recover_test -t null -q 2 -r 1 -z -b &
  25. ublk_run_recover_test -t loop -q 2 -r 1 -z -b "${UBLK_BACKFILES[0]}" &
  26. ublk_run_recover_test -t stripe -q 2 -r 1 -z -b "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" &
  27. wait
  28. ublk_run_recover_test -t null -q 2 -r 1 -z &
  29. ublk_run_recover_test -t loop -q 2 -r 1 -z "${UBLK_BACKFILES[0]}" &
  30. ublk_run_recover_test -t stripe -q 2 -r 1 -z "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" &
  31. wait
  32. ublk_run_recover_test -t null -q 2 -r 1 -z -i 1 &
  33. ublk_run_recover_test -t loop -q 2 -r 1 -z -i 1 "${UBLK_BACKFILES[0]}" &
  34. ublk_run_recover_test -t stripe -q 2 -r 1 -z -i 1 "${UBLK_BACKFILES[1]}" "${UBLK_BACKFILES[2]}" &
  35. wait
  36. _cleanup_test "recover"
  37. _show_result $TID $ERR_CODE