|
|
|
[PATCH 01/12] tests: add initial bash completion tests | |
| [Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] |
|
Signed-off-by: Felipe Contreras <felipe.contreras@xxxxxxxxx>
---
t/t9902-completion.sh | 201 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 201 insertions(+)
create mode 100755 t/t9902-completion.sh
diff --git a/t/t9902-completion.sh b/t/t9902-completion.sh
new file mode 100755
index 0000000..7eb80dd
--- /dev/null
+++ b/t/t9902-completion.sh
@@ -0,0 +1,201 @@
+#!/bin/sh
+#
+# Copyright (c) 2012 Felipe Contreras
+#
+
+if type bash >/dev/null 2>&1
+then
+ # execute inside bash
+ test -z "$BASH" && exec bash "$0" "$@"
+else
+ echo '1..0 #SKIP skipping bash completion tests; bash not available'
+ exit 0
+fi
+
+test_description='test bash completion'
+
+. ./test-lib.sh
+
+complete ()
+{
+ # do nothing
+ return 0
+}
+
+. "$GIT_BUILD_DIR/contrib/completion/git-completion.bash"
+
+print_comp ()
+{
+ local IFS=$'\n'
+ echo "${COMPREPLY[*]}" > out
+}
+
+_get_comp_words_by_ref ()
+{
+ while [ $# -gt 0 ]; do
+ case "$1" in
+ cur)
+ cur=${_words[_cword]}
+ ;;
+ prev)
+ prev=${_words[_cword-1]}
+ ;;
+ words)
+ words=("${_words[@]}")
+ ;;
+ cword)
+ cword=$_cword
+ ;;
+ esac
+ shift
+ done
+}
+
+test_completion ()
+{
+ local -a COMPREPLY _words
+ local _cword
+ _words=( $1 )
+ test $# -gt 1 && echo "$2" > expected
+ (( _cword = ${#_words[@]} - 1 ))
+ _git && print_comp &&
+ test_cmp expected out
+}
+
+test_expect_success 'basic' '
+ cat >expected <<-\EOF &&
+ help
+ add
+ gc
+ reflog
+ get-tar-commit-id
+ relink
+ grep
+ relink.perl
+ am
+ remote
+ am.sh
+ help
+ annotate
+ apply
+ archimport.perl
+ imap-send
+ archive
+ bisect
+ init
+ repack
+ bisect.sh
+ instaweb
+ repack.sh
+ blame
+ instaweb.sh
+ replace
+ branch
+ log
+ bundle
+ request-pull
+ lost-found.sh
+ request-pull.sh
+ reset
+ checkout
+ cherry
+ revert
+ cherry-pick
+ merge
+ rm
+ clean
+ send-email
+ clone
+ send-email.perl
+ commit
+ config
+ shortlog
+ credential-cache
+ show
+ show-branch
+ credential-store
+ cvsexportcommit.perl
+ stage
+ stash
+ cvsimport.perl
+ stash.sh
+ mergetool
+ status
+ cvsserver.perl
+ mergetool.sh
+ submodule
+ describe
+ submodule.sh
+ diff
+ mv
+ svn
+ name-rev
+ svn.perl
+ notes
+ tag
+ difftool
+ difftool.perl
+ fetch
+ pull
+ pull.sh
+ filter-branch
+ push
+ filter-branch.sh
+ quiltimport.sh
+ format-patch
+ rebase
+ fsck
+ rebase.sh
+ whatchanged
+ cccmd
+ proxy
+ send-pull
+ EOF
+ test_completion "git" &&
+
+ cat >expected <<-\EOF &&
+ help
+ help
+ EOF
+ test_completion "git he"
+
+ cat >expected <<-\EOF &&
+ fetch
+ filter-branch
+ filter-branch.sh
+ format-patch
+ fsck
+ EOF
+ test_completion "git f"
+'
+
+test_expect_success 'double dash' '
+ cat >expected <<-\EOF &&
+ --paginate
+ --no-pager
+ --git-dir=
+ --bare
+ --version
+ --exec-path
+ --html-path
+ --work-tree=
+ --namespace=
+ --help
+ EOF
+ test_completion "git --"
+
+ cat >expected <<-\EOF &&
+ --quiet
+ --ours
+ --theirs
+ --track
+ --no-track
+ --merge
+ --conflict=
+ --orphan
+ --patch
+ EOF
+ test_completion "git checkout --"
+'
+
+test_done
--
1.7.10.3.g5a738d
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
[Newbies FAQ] [Linux Kernel Development] [Free Online Dating] [Gcc Help] [IETF Annouce] [DCCP] [Netdev] [Networking] [Security] [V4L] [Bugtraq] [Free Online Dating] [Photo] [Yosemite] [MIPS Linux] [ARM Linux] [Linux Security] [Linux RAID] [Linux SCSI] [Fedora Users] [Linux Resources]