/test/lib/cli/test_cli_05.e

http://github.com/tybor/Liberty · Specman e · 90 lines · 74 code · 11 blank · 5 comment · 0 complexity · 8f57391881386edf1600720466d8171a MD5 · raw file

  1. class TEST_CLI_05
  2. insert
  3. ARGUMENTS
  4. EIFFELTEST_TOOLS
  5. COMMAND_LINE_ARGUMENT_FACTORY
  6. create {}
  7. make
  8. feature {}
  9. make
  10. local
  11. foo_option: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  12. bar_option: COMMAND_LINE_TYPED_ARGUMENT[INTEGER]
  13. arg1: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  14. arg2: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  15. do
  16. foo_option := option_string("f", "foo", "foo", "The foo string")
  17. bar_option := option_integer("b", "bar", "bar", "The bar integer")
  18. arg1 := positional_string("arg1", "The first positional parameter")
  19. arg2 := positional_string("arg2", "The second positional parameter")
  20. create args.make(foo_option and bar_option and arg1 and arg2)
  21. -- positional arguments are mandatory
  22. assert(arg1.is_mandatory)
  23. assert(arg2.is_mandatory)
  24. -- an empty command line is not valid
  25. setup
  26. assert(not args.parse_command_line)
  27. -- an option alone is not valid
  28. setup
  29. command_arguments.add_last("--bar=42")
  30. assert(not args.parse_command_line)
  31. -- must have at least both positional arguments
  32. setup
  33. command_arguments.add_last("first arg")
  34. command_arguments.add_last("second arg")
  35. assert(args.parse_command_line)
  36. assert(arg1.item.is_equal("first arg"))
  37. assert(arg2.item.is_equal("second arg"))
  38. -- options may be freely intermixed
  39. setup
  40. command_arguments.add_last("first arg")
  41. command_arguments.add_last("-bf")
  42. command_arguments.add_last("42")
  43. command_arguments.add_last("the foo z'option")
  44. command_arguments.add_last("second arg")
  45. assert(args.parse_command_line)
  46. assert(arg1.item.is_equal("first arg"))
  47. assert(arg2.item.is_equal("second arg"))
  48. assert(foo_option.item.is_equal("the foo z'option"))
  49. assert(bar_option.item = 42)
  50. setup
  51. command_arguments.add_last("--foo")
  52. command_arguments.add_last("the foo z'option")
  53. command_arguments.add_last("first arg")
  54. command_arguments.add_last("second arg")
  55. command_arguments.add_last("-b")
  56. command_arguments.add_last("42")
  57. assert(args.parse_command_line)
  58. assert(arg1.item.is_equal("first arg"))
  59. assert(arg2.item.is_equal("second arg"))
  60. assert(foo_option.item.is_equal("the foo z'option"))
  61. assert(bar_option.item = 42)
  62. setup
  63. command_arguments.add_last("--foo")
  64. command_arguments.add_last("the foo z'option")
  65. command_arguments.add_last("--bar=42")
  66. command_arguments.add_last("first arg")
  67. command_arguments.add_last("second arg")
  68. assert(args.parse_command_line)
  69. assert(arg1.item.is_equal("first arg"))
  70. assert(arg2.item.is_equal("second arg"))
  71. assert(foo_option.item.is_equal("the foo z'option"))
  72. assert(bar_option.item = 42)
  73. end
  74. setup
  75. do
  76. command_arguments.make(1)
  77. end
  78. args: COMMAND_LINE_ARGUMENTS
  79. end