about summary refs log tree commit diff
path: root/Test/comptest
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>2000-05-17 12:31:32 +0000
committerTanaka Akira <akr@users.sourceforge.net>2000-05-17 12:31:32 +0000
commit20a527fcaa555387a69fe941298d1ab04eccc88b (patch)
tree8ab03f801c116b7e734089ee70145522e1025811 /Test/comptest
parent05d3c175a5f9d1eb7bd8ed5f9c36ff5838ee6b8e (diff)
downloadzsh-20a527fcaa555387a69fe941298d1ab04eccc88b.tar.gz
zsh-20a527fcaa555387a69fe941298d1ab04eccc88b.tar.xz
zsh-20a527fcaa555387a69fe941298d1ab04eccc88b.zip
11441: Test/comptest, Test/53completion.ztst,
Test/54compmatch.ztst: use only one zsh process to test for each
completion test file.
Diffstat (limited to 'Test/comptest')
-rw-r--r--Test/comptest140
1 files changed, 66 insertions, 74 deletions
diff --git a/Test/comptest b/Test/comptest
index 6a37bb15e..0b6962d6e 100644
--- a/Test/comptest
+++ b/Test/comptest
@@ -1,39 +1,34 @@
-#!/usr/local/bin/zsh -f
+comptestinit () {
+  setopt extendedglob
+  [[ -d $ZTST_testdir/Modules/zsh ]] && module_path=( $ZTST_testdir/Modules )
+  fpath=( $ZTST_srcdir/../(Completion|Functions)/*~*/CVS(/) )
 
-[[ -d $ZTST_testdir/Modules/zsh ]] && module_path=( $ZTST_testdir/Modules )
+  zmodload -i zsh/zpty
 
-zmodload -i zsh/zpty
-setopt extendedglob
+  comptest_zsh=${ZSH:-zsh}
+  termcap_ce="$(echotc ce)"
 
-fpath=( $ZTST_srcdir/../(Completion|Functions)/*~*/CVS(/) )
-
-debug=
-dump=(-D)
-code=
-zsh=${ZSH:-zsh}
-termcap_ce="$(echotc ce)"
-
-debug=yes
-while getopts Dd:c:z: opt; do
-  case $opt in
-    D) debug=yes;;
-    d) dump=(-d "$OPTARG");;
-    c) code="$OPTARG";;
-    z) zsh="$OPTARG";;
-  esac
-done
-(( OPTIND > 1 )) && shift $(( OPTIND - 1 ))
+  while getopts z: opt; do
+    case $opt in
+      z) comptest_zsh="$OPTARG";;
+    esac
+  done
+  (( OPTIND > 1 )) && shift $(( OPTIND - 1 ))
 
-input="$*"
+  export PS1="<PROMPT>"
+  zpty zsh "$comptest_zsh" -f
 
-tmp=/tmp/comptest.$$
+  zpty -r zsh log1 "*<PROMPT>*" || { 
+    print "first prompt doesn't appered."
+    return 1
+  }
 
-cat <<End >$tmp
-module_path=( $module_path )
-fpath=( $fpath )
+  comptesteval \
+"module_path=( $module_path )" \
+"fpath=( $fpath )" \
+"ZLS_COLORS='no=<NO>:fi=<FI>:di=<DI>:ln=<LN>:pi=<PI>:so=<SO>:bd=<BD>:cd=<CD>:ex=<EX>:mi=<MI>:tc=<TC>:sp=<SP>:lc=<LC>:ec=<EC>\\n:rc=<RC>'" \
+'LISTMAX=10000000
 stty columns 80 rows 24
-LISTMAX=10000000
-ZLS_COLORS='no=<NO>:fi=<FI>:di=<DI>:ln=<LN>:pi=<PI>:so=<SO>:bd=<BD>:cd=<CD>:ex=<EX>:mi=<MI>:tc=<TC>:sp=<SP>:lc=<LC>:ec=<EC>\n:rc=<RC>'
 bindkey -e
 autoload -U compinit
 compinit $dump
@@ -49,7 +44,7 @@ zmodload zsh/complist
 expand-or-complete-with-report () {
   print -lr "<WIDGET><expand-or-complete>"
   zle expand-or-complete
-  print -lr - "<LBUFFER>\$LBUFFER</LBUFFER>" "<RBUFFER>\$RBUFFER</RBUFFER>"
+  print -lr - "<LBUFFER>$LBUFFER</LBUFFER>" "<RBUFFER>$RBUFFER</RBUFFER>"
   zle clear-screen
   zle -R
 }
