Skip to content

test: service unresolved/times out #139

@mgorny

Description

@mgorny

Originally it was unresolved but when I try to repro it via ./run I get timeout very quickly, so that's probably some weird issue with expect.

Test run by mgorny on Sun Jul  2 10:20:13 2017
Native configuration is x86_64-pc-linux-gnu

		=== completion tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using ./config/default.exp as tool-and-target-specific interface file.
Running ./completion/service.exp ...
exp_spawn bash --rcfile ./config/bashrc
/@echo $?
0
/@BASH_COMPLETION_COMPAT_DIR="$SRCDIR/fixtures/shared/empty_dir"
/@echo $?
0
/@source $(cd "$SRCDIR/.."; pwd)/bash_completion
/@echo $?
0
/@printf "%s" "$COMP_WORDBREAKS"
 	
"'><=;|&(:/@echo $?
0
/@printf "%s " "${BASH_VERSINFO[@]}"
4 4 12 1 release x86_64-pc-linux-gnu /@echo $?
0
/@printf "%s" "$BASH_VERSION"
4.4.12(1)-release/@echo $?
0
/@printf "%s" "$TESTDIR"
/home/mgorny/git/bash-completion/test/@echo $?
0
/@eval $(locale); printf "%s" "$LC_CTYPE"
en_US.utf8/@echo $?
0
/@exec 6>'xtrace.log'
/@echo $?
0
/@BASH_XTRACEFD=6
/@echo $?
0
/@set -o xtrace
/@echo $?
0
/@type service &> /dev/null && echo -n 0 || echo -n 1
0/@__load_completion service ; complete -p service &> /dev/null && echo -n 0 || echo -n 1
0/@{ (set -o posix ; set); declare -F; shopt -p; set -o; } > "$TESTDIR/tmp/env.env1~"
/@echo $?
0
/@service 
6to4                                              acpid
agetty                                            alsa-restore
alsasound                                         alsa-state
auditd                                            avahi-daemon
avahi-dnsconfd                                    awesfx
binfmt                                            bluetooth
boa                                               bootmisc
busybox-ntpd                                      busybox-watchdog
carbon-aggregator                                 carbon-cache
carbon-relay                                      consolefont
cups                                              cups-browsed
cupsd                                             dbus
devfs                                             dhcpcd
distccd                                           dmesg
dnsdist                                           emergency
epmd                                              fancontrol
fbset                                             fsck
functions.sh                                      fuse
getty@tty1                                        git-daemon
halt                                              hdparm
heimdal-kadmind                                   heimdal-kcm
heimdal-kdc                                       heimdal-kpasswdd
hostname                                          hwclock
initrd-cleanup                                    initrd-parse-etc
initrd-switch-root                                initrd-udevadm-cleanup-db
ip6tables                                         ip6tables-restore
ip6tables-store                                   iptables
iptables-restore                                  iptables-store
irqbalance                                        keymaps
killprocs                                         kmod-static-nodes
ldconfig                                          libvirtd
libvirt-guests                                    lightdm
lm_sensors                                        local
localmount                                        logmein-hamachi
loopback                                          mdkeys
memcached                                         minidlna
modules                                           modules-load
mount-ro                                          mpd
mpdscribble                                       mtab
mysql                                             mysql-s6
net.lo                                            netmount
net-online                                        nftables
nftables-restore                                  nscd
numlock                                           openvpn
osclock                                           pciparm
pktcdvd                                           polkit
privoxy                                           procfs
pwcheck                                           pydoc-2.7
pydoc-3.4                                         pydoc-3.5
pydoc-3.6                                         qemu-binfmt
quasselcore                                       rabbitmq
rdate                                             rescue
rfcomm                                            root
rrdcached                                         rsyncd
rtkit-daemon                                      runsvdir
s6-svscan                                         saned
saned@0                                           saslauthd
savecache                                         sensord
serial                                            smartd
sshd                                              sshd@0
svnserve                                          swap
swclock                                           sysctl
sysfs                                             systemd-ask-password-console
systemd-ask-password-wall                         systemd-binfmt
systemd-coredump@0                                systemd-firstboot
systemd-fsck@dev-disk-by\x2dlabel-mpd             systemd-fsck@dev-disk-by\x2dlabel-pomiot\x2dboot
systemd-fsck@dev-disk-by\x2dlabel-pomiot\x2dhome  systemd-fsck@dev-disk-by\x2dlabel-pomiot\x2dsrv
systemd-fsck-root                                 systemd-hwdb-update
systemd-initctl                                   systemd-journal-catalog-update
systemd-journald                                  systemd-journal-flush
systemd-logind                                    systemd-machine-id-commit
systemd-modules-load                              systemd-quotacheck
systemd-random-seed                               systemd-remount-fs
systemd-sysctl                                    systemd-sysusers
systemd-timesyncd                                 systemd-tmpfiles-clean
systemd-tmpfiles-setup                            systemd-tmpfiles-setup-dev
systemd-udevd                                     systemd-udev-trigger
systemd-update-done                               systemd-update-utmp
systemd-user-sessions                             systemd-vconsole-setup
termencoding                                      tftp
timidity                                          tor
transmission-daemon                               twistd
udev                                              udev-settle
udev-trigger                                      udisks2
upower                                            urandom
user@1000                                         virtlockd
virtlogd                                          wpa_supplicant
x11vnc.init.d                                     xdm
xdm-setup                                         xinetd
/@service FAIL: service  should show completions at timeout
^C
/@{ (set -o posix ; set); declare -F; shopt -p; set -o; } > "$TESTDIR/tmp/env.env2~"
/@echo $?
0
/@diff_env "$TESTDIR/tmp/env.env1~" "$TESTDIR/tmp/env.env2~" "" LAST-ARG
/@PASS: Environment should not be modified
testcase ./completion/service.exp completed in 11 seconds

		=== completion Summary ===

