/test/lib/cli/test_cli_06.e

http://github.com/tybor/Liberty · Specman e · 58 lines · 46 code · 9 blank · 3 comment · 1 complexity · f5b5d412a08fe2f4a0efee4c4355de22 MD5 · raw file

  1. class TEST_CLI_06
  2. insert
  3. ARGUMENTS
  4. EIFFELTEST_TOOLS
  5. COMMAND_LINE_ARGUMENT_FACTORY
  6. create {}
  7. make
  8. feature {}
  9. make
  10. local
  11. verbose_option: COMMAND_LINE_TYPED_ARGUMENT[INTEGER]
  12. arg1: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  13. arg2: COMMAND_LINE_TYPED_ARGUMENT[FIXED_STRING]
  14. do
  15. verbose_option := option_counter("v", "verbose", "The verbose option, set more than once for increased verbosity")
  16. arg1 := positional_string("arg1", "The first positional parameter")
  17. arg2 := positional_string("arg2", "The second positional parameter")
  18. create args.make(verbose_option and arg1 and arg2)
  19. -- an empty command line is not valid
  20. setup
  21. assert(not args.parse_command_line)
  22. -- an option alone is not valid
  23. setup
  24. command_arguments.add_last("--verbose")
  25. assert(not args.parse_command_line)
  26. -- check mixed verbosity levels
  27. setup
  28. command_arguments.add_last("first arg")
  29. command_arguments.add_last("-v")
  30. command_arguments.add_last("second arg")
  31. assert(args.parse_command_line)
  32. assert(arg1.item.is_equal("first arg"))
  33. assert(arg2.item.is_equal("second arg"))
  34. assert(verbose_option.item = 1)
  35. setup
  36. command_arguments.add_last("first arg")
  37. command_arguments.add_last("-vv")
  38. command_arguments.add_last("second arg")
  39. assert(args.parse_command_line)
  40. assert(arg1.item.is_equal("first arg"))
  41. assert(arg2.item.is_equal("second arg"))
  42. assert(verbose_option.item = 2)
  43. end
  44. setup
  45. do
  46. command_arguments.make(1)
  47. end
  48. args: COMMAND_LINE_ARGUMENTS
  49. end