skeleton.test 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. #!/bin/bash
  2. [ -f testing.sh ] && . testing.sh
  3. #testing "name" "command" "result" "infile" "stdin"
  4. # This is basically a test of lib/args.c argument parsing
  5. out() { printf 'Ran skeleton\n%sOther globals should start zeroed: 0' "$@";}
  6. testcmd "baseline " "" "$(out '')\n" "" ""
  7. testcmd "unknown" "-z |& grep -o Unknown" "Unknown\n" "" ""
  8. testcmd "passthrough args" "bingeley bongeley beep" \
  9. "$(out 'optarg=bingeley\noptarg=bongeley\noptarg=beep\n')\n" "" ""
  10. testcmd "" "-a" "$(out 'flags=1\nSaw a\n')\n" "" ""
  11. testcmd "" "-b |& grep -o Missing" "Missing\n" "" ""
  12. testcmd "" "-b abc" "$(out 'flags=2\nb=abc\n')\n" "" ""
  13. testcmd "" "-c nondigit |& grep -o integer" "integer\n" "" ""
  14. testcmd "" "-c 123" "$(out 'flags=4\nc=123\n')\n" "" ""
  15. testcmd "" "-c 1m" "$(out 'flags=4\nc=1048576\n')\n" "" ""
  16. testcmd "" "-d one -d two -d 3,4" "$(out 'flags=8\nd=one\nd=two\nd=3,4\n')\n" \
  17. "" ""
  18. testcmd "" "-e" "$(out 'flags=10\ne was seen 1 times\n')\n" "" ""
  19. testcmd "" "-ee -e -ae" "$(out 'flags=11\nSaw a\ne was seen 4 times\n')\n" \
  20. "" ""
  21. testcmd "mixed" "123 -c 456 789" \
  22. "$(out 'flags=4\nc=456\noptarg=123\noptarg=789\n')\n" "" ""
  23. # ala date -I
  24. testcmd "':;' short attached" "-fabc" "$(out 'flags=20\nf=abc\n')\n" "" ""
  25. testcmd "':;' short detached" "-f abc" "$(out 'flags=20\noptarg=abc\n')\n" "" ""
  26. testcmd "':;' long" "--lo abc" "$(out 'flags=20\noptarg=abc\n')\n" "" ""
  27. testcmd "':;' long=x" "--long=abc" "$(out 'flags=20\nf=abc\n')\n" "" ""
  28. testcmd "':;' long=" "--long=" "$(out 'flags=20\nf=\n')\n" "" ""
  29. testcmd "':;' long detached" "--long abc" "$(out 'flags=20\noptarg=abc\n')\n" "" ""
  30. # ala kill -stop
  31. testcmd "': ' short attached" "-gabc 2>/dev/null || echo yup" "yup\n" "" ""
  32. testcmd "': ' short detached" "-g abc" "$(out 'flags=40\ng=abc\n')\n" "" ""
  33. testcmd "': ' long" "--glong abc" "$(out 'flags=40\ng=abc\n')\n" "" ""
  34. testcmd "': ' long=x" "--gl=abc" "$(out 'flags=40\ng=abc\n')\n" "" ""
  35. testcmd "': ' long=" "--gl=" "$(out 'flags=40\ng=\n')\n" "" ""
  36. # ala unshare -fim
  37. testcmd "':; ' short attached" "-habc" "$(out 'flags=83\nSaw a\nb=c\n')\n" "" ""
  38. testcmd "':; ' short detached" "-h abc" "$(out 'flags=80\noptarg=abc\n')\n" "" ""
  39. testcmd "':; ' long=x" "--h=abc" "$(out 'flags=80\nh=abc\n')\n" "" ""
  40. testcmd "':; ' long=" "--h=" "$(out 'flags=80\nh=\n')\n" "" ""
  41. testcmd "':; ' long detached" "--hlong abc" "$(out 'flags=80\noptarg=abc\n')\n" "" ""