/test/lib/cli/test_cli_08.e

http://github.com/tybor/Liberty · Specman e · 330 lines · 311 code · 11 blank · 8 comment · 0 complexity · acd6729a12802eab06414b88f3343736 MD5 · raw file

  1. class TEST_CLI_08
  2. --
  3. -- Same as TEST_CLI_02 with the special "remaining_parameters" to parse
  4. --
  5. insert
  6. ARGUMENTS
  7. EIFFELTEST_TOOLS
  8. COMMAND_LINE_ARGUMENT_FACTORY
  9. create {}
  10. make
  11. feature {}
  12. make
  13. local
  14. foo_option: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  15. bar_option: COMMAND_LINE_TYPED_ARGUMENT[INTEGER]
  16. do
  17. foo_option := option_string("f", "foo", "foo", "The foo string")
  18. bar_option := option_integer("b", "bar", "bar", "The bar integer")
  19. create args.make(foo_option and bar_option and remaining_parameters)
  20. -- an empty command line is valid
  21. setup
  22. command_arguments.add_last(once "--")
  23. command_arguments.add_last(once "--foo=ignored")
  24. command_arguments.add_last(once "--bar")
  25. command_arguments.add_last(once "oh well")
  26. assert(args.parse_command_line)
  27. assert(remaining_parameters.item.count = 3)
  28. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  29. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  30. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  31. -- a foo option takes a string
  32. setup
  33. command_arguments.add_last("--foo")
  34. command_arguments.add_last(once "--")
  35. command_arguments.add_last(once "--foo=ignored")
  36. command_arguments.add_last(once "--bar")
  37. command_arguments.add_last(once "oh well")
  38. assert(not args.parse_command_line)
  39. setup
  40. command_arguments.add_last("--foo")
  41. command_arguments.add_last("the foo option")
  42. command_arguments.add_last(once "--")
  43. command_arguments.add_last(once "--foo=ignored")
  44. command_arguments.add_last(once "--bar")
  45. command_arguments.add_last(once "oh well")
  46. assert(args.parse_command_line)
  47. assert(foo_option.item.is_equal("the foo option"))
  48. assert(remaining_parameters.item.count = 3)
  49. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  50. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  51. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  52. setup
  53. command_arguments.add_last("--foo=the foo option")
  54. command_arguments.add_last(once "--")
  55. command_arguments.add_last(once "--foo=ignored")
  56. command_arguments.add_last(once "--bar")
  57. command_arguments.add_last(once "oh well")
  58. assert(args.parse_command_line)
  59. assert(foo_option.item.is_equal("the foo option"))
  60. assert(remaining_parameters.item.count = 3)
  61. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  62. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  63. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  64. setup
  65. command_arguments.add_last("-f")
  66. command_arguments.add_last(once "--")
  67. command_arguments.add_last(once "--foo=ignored")
  68. command_arguments.add_last(once "--bar")
  69. command_arguments.add_last(once "oh well")
  70. assert(not args.parse_command_line)
  71. setup
  72. command_arguments.add_last("-f")
  73. command_arguments.add_last("the foo option")
  74. command_arguments.add_last(once "--")
  75. command_arguments.add_last(once "--foo=ignored")
  76. command_arguments.add_last(once "--bar")
  77. command_arguments.add_last(once "oh well")
  78. assert(args.parse_command_line)
  79. assert(foo_option.item.is_equal("the foo option"))
  80. assert(remaining_parameters.item.count = 3)
  81. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  82. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  83. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  84. -- a bar option takes an integer
  85. setup
  86. command_arguments.add_last("--bar")
  87. command_arguments.add_last(once "--")
  88. command_arguments.add_last(once "--foo=ignored")
  89. command_arguments.add_last(once "--bar")
  90. command_arguments.add_last(once "oh well")
  91. assert(not args.parse_command_line)
  92. setup
  93. command_arguments.add_last("--bar")
  94. command_arguments.add_last("the foo option")
  95. command_arguments.add_last(once "--")
  96. command_arguments.add_last(once "--foo=ignored")
  97. command_arguments.add_last(once "--bar")
  98. command_arguments.add_last(once "oh well")
  99. assert(not args.parse_command_line)
  100. setup
  101. command_arguments.add_last("--bar")
  102. command_arguments.add_last("42")
  103. command_arguments.add_last(once "--")
  104. command_arguments.add_last(once "--foo=ignored")
  105. command_arguments.add_last(once "--bar")
  106. command_arguments.add_last(once "oh well")
  107. assert(args.parse_command_line)
  108. assert(bar_option.item = 42)
  109. assert(remaining_parameters.item.count = 3)
  110. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  111. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  112. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  113. setup
  114. command_arguments.add_last("--bar=42")
  115. command_arguments.add_last(once "--")
  116. command_arguments.add_last(once "--foo=ignored")
  117. command_arguments.add_last(once "--bar")
  118. command_arguments.add_last(once "oh well")
  119. assert(args.parse_command_line)
  120. assert(bar_option.item = 42)
  121. assert(remaining_parameters.item.count = 3)
  122. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  123. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  124. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  125. setup
  126. command_arguments.add_last("-b")
  127. command_arguments.add_last(once "--")
  128. command_arguments.add_last(once "--foo=ignored")
  129. command_arguments.add_last(once "--bar")
  130. command_arguments.add_last(once "oh well")
  131. assert(not args.parse_command_line)
  132. setup
  133. command_arguments.add_last("-b")
  134. command_arguments.add_last("the foo option")
  135. command_arguments.add_last(once "--")
  136. command_arguments.add_last(once "--foo=ignored")
  137. command_arguments.add_last(once "--bar")
  138. command_arguments.add_last(once "oh well")
  139. assert(not args.parse_command_line)
  140. setup
  141. command_arguments.add_last("-b")
  142. command_arguments.add_last("42")
  143. command_arguments.add_last(once "--")
  144. command_arguments.add_last(once "--foo=ignored")
  145. command_arguments.add_last(once "--bar")
  146. command_arguments.add_last(once "oh well")
  147. assert(args.parse_command_line)
  148. assert(bar_option.item = 42)
  149. assert(remaining_parameters.item.count = 3)
  150. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  151. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  152. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  153. -- can have both foo and bar...
  154. setup
  155. command_arguments.add_last("--foo")
  156. command_arguments.add_last("the foo z'option")
  157. command_arguments.add_last("--bar")
  158. command_arguments.add_last("42")
  159. command_arguments.add_last(once "--")
  160. command_arguments.add_last(once "--foo=ignored")
  161. command_arguments.add_last(once "--bar")
  162. command_arguments.add_last(once "oh well")
  163. assert(args.parse_command_line)
  164. assert(foo_option.item.is_equal("the foo z'option"))
  165. assert(bar_option.item = 42)
  166. assert(remaining_parameters.item.count = 3)
  167. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  168. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  169. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  170. setup
  171. command_arguments.add_last("-f")
  172. command_arguments.add_last("the foo z'option")
  173. command_arguments.add_last("-b")
  174. command_arguments.add_last("42")
  175. command_arguments.add_last(once "--")
  176. command_arguments.add_last(once "--foo=ignored")
  177. command_arguments.add_last(once "--bar")
  178. command_arguments.add_last(once "oh well")
  179. assert(args.parse_command_line)
  180. assert(foo_option.item.is_equal("the foo z'option"))
  181. assert(bar_option.item = 42)
  182. assert(remaining_parameters.item.count = 3)
  183. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  184. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  185. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  186. setup
  187. command_arguments.add_last("-f")
  188. command_arguments.add_last("the foo z'option")
  189. command_arguments.add_last("--bar")
  190. command_arguments.add_last("42")
  191. command_arguments.add_last(once "--")
  192. command_arguments.add_last(once "--foo=ignored")
  193. command_arguments.add_last(once "--bar")
  194. command_arguments.add_last(once "oh well")
  195. assert(args.parse_command_line)
  196. assert(foo_option.item.is_equal("the foo z'option"))
  197. assert(bar_option.item = 42)
  198. assert(remaining_parameters.item.count = 3)
  199. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  200. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  201. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  202. setup
  203. command_arguments.add_last("--foo")
  204. command_arguments.add_last("the foo z'option")
  205. command_arguments.add_last("-b")
  206. command_arguments.add_last("42")
  207. command_arguments.add_last(once "--")
  208. command_arguments.add_last(once "--foo=ignored")
  209. command_arguments.add_last(once "--bar")
  210. command_arguments.add_last(once "oh well")
  211. assert(args.parse_command_line)
  212. assert(foo_option.item.is_equal("the foo z'option"))
  213. assert(bar_option.item = 42)
  214. assert(remaining_parameters.item.count = 3)
  215. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  216. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  217. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  218. setup
  219. command_arguments.add_last("-fb")
  220. command_arguments.add_last("the foo z'option")
  221. command_arguments.add_last("42")
  222. command_arguments.add_last(once "--")
  223. command_arguments.add_last(once "--foo=ignored")
  224. command_arguments.add_last(once "--bar")
  225. command_arguments.add_last(once "oh well")
  226. assert(args.parse_command_line)
  227. assert(foo_option.item.is_equal("the foo z'option"))
  228. assert(bar_option.item = 42)
  229. assert(remaining_parameters.item.count = 3)
  230. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  231. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  232. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  233. -- ... in any order
  234. setup
  235. command_arguments.add_last("--bar")
  236. command_arguments.add_last("42")
  237. command_arguments.add_last("--foo")
  238. command_arguments.add_last("the foo z'option")
  239. command_arguments.add_last(once "--")
  240. command_arguments.add_last(once "--foo=ignored")
  241. command_arguments.add_last(once "--bar")
  242. command_arguments.add_last(once "oh well")
  243. assert(args.parse_command_line)
  244. assert(foo_option.item.is_equal("the foo z'option"))
  245. assert(bar_option.item = 42)
  246. assert(remaining_parameters.item.count = 3)
  247. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  248. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  249. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  250. setup
  251. command_arguments.add_last("-b")
  252. command_arguments.add_last("42")
  253. command_arguments.add_last("-f")
  254. command_arguments.add_last("the foo z'option")
  255. command_arguments.add_last(once "--")
  256. command_arguments.add_last(once "--foo=ignored")
  257. command_arguments.add_last(once "--bar")
  258. command_arguments.add_last(once "oh well")
  259. assert(args.parse_command_line)
  260. assert(foo_option.item.is_equal("the foo z'option"))
  261. assert(bar_option.item = 42)
  262. assert(remaining_parameters.item.count = 3)
  263. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  264. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  265. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  266. setup
  267. command_arguments.add_last("--bar")
  268. command_arguments.add_last("42")
  269. command_arguments.add_last("-f")
  270. command_arguments.add_last("the foo z'option")
  271. command_arguments.add_last(once "--")
  272. command_arguments.add_last(once "--foo=ignored")
  273. command_arguments.add_last(once "--bar")
  274. command_arguments.add_last(once "oh well")
  275. assert(args.parse_command_line)
  276. assert(foo_option.item.is_equal("the foo z'option"))
  277. assert(bar_option.item = 42)
  278. assert(remaining_parameters.item.count = 3)
  279. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  280. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  281. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  282. setup
  283. command_arguments.add_last("-b")
  284. command_arguments.add_last("42")
  285. command_arguments.add_last("--foo")
  286. command_arguments.add_last("the foo z'option")
  287. command_arguments.add_last(once "--")
  288. command_arguments.add_last(once "--foo=ignored")
  289. command_arguments.add_last(once "--bar")
  290. command_arguments.add_last(once "oh well")
  291. assert(args.parse_command_line)
  292. assert(foo_option.item.is_equal("the foo z'option"))
  293. assert(bar_option.item = 42)
  294. assert(remaining_parameters.item.count = 3)
  295. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  296. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  297. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  298. setup
  299. command_arguments.add_last("-bf")
  300. command_arguments.add_last("42")
  301. command_arguments.add_last("the foo z'option")
  302. command_arguments.add_last(once "--")
  303. command_arguments.add_last(once "--foo=ignored")
  304. command_arguments.add_last(once "--bar")
  305. command_arguments.add_last(once "oh well")
  306. assert(args.parse_command_line)
  307. assert(foo_option.item.is_equal("the foo z'option"))
  308. assert(bar_option.item = 42)
  309. assert(remaining_parameters.item.count = 3)
  310. assert(remaining_parameters.item.item(0).is_equal(once "--foo=ignored"))
  311. assert(remaining_parameters.item.item(1).is_equal(once "--bar"))
  312. assert(remaining_parameters.item.item(2).is_equal(once "oh well"))
  313. end
  314. setup
  315. do
  316. command_arguments.make(1)
  317. end
  318. args: COMMAND_LINE_ARGUMENTS
  319. end