# Tests for the kill builtin. # # The exit codes 11 and 19 in this file don't mean anything special; they're # just exit codes which are specific enough that the failure of `kill` itself # can be differentiated from exiting due to executing a trap. %test # Correct invocation if zmodload zsh/system &>/dev/null; then ( trap 'exit 19' TERM kill $sysparams[pid] ) else ZTST_skip='Cannot zmodload zsh/system, skipping kill with no sigspec' fi 19:kill with no sigspec if zmodload zsh/system &>/dev/null; then ( trap 'exit 11' USR1 kill -USR1 $sysparams[pid] ) else ZTST_skip='Cannot zmodload zsh/system, skipping kill with sigspec' fi 11:kill with sigspec # Incorrect invocation ( kill a b c ) 3:kill with multiple wrong inputs should increment status ?(eval):kill:2: illegal pid: a ?(eval):kill:2: illegal pid: b ?(eval):kill:2: illegal pid: c ( kill -INT a b c ) 3:kill with sigspec and wrong inputs should increment status ?(eval):kill:2: illegal pid: a ?(eval):kill:2: illegal pid: b ?(eval):kill:2: illegal pid: c ( kill ) 1:kill with no arguments ?(eval):kill:2: not enough arguments ( kill -INT ) 1:kill with sigspec only ?(eval):kill:2: not enough arguments # Regression tests: `kill ''` should not result in `kill 0`. ( trap 'exit 11' URG kill -URG '' ) 1:kill with empty pid and sigspec should not send signal to current process group ?(eval):kill:3: illegal pid: ( trap 'exit 19' TERM kill '' ) 1:Plain kill with empty pid should not send signal to current process group ?(eval):kill:3: illegal pid: