/test/lib/cli/test_cli_02.e

http://github.com/tybor/Liberty · Specman e · 167 lines · 151 code · 11 blank · 5 comment · 0 complexity · 2b434a681b5cb92fe239deee22890c13 MD5 · raw file

  1. class TEST_CLI_02
  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. do
  14. foo_option := option_string("f", "foo", "foo", "The foo string")
  15. bar_option := option_integer("b", "bar", "bar", "The bar integer")
  16. create args.make(foo_option and bar_option)
  17. -- an empty command line is valid
  18. setup
  19. assert(args.parse_command_line)
  20. -- a foo option takes a string
  21. setup
  22. command_arguments.add_last("--foo")
  23. assert(not args.parse_command_line)
  24. setup
  25. command_arguments.add_last("--foo")
  26. command_arguments.add_last("the foo option")
  27. assert(args.parse_command_line)
  28. assert(foo_option.item.is_equal("the foo option"))
  29. setup
  30. command_arguments.add_last("--foo=the foo option")
  31. assert(args.parse_command_line)
  32. assert(foo_option.item.is_equal("the foo option"))
  33. setup
  34. command_arguments.add_last("-f")
  35. assert(not args.parse_command_line)
  36. setup
  37. command_arguments.add_last("-f")
  38. command_arguments.add_last("the foo option")
  39. assert(args.parse_command_line)
  40. assert(foo_option.item.is_equal("the foo option"))
  41. -- a bar option takes an integer
  42. setup
  43. command_arguments.add_last("--bar")
  44. assert(not args.parse_command_line)
  45. setup
  46. command_arguments.add_last("--bar")
  47. command_arguments.add_last("the foo option")
  48. assert(not args.parse_command_line)
  49. setup
  50. command_arguments.add_last("--bar")
  51. command_arguments.add_last("42")
  52. assert(args.parse_command_line)
  53. assert(bar_option.item = 42)
  54. setup
  55. command_arguments.add_last("--bar=42")
  56. assert(args.parse_command_line)
  57. assert(bar_option.item = 42)
  58. setup
  59. command_arguments.add_last("-b")
  60. assert(not args.parse_command_line)
  61. setup
  62. command_arguments.add_last("-b")
  63. command_arguments.add_last("the foo option")
  64. assert(not args.parse_command_line)
  65. setup
  66. command_arguments.add_last("-b")
  67. command_arguments.add_last("42")
  68. assert(args.parse_command_line)
  69. assert(bar_option.item = 42)
  70. -- can have both foo and bar...
  71. setup
  72. command_arguments.add_last("--foo")
  73. command_arguments.add_last("the foo z'option")
  74. command_arguments.add_last("--bar")
  75. command_arguments.add_last("42")
  76. assert(args.parse_command_line)
  77. assert(foo_option.item.is_equal("the foo z'option"))
  78. assert(bar_option.item = 42)
  79. setup
  80. command_arguments.add_last("-f")
  81. command_arguments.add_last("the foo z'option")
  82. command_arguments.add_last("-b")
  83. command_arguments.add_last("42")
  84. assert(args.parse_command_line)
  85. assert(foo_option.item.is_equal("the foo z'option"))
  86. assert(bar_option.item = 42)
  87. setup
  88. command_arguments.add_last("-f")
  89. command_arguments.add_last("the foo z'option")
  90. command_arguments.add_last("--bar")
  91. command_arguments.add_last("42")
  92. assert(args.parse_command_line)
  93. assert(foo_option.item.is_equal("the foo z'option"))
  94. assert(bar_option.item = 42)
  95. setup
  96. command_arguments.add_last("--foo")
  97. command_arguments.add_last("the foo z'option")
  98. command_arguments.add_last("-b")
  99. command_arguments.add_last("42")
  100. assert(args.parse_command_line)
  101. assert(foo_option.item.is_equal("the foo z'option"))
  102. assert(bar_option.item = 42)
  103. setup
  104. command_arguments.add_last("-fb")
  105. command_arguments.add_last("the foo z'option")
  106. command_arguments.add_last("42")
  107. assert(args.parse_command_line)
  108. assert(foo_option.item.is_equal("the foo z'option"))
  109. assert(bar_option.item = 42)
  110. -- ... in any order
  111. setup
  112. command_arguments.add_last("--bar")
  113. command_arguments.add_last("42")
  114. command_arguments.add_last("--foo")
  115. command_arguments.add_last("the foo z'option")
  116. assert(args.parse_command_line)
  117. assert(foo_option.item.is_equal("the foo z'option"))
  118. assert(bar_option.item = 42)
  119. setup
  120. command_arguments.add_last("-b")
  121. command_arguments.add_last("42")
  122. command_arguments.add_last("-f")
  123. command_arguments.add_last("the foo z'option")
  124. assert(args.parse_command_line)
  125. assert(foo_option.item.is_equal("the foo z'option"))
  126. assert(bar_option.item = 42)
  127. setup
  128. command_arguments.add_last("--bar")
  129. command_arguments.add_last("42")
  130. command_arguments.add_last("-f")
  131. command_arguments.add_last("the foo z'option")
  132. assert(args.parse_command_line)
  133. assert(foo_option.item.is_equal("the foo z'option"))
  134. assert(bar_option.item = 42)
  135. setup
  136. command_arguments.add_last("-b")
  137. command_arguments.add_last("42")
  138. command_arguments.add_last("--foo")
  139. command_arguments.add_last("the foo z'option")
  140. assert(args.parse_command_line)
  141. assert(foo_option.item.is_equal("the foo z'option"))
  142. assert(bar_option.item = 42)
  143. setup
  144. command_arguments.add_last("-bf")
  145. command_arguments.add_last("42")
  146. command_arguments.add_last("the foo z'option")
  147. assert(args.parse_command_line)
  148. assert(foo_option.item.is_equal("the foo z'option"))
  149. assert(bar_option.item = 42)
  150. end
  151. setup
  152. do
  153. command_arguments.make(1)
  154. end
  155. args: COMMAND_LINE_ARGUMENTS
  156. end