1# bash completion for ctest(1) -*- shell-script -*- 2 3_ctest() 4{ 5 local cur prev words cword 6 if type -t _init_completion >/dev/null; then 7 _init_completion -n = || return 8 else 9 # manual initialization for older bash completion versions 10 COMPREPLY=() 11 cur="${COMP_WORDS[COMP_CWORD]}" 12 prev="${COMP_WORDS[COMP_CWORD-1]}" 13 fi 14 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 76 --help-command) 77 COMPREPLY=( $( compgen -W '$( ctest --help-command-list 2>/dev/null| 78 grep -v "^ctest version " )' -- "$cur" ) ) 79 return 80 ;; 81 --help-manual) 82 COMPREPLY=( $( compgen -W '$( ctest --help-manual-list 2>/dev/null| 83 grep -v "^ctest version " | sed -e "s/([0-9])$//" )' -- "$cur" ) ) 84 return 85 ;; 86 --help-module) 87 COMPREPLY=( $( compgen -W '$( ctest --help-module-list 2>/dev/null| 88 grep -v "^ctest version " )' -- "$cur" ) ) 89 return 90 ;; 91 --help-policy) 92 COMPREPLY=( $( compgen -W '$( ctest --help-policy-list 2>/dev/null | 93 grep -v "^ctest version " )' -- "$cur" ) ) 94 return 95 ;; 96 --help-property) 97 COMPREPLY=( $( compgen -W '$( ctest --help-property-list \ 98 2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) ) 99 return 100 ;; 101 --help-variable) 102 COMPREPLY=( $( compgen -W '$( ctest --help-variable-list \ 103 2>/dev/null | grep -v "^ctest version " )' -- "$cur" ) ) 104 return 105 ;; 106 esac 107 108 if [[ "$cur" == -* ]]; then 109 COMPREPLY=( $(compgen -W '$( _parse_help "$1" --help )' -- ${cur}) ) 110 [[ $COMPREPLY == *= ]] && compopt -o nospace 111 [[ $COMPREPLY ]] && return 112 fi 113 114 _filedir 115} && 116complete -F _ctest ctest 117 118# ex: ts=4 sw=4 et filetype=sh 119