@@ -61,8 +56,9 @@ list-choices-with-report () {
 }
 finish () {
   print "<WIDGET><finish>"
-  sleep 1
-  exit 0
+  zle kill-whole-line
+  zle clear-screen
+  zle -R
 }
 zle -N expand-or-complete-with-report
 zle -N list-choices-with-report
@@ -70,54 +66,50 @@ zle -N finish
 bindkey "^I" expand-or-complete-with-report
 bindkey "^D" list-choices-with-report
 bindkey "^Z" finish
-$code
-End
-
-export PS1="<PROMPT>"
-zpty zsh "$zsh" -f
-
-zpty -r zsh log1 "*<PROMPT>*" || { 
-  print first prompt doesn\'t appered.
-  exit 1
+'
 }
 
-zpty -w zsh ". $tmp"
-zpty -r zsh log2 "*<PROMPT>*" || {
-  print second prompt doesn\'t appered.
-  exit 1
-}
-rm $tmp
+comptesteval () {
+  local tmp=/tmp/comptest.$$
 
-zpty -n -w zsh "$input"$'\C-Z'
-zpty -r zsh log "*<WIDGET><finish>*" || {
-  print finish widget doesn\'t invoked.
-  exit 1
+  print -lr - "$@" > $tmp
+  zpty -w zsh ". $tmp"
+  zpty -r zsh log_eval "*<PROMPT>*" || {
+    print "prompt doesn't appered."
+    return 1
+  }
+  rm $tmp
 }
 
-if [[ -n "$debug" ]]; then
-  print -lr - "$log" > /tmp/comptest.debug
-fi
+comptest () {
+  input="$*"
+  zpty -n -w zsh "$input"$'\C-Z'
+  zpty -r zsh log "*<WIDGET><finish>*<PROMPT>*" || {
+    print "finish widget doesn't invoked."
+    return 1
+  }
 
-logs=(${(s:<WIDGET>:)log})
-shift logs
+  logs=(${(s:<WIDGET>:)log})
+  shift logs
 
-for log in "$logs[@]"; do
-  if [[ "$log" = (#b)*$'<LBUFFER>'(*)$'</LBUFFER>\r\n<RBUFFER>'(*)$'</RBUFFER>'* ]]; then
-    print -lr "line: {$match[1]}{$match[2]}"
-  fi
-  while (( ${(N)log#*(#b)(<LC><(??)><RC>(*)<EC>|<DESCRIPTION>(*)</DESCRIPTION>|<MESSAGE>(*)</MESSAGE>|<COMPADD>(*)</COMPADD>)} )); do
-    log="${log[$mend[1]+1,-1]}"
-    if (( 0 <= $mbegin[2] )); then
-      if [[ $match[2] != TC && $match[3] != \ # ]]; then
-	print -lr "$match[2]:{${match[3]%$termcap_ce}}"
-      fi
-    elif (( 0 <= $mbegin[4] )); then
-      print -lr "DESCRIPTION:{$match[4]}"
-    elif (( 0 <= $mbegin[5] )); then
-      print -lr "MESSAGE:{$match[5]}"
-    elif (( 0 <= $mbegin[6] )); then
-      result=`echo $match[6] | tr -d '\012\015'`
-      print -lr "COMPADD:{$result}"
+  for log in "$logs[@]"; do
+    if [[ "$log" = (#b)*$'<LBUFFER>'(*)$'</LBUFFER>\r\n<RBUFFER>'(*)$'</RBUFFER>'* ]]; then
+      print -lr "line: {$match[1]}{$match[2]}"
     fi
+    while (( ${(N)log#*(#b)(<LC><(??)><RC>(*)<EC>|<DESCRIPTION>(*)</DESCRIPTION>|<MESSAGE>(*)</MESSAGE>|<COMPADD>(*)</COMPADD>)} )); do
+      log="${log[$mend[1]+1,-1]}"
+      if (( 0 <= $mbegin[2] )); then
+	if [[ $match[2] != TC && $match[3] != \ # ]]; then
+	  print -lr "$match[2]:{${match[3]%$termcap_ce}}"
+	fi
+      elif (( 0 <= $mbegin[4] )); then
+	print -lr "DESCRIPTION:{$match[4]}"
+      elif (( 0 <= $mbegin[5] )); then
+	print -lr "MESSAGE:{$match[5]}"
+      elif (( 0 <= $mbegin[6] )); then
+        result=`echo $match[6] | tr -d '\012\015'`
+        print -lr "COMPADD:{$result}"
+      fi
+    done
   done
-done
+}