# of expected passes		1
# of unexpected failures	1

xtrace:

+ echo 0
+ type service
+ echo -n 0
+ __load_completion service
+ dirs=(${BASH_COMPLETION_USER_DIR:-${XDG_DATA_HOME:-$HOME/.local/share}/bash-completion}/completions)
+ local -a dirs
+ local 'OIFS= 	
' IFS=: dir cmd=service compfile
+ for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}
+ dirs+=($dir/bash-completion/completions)
+ for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}
+ dirs+=($dir/bash-completion/completions)
+ for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}
+ dirs+=($dir/bash-completion/completions)
+ for dir in ${XDG_DATA_DIRS:-/usr/local/share:/usr/share}
+ dirs+=($dir/bash-completion/completions)
+ IFS=' 	
'
+ [[ /home/mgorny/git/bash-completion/bash_completion == */* ]]
+ dirs+=("${BASH_SOURCE%/*}/completions")
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/service
+ [[ -f /home/mgorny/git/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/service.bash
+ [[ -f /home/mgorny/git/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/_service
+ [[ -f /home/mgorny/git/bash-completion/completions/_service ]]
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/local/share/bash-completion/completions/service
+ [[ -f /usr/local/share/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/local/share/bash-completion/completions/service.bash
+ [[ -f /usr/local/share/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/local/share/bash-completion/completions/_service
+ [[ -f /usr/local/share/bash-completion/completions/_service ]]
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/service
+ [[ -f /usr/share/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/service.bash
+ [[ -f /usr/share/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/_service
+ [[ -f /usr/share/bash-completion/completions/_service ]]
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/mesa/xdg/bash-completion/completions/service
+ [[ -f /usr/share/mesa/xdg/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/mesa/xdg/bash-completion/completions/service.bash
+ [[ -f /usr/share/mesa/xdg/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/mesa/xdg/bash-completion/completions/_service
+ [[ -f /usr/share/mesa/xdg/bash-completion/completions/_service ]]
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/service
+ [[ -f /usr/share/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/service.bash
+ [[ -f /usr/share/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/usr/share/bash-completion/completions/_service
+ [[ -f /usr/share/bash-completion/completions/_service ]]
+ for dir in "${dirs[@]}"
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/service
+ [[ -f /home/mgorny/git/bash-completion/completions/service ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/service.bash
+ [[ -f /home/mgorny/git/bash-completion/completions/service.bash ]]
+ for compfile in "${cmd##*/}" "${cmd##*/}".bash _"${cmd##*/}"
+ compfile=/home/mgorny/git/bash-completion/completions/_service
+ [[ -f /home/mgorny/git/bash-completion/completions/_service ]]
+ return 1
+ complete -p service
+ echo -n 0
+ set -o posix
+ set
+ declare -F
+ shopt -p
+ set -o
+ echo 0
+ local cur prev words cword
+ _init_completion
+ local exclude= flag outx errx inx OPTIND=1
+ getopts n:e:o:i:s flag
+ COMPREPLY=()
+ local 'redir=@(?([0-9])<|?([0-9&])>?(>)|>&)'
+ _get_comp_words_by_ref -n '<>&' cur prev words cword
+ local exclude flag i OPTIND=1
+ words=()
+ local cur cword words
+ upargs=()
+ upvars=()
+ local upargs upvars vcur vcword vprev vwords
+ getopts c:i:n:p:w: flag -n '<>&' cur prev words cword
+ case $flag in
+ exclude='<>&'
+ getopts c:i:n:p:w: flag -n '<>&' cur prev words cword
+ [[ 6 -ge 3 ]]
+ case ${!OPTIND} in
+ vcur=cur
+ let 'OPTIND += 1'
+ [[ 6 -ge 4 ]]
+ case ${!OPTIND} in
+ vprev=prev
+ let 'OPTIND += 1'
+ [[ 6 -ge 5 ]]
+ case ${!OPTIND} in
+ vwords=words
+ let 'OPTIND += 1'
+ [[ 6 -ge 6 ]]
+ case ${!OPTIND} in
+ vcword=cword
+ let 'OPTIND += 1'
+ [[ 6 -ge 7 ]]
+ __get_cword_at_cursor_by_ref '<>&' words cword cur
+ words=()
+ local cword words
+ __reassemble_comp_words_by_ref '<>&' words cword
+ local exclude i j line ref
+ [[ -n <>& ]]
+ exclude='<>&'
+ printf -v cword %s 1
+ [[ -n <>& ]]
+ line='service '
+ (( i=0, j=0 ))
+ (( i < 2 ))
+ [[ 0 -gt 0 ]]
+ ref='words[0]'
+ printf -v 'words[0]' %s service
+ line=' '
+ [[ 0 == 1 ]]
+ (( i++, j++ ))
+ (( i < 2 ))
+ [[ 1 -gt 0 ]]
+ [[ '' == +([<>&]) ]]
+ ref='words[1]'
+ printf -v 'words[1]' %s ''
+ line=' '
+ [[ 1 == 1 ]]
+ printf -v cword %s 1
+ (( i++, j++ ))
+ (( i < 2 ))
+ [[ 2 == 1 ]]
+ local i cur index=8 'lead=service '
+ [[ 8 -gt 0 ]]
+ [[ -n service  ]]
+ [[ -n service ]]
+ cur='service '
+ (( i = 0 ))
+ (( i <= cword ))
+ [[ 8 -ge 7 ]]
+ [[ service != \s\e\r\v\i\c\e ]]
+ [[ 0 -lt 1 ]]
+ local old_size=8
+ cur=' '
+ local new_size=1
+ index=1
+ (( ++i  ))
+ (( i <= cword ))
+ [[ 1 -ge 0 ]]
+ [[ '' != '' ]]
+ [[ 1 -lt 1 ]]
+ (( ++i  ))
+ (( i <= cword ))
+ [[ -n   ]]
+ [[ ! -n '' ]]
+ cur=
+ [[ 1 -lt 0 ]]
+ local words cword cur
+ _upvars -a2 words service '' -v cword 1 -v cur ''
+ ((  10  ))
+ ((  10  ))
+ case $1 in
+ [[ -n 2 ]]
+ printf %d 2
+ [[ -n words ]]
+ unset -v words
+ eval 'words=("${@:3:2}")'
++ words=("${@:3:2}")
+ shift 4
+ ((  6  ))
+ case $1 in
+ [[ -n cword ]]
+ unset -v cword
+ eval 'cword="$3"'
++ cword=1
+ shift 3
+ ((  3  ))
+ case $1 in
+ [[ -n cur ]]
+ unset -v cur
+ eval 'cur="$3"'
++ cur=
+ shift 3
+ ((  0  ))
+ [[ -n cur ]]
+ upvars+=("$vcur")
+ upargs+=(-v $vcur "$cur")
+ [[ -n cword ]]
+ upvars+=("$vcword")
+ upargs+=(-v $vcword "$cword")
+ [[ -n prev ]]
+ [[ 1 -ge 1 ]]
+ upvars+=("$vprev")
+ upargs+=(-v $vprev "${words[cword - 1]}")
+ [[ -n words ]]
+ upvars+=("$vwords")
+ upargs+=(-a${#words[@]} $vwords "${words[@]}")
+ ((  4  ))
+ local cur cword prev words
+ _upvars -v cur '' -v cword 1 -v prev service -a2 words service ''
+ ((  13  ))
+ ((  13  ))
+ case $1 in
+ [[ -n cur ]]
+ unset -v cur
+ eval 'cur="$3"'
++ cur=
+ shift 3
+ ((  10  ))
+ case $1 in
+ [[ -n cword ]]
+ unset -v cword
+ eval 'cword="$3"'
++ cword=1
+ shift 3
+ ((  7  ))
+ case $1 in
+ [[ -n prev ]]
+ unset -v prev
+ eval 'prev="$3"'
++ prev=service
+ shift 3
+ ((  4  ))
+ case $1 in
+ [[ -n 2 ]]
+ printf %d 2
+ [[ -n words ]]
+ unset -v words
+ eval 'words=("${@:3:2}")'
++ words=("${@:3:2}")
+ shift 4
+ ((  0  ))
+ _variables
+ [[ '' =~ ^(\$(\{[!#]?)?)([A-Za-z0-9_]*)$ ]]
+ [[ '' =~ ^(\$\{[#!]?)([A-Za-z0-9_]*)\[([^]]*)$ ]]
+ [[ '' =~ ^\$\{[#!]?[A-Za-z0-9_]*\[.*]$ ]]
+ case $prev in
+ return 1
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ [[ service == @(?([0-9])<|?([0-9&])>?(>)|>&) ]]
+ local i skip
+ (( i=1 ))
+ (( i < 2 ))
+ [[ '' == @(?([0-9])<|?([0-9&])>?(>)|>&)* ]]
+ i=2
+ (( 1 ))
+ (( i < 2 ))
+ [[ 1 -le 0 ]]
+ prev=service
+ [[ -n '' ]]
+ return 0
+ [[ 1 -gt 2 ]]
+ [[ 1 -eq 1 ]]
+ [[ service == ?(*/)service ]]
+ _services
+ local sysvdirs
+ _sysvdirs
+ sysvdirs=()
+ [[ -d /etc/rc.d/init.d ]]
+ [[ -d /etc/init.d ]]
+ sysvdirs+=(/etc/init.d)
+ [[ -f /etc/slackware-version ]]
++ shopt -p nullglob
+ local 'restore_nullglob=shopt -u nullglob'
+ shopt -s nullglob
+ COMPREPLY=($( printf '%s\n' ${sysvdirs[0]}/!($_backup_glob|functions|README) ))
++ printf '%s\n' /etc/init.d/6to4 /etc/init.d/acpid /etc/init.d/agetty /etc/init.d/alsasound /etc/init.d/auditd /etc/init.d/avahi-daemon /etc/init.d/avahi-dnsconfd /etc/init.d/awesfx /etc/init.d/binfmt /etc/init.d/bluetooth /etc/init.d/boa /etc/init.d/bootmisc /etc/init.d/busybox-ntpd /etc/init.d/busybox-watchdog /etc/init.d/carbon-aggregator /etc/init.d/carbon-cache /etc/init.d/carbon-relay /etc/init.d/consolefont /etc/init.d/cups-browsed /etc/init.d/cupsd /etc/init.d/dbus /etc/init.d/devfs /etc/init.d/dhcpcd /etc/init.d/distccd /etc/init.d/dmesg /etc/init.d/dnsdist /etc/init.d/epmd /etc/init.d/fancontrol /etc/init.d/fbset /etc/init.d/fsck /etc/init.d/functions.sh /etc/init.d/fuse /etc/init.d/git-daemon /etc/init.d/halt /etc/init.d/hdparm /etc/init.d/heimdal-kadmind /etc/init.d/heimdal-kcm /etc/init.d/heimdal-kdc /etc/init.d/heimdal-kpasswdd /etc/init.d/hostname /etc/init.d/hwclock /etc/init.d/ip6tables /etc/init.d/iptables /etc/init.d/irqbalance /etc/init.d/keymaps /etc/init.d/killprocs /etc/init.d/kmod-static-nodes /etc/init.d/libvirtd /etc/init.d/libvirt-guests /etc/init.d/lm_sensors /etc/init.d/local /etc/init.d/localmount /etc/init.d/logmein-hamachi /etc/init.d/loopback /etc/init.d/mdkeys /etc/init.d/memcached /etc/init.d/minidlna /etc/init.d/modules /etc/init.d/modules-load /etc/init.d/mount-ro /etc/init.d/mpd /etc/init.d/mpdscribble /etc/init.d/mtab /etc/init.d/mysql /etc/init.d/mysql-s6 /etc/init.d/net.lo /etc/init.d/netmount /etc/init.d/net-online /etc/init.d/nftables /etc/init.d/nscd /etc/init.d/numlock /etc/init.d/openvpn /etc/init.d/osclock /etc/init.d/pciparm /etc/init.d/pktcdvd /etc/init.d/privoxy /etc/init.d/procfs /etc/init.d/pwcheck /etc/init.d/pydoc-2.7 /etc/init.d/pydoc-3.4 /etc/init.d/pydoc-3.5 /etc/init.d/pydoc-3.6 /etc/init.d/qemu-binfmt /etc/init.d/quasselcore /etc/init.d/rabbitmq /etc/init.d/rdate /etc/init.d/rfcomm /etc/init.d/root /etc/init.d/rrdcached /etc/init.d/rsyncd /etc/init.d/runsvdir /etc/init.d/s6-svscan /etc/init.d/saned /etc/init.d/saslauthd /etc/init.d/savecache /etc/init.d/sensord /etc/init.d/serial /etc/init.d/smartd /etc/init.d/sshd /etc/init.d/svnserve /etc/init.d/swap /etc/init.d/swclock /etc/init.d/sysctl /etc/init.d/sysfs /etc/init.d/termencoding /etc/init.d/timidity /etc/init.d/tor /etc/init.d/transmission-daemon /etc/init.d/twistd /etc/init.d/udev /etc/init.d/udev-settle /etc/init.d/udev-trigger /etc/init.d/urandom /etc/init.d/virtlockd /etc/init.d/virtlogd /etc/init.d/wpa_supplicant /etc/init.d/x11vnc.init.d /etc/init.d/xdm /etc/init.d/xdm-setup /etc/init.d/xinetd
+ shopt -u nullglob
+ COMPREPLY+=($( systemctl list-units --full --all 2>/dev/null |         awk '$1 ~ /\.service$/ { sub("\\.service$", "", $1); print $1 }' ))
++ systemctl list-units --full --all
++ awk '$1 ~ /\.service$/ { sub("\\.service$", "", $1); print $1 }'
+ [[ -x /sbin/upstart-udev-bridge ]]
+ COMPREPLY=($( compgen -W '${COMPREPLY[@]#${sysvdirs[0]}/}' -- "$cur" ))
++ compgen -W '${COMPREPLY[@]#${sysvdirs[0]}/}' -- ''
+ [[ -e /etc/mandrake-release ]]
+ set -o posix
+ set
+ declare -F
+ shopt -p
+ set -o
+ echo 0
+ diff_env /home/mgorny/git/bash-completion/test/tmp/env.env1~ /home/mgorny/git/bash-completion/test/tmp/env.env2~ '' LAST-ARG
+ diff /home/mgorny/git/bash-completion/test/tmp/env.env1~ /home/mgorny/git/bash-completion/test/tmp/env.env2~
+ sed -e '
# Remove diff line indicators
        /^[0-9,]\{1,\}[acd]/d
# Remove diff block separators
        /---/d
# Remove underscore variable
        /[<>] _=/d
# Remove PPID bash variable
        /[<>] PPID=/d
# Remove BASH_REMATCH bash variable
        /[<>] BASH_REMATCH=/d
# Remove functions starting with underscore
        /[<>] declare -f _/d
        '
+ exit

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions