logo

utils-std

Collection of commonly available Unix tools git clone https://anongit.hacktivis.me/git/utils-std.git/

time.sh (942B)


  1. #!/bin/sh
  2. # SPDX-FileCopyrightText: 2017 Haelwenn (lanodan) Monnier <contact+utils@hacktivis.me>
  3. # SPDX-License-Identifier: MPL-2.0
  4. plans=6
  5. WD="$(dirname "$0")/../"
  6. target="${WD}/cmd/time"
  7. . "${WD}/test-cmd/tap.sh"
  8. usage='Usage: time [-p|-v] command [argument ...]
  9. '
  10. t noargs '' "$usage"
  11. t --exit=1 erropt '-f' "\
  12. time: error: Unrecognised option: '-f'
  13. $usage"
  14. time_fmt() {
  15. out=$(mktemp time_fmt.XXXXXX)
  16. "$target" "$@" 2> "$out"
  17. err=$?
  18. cut -f1 -d '.' <"$out"
  19. rm -f "$out"
  20. return $err
  21. }
  22. time_zeroes="\
  23. real 0
  24. user 0
  25. sys 0
  26. "
  27. t_cmd --exit=1 false "$time_zeroes" time_fmt false
  28. t_cmd true "$time_zeroes" time_fmt true
  29. t_cmd sleep_1 'real 1
  30. user 0
  31. sys 0
  32. ' time_fmt "${WD}/cmd/sleep" 1
  33. if test "NetBSD" = "$(uname -s)"; then
  34. t_skip "# NetBSD somehow doesn't returns ENOENT there, just errno = 0"
  35. else
  36. t --exit=127 enoent '/var/empty/e/no/ent' "\
  37. time: error: Failed executing '/var/empty/e/no/ent': No such file or directory
  38. "
  39. fi