ctest 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. # bash completion for ctest(1) -*- shell-script -*-
  2. _ctest()
  3. {
  4. local cur prev words cword
  5. if type -t _comp_initialize >/dev/null; then
  6. _comp_initialize -n = || return
  7. elif type -t _init_completion >/dev/null; then
  8. _init_completion -n = || return
  9. else
  10. # manual initialization for older bash completion versions
  11. COMPREPLY=()
  12. cur="${COMP_WORDS[COMP_CWORD]}"
  13. prev="${COMP_WORDS[COMP_CWORD-1]}"
  14. fi
  15. case "$prev" in
  16. -C|--build-config)
  17. COMPREPLY=( $( compgen -W 'Debug Release RelWithDebInfo
  18. MinSizeRel' -- "$cur" ) )
  19. return
  20. ;;
  21. -j|--parallel)
  22. COMPREPLY=( $( compgen -W "{1..$(( $(_ncpus)*2 ))}" -- "$cur" ) )
  23. return
  24. ;;
  25. -O|--output-log|-A|--add-notes|--extra-submit)
  26. _filedir
  27. return
  28. ;;
  29. -L|--label-regex|-LE|--label-exclude)
  30. COMPREPLY=( $( compgen -W '$( ctest --print-labels 2>/dev/null |
  31. grep "^ " 2>/dev/null | cut -d" " -f 3 )' -- "$cur" ) )
  32. return
  33. ;;
  34. --track|-I|--tests-information|--max-width|--timeout|--stop-time)
  35. # argument required but no completions available
  36. return
  37. ;;
  38. -R|--tests-regex|-E|--exclude-regex)
  39. COMPREPLY=( $( compgen -W '$( ctest -N 2>/dev/null |
  40. grep "^ Test" 2>/dev/null | cut -d: -f 2 )' -- "$cur" ) )
  41. return
  42. ;;
  43. -D|--dashboard)
  44. if [[ $cur == @(Experimental|Nightly|Continuous)* ]]; then
  45. local model action
  46. action=${cur#@(Experimental|Nightly|Continuous)}
  47. model=${cur%"$action"}
  48. COMPREPLY=( $( compgen -W 'Start Update Configure Build Test
  49. Coverage Submit MemCheck' -P "$model" -- "$action" ) )
  50. else
  51. COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' \
  52. -- "$cur" ) )
  53. compopt -o nospace
  54. fi
  55. return
  56. ;;
  57. -M|--test-model)
  58. COMPREPLY=( $( compgen -W 'Experimental Nightly Continuous' -- \
  59. "$cur" ) )
  60. return
  61. ;;
  62. -T|--test-action)
  63. COMPREPLY=( $( compgen -W 'Start Update Configure Build Test
  64. Coverage Submit MemCheck' -- "$cur" ) )
  65. return
  66. ;;
  67. -S|--script|-SP|--script-new-process)
  68. _filedir '@(cmake|ctest)'
  69. return
  70. ;;
  71. --interactive-debug-mode)
  72. COMPREPLY=( $( compgen -W '0 1' -- "$cur" ) )
  73. return
  74. ;;
  75. --help-command)
  76. COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null|
  77. grep -v "^ctest version " )' -- "$cur" ) )
  78. return
  79. ;;
  80. --help-manual)
  81. COMPREPLY=( $( compgen -W '$( ctest --help-manual-list 2>/dev/null|
  82. grep -v "^ctest version " | sed -e "s/([0-9])$//" )' -- "$cur" ) )
  83. return
  84. ;;
  85. --help-module)
  86. COMPREPLY=( $( compgen -W '$( ctest --help-module-list 2>/dev/null|
  87. grep -v "^ctest version " )' -- "$cur" ) )
  88. return
  89. ;;
  90. --help-policy)
  91. COMPREPLY=( $( compgen -W '$( ctest --help-policy-list 2>/dev/null |
  92. grep -v "^ctest version " )' -- "$cur" ) )
  93. return
  94. ;;
  95. --help-property)
  96. COMPREPLY=( $( compgen -W '$( ctest --help-property-list \
  97. 2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) )
  98. return
  99. ;;
  100. --help-variable)
  101. COMPREPLY=( $( compgen -W '$( ctest --help-variable-list \
  102. 2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) )
  103. return
  104. ;;
  105. --preset)
  106. local IFS=$'\n'
  107. local quoted
  108. printf -v quoted %q "$cur"
  109. COMPREPLY=( $( compgen -W '$( ctest --list-presets 2>/dev/null |
  110. grep -o "^ \".*\"" | sed \
  111. -e "s/^ //g" \
  112. -e "s/\"//g" \
  113. -e "s/ /\\\\ /g" )' -- "$quoted" ) )
  114. return
  115. ;;
  116. esac
  117. if [[ "$cur" == -* ]]; then
  118. COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) )
  119. [[ $COMPREPLY == *= ]] && compopt -o nospace
  120. [[ $COMPREPLY ]] && return
  121. fi
  122. _filedir
  123. } &&
  124. complete -F _ctest ctest
  125. # ex: ts=4 sw=4 et filetype=sh