mirror of
git://git.code.sf.net/p/cdesktopenv/code
synced 2025-03-09 15:50:02 +00:00
bump internal libast version; various minor cleanups
These are minor things I accumulated over the last month or so. Notable changes: src/lib/libast/features/api, src/lib/libast/misc/state.c, src/lib/libast/comp/conf.tab, src/cmd/ksh93/include/defs.h: - Bump internal libast version to 20220101L. We've made a few additions to the API, at least pathicase (see71934570,ca3ec200) and astconf_long (seec2ac69b2), so this should have been done already. This also updates '/opt/ast/bin/getconf _AST_VERSION'. - Use AST_VERSION instead of outdated _AST_VERSION. - In state.c, use AST_VERSION instead of hardcoding the version. src/cmd/ksh93/sh/xec.c: - Remove 'restorefd' variable, unused as of 42becab6. - Remove 'cmdrecurse' function and SH_RUNPROG macro; this was once used by a few libcmd commands, but ast-open-archive reveals it's unused as of ast 1999-12-25. src/cmd/ksh93/sh/*.c: - Where available, use e_dot instead of "." for consistency; it is defined as an extern so we might as well use it. src/cmd/ksh93/tests/*.sh: - When reporting signal names in fails, include the SIG prefix. - Fix a broken process hang test in subshell.sh. src/lib/libast/man/sfdisc.3: - Removed. The interfaces described here never made it out of AT&T; they do not exist in any libast version in ast-open-archive. Resolves: https://github.com/ksh93/ksh/issues/426
This commit is contained in:
parent
07fc64f52b
commit
e569f23ef9
25 changed files with 58 additions and 300 deletions
|
|
@ -551,11 +551,16 @@ $SHELL <<- \EOF
|
|||
print -u2 done
|
||||
}
|
||||
out=$(eval "foo | cat" 2>&1)
|
||||
(( ${#out} == 96011 )) || err_exit "\${#out} is ${#out} should be 96011"
|
||||
print "${#out}" >out
|
||||
EOF
|
||||
} & pid=$!
|
||||
$SHELL -c "{ sleep .4 && kill $pid ;}" 2> /dev/null
|
||||
(( $? == 0 )) && err_exit 'process has hung'
|
||||
(sleep 4; kill -s KILL "$pid" 2>/dev/null) & # another bg job to kill frozen test job
|
||||
{ wait "$pid"; } 2>/dev/null # get job's exit status, suppressing signal messages
|
||||
if ((!(e = $?)))
|
||||
then [[ $(<out) == '96011' ]] || err_exit "\${#out} is $(printf %q "$(<out)"), should be 96011"
|
||||
else err_exit "process has hung (got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"))"
|
||||
fi
|
||||
kill "$!" 2>/dev/null # kill sleep process
|
||||
|
||||
{
|
||||
x=$( $SHELL <<- \EOF
|
||||
|
|
@ -848,7 +853,7 @@ test_pid=$!
|
|||
(sleep 10; kill -s KILL "$test_pid" 2>/dev/null) & # another bg job to kill frozen test job
|
||||
sleep_pid=$!
|
||||
{ wait "$test_pid"; } 2>/dev/null # get job's exit status, suppressing signal messages
|
||||
((!(e = $?))) || err_exit "backtick comsub crash/freeze (got status $e$( ((e>128)) && print -n / && kill -l "$e"))"
|
||||
((!(e = $?))) || err_exit "backtick comsub crash/freeze (got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"))"
|
||||
kill "$sleep_pid" 2>/dev/null
|
||||
|
||||
# ======
|
||||
|
|
@ -858,7 +863,7 @@ test_pid=$!
|
|||
(sleep 2; kill -s KILL "$test_pid" 2>/dev/null) &
|
||||
sleep_pid=$!
|
||||
{ wait "$test_pid"; } 2>/dev/null
|
||||
((!(e = $?))) || err_exit "backtick comsub hang (got status $e$( ((e>128)) && print -n / && kill -l "$e"))"
|
||||
((!(e = $?))) || err_exit "backtick comsub hang (got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"))"
|
||||
kill "$sleep_pid" 2>/dev/null
|
||||
|
||||
# Backtick command substitution with pipe hangs when filling out pipe buffer (rhbz#1138751)
|
||||
|
|
@ -867,7 +872,7 @@ test_pid=$!
|
|||
(sleep 2; kill -s KILL "$test_pid" 2>/dev/null) &
|
||||
sleep_pid=$!
|
||||
{ wait "$test_pid"; } 2>/dev/null
|
||||
((!(e = $?))) || err_exit "backtick comsub with pipe hangs (got status $e$( ((e>128)) && print -n / && kill -l "$e"))"
|
||||
((!(e = $?))) || err_exit "backtick comsub with pipe hangs (got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"))"
|
||||
kill "$sleep_pid" 2>/dev/null
|
||||
|
||||
# ======
|
||||
|
|
@ -924,7 +929,7 @@ cat >$tmp/crash_rhbz1117404.ksh <<-'EOF'
|
|||
EOF
|
||||
got=$( { "$SHELL" "$tmp/crash_rhbz1117404.ksh"; } 2>&1)
|
||||
((!(e = $?))) || err_exit 'crash while handling subshell trap' \
|
||||
"(got status $e$( ((e>128)) && print -n / && kill -l "$e"), $(printf %q "$got"))"
|
||||
"(got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"), $(printf %q "$got"))"
|
||||
|
||||
# ======
|
||||
# Segmentation fault when using cd in a subshell, when current directory cannot be determined
|
||||
|
|
@ -941,14 +946,14 @@ got=$(set +x; { "$SHELL" -c '(subshfn() { bad; }; cd ..; echo "subPWD: $PWD"); t
|
|||
exp="PWD=$PWD"
|
||||
got=$(set +x; { "$SHELL" -c '(cd /; (cd /)); print -r -- "PWD=$PWD"'; } 2>&1)
|
||||
((!(e = $?))) && [[ $got == "$exp" ]] || err_exit 'failed to restore nonexistent PWD on exiting a virtual subshell' \
|
||||
"(got status $e$( ((e>128)) && print -n / && kill -l "$e"), $(printf %q "$got"))"
|
||||
"(got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"), $(printf %q "$got"))"
|
||||
mkdir "$tmp/recreated"
|
||||
cd "$tmp/recreated"
|
||||
tmp=$tmp "$SHELL" -c 'cd /; rmdir "$tmp/recreated"; mkdir "$tmp/recreated"'
|
||||
exp="PWD=$PWD"
|
||||
got=$(set +x; { "$SHELL" -c '(cd /); print -r -- "PWD=$PWD"'; } 2>&1)
|
||||
((!(e = $?))) && [[ $got == "$exp" ]] || err_exit 'failed to restore re-created PWD on exiting a virtual subshell' \
|
||||
"(got status $e$( ((e>128)) && print -n / && kill -l "$e"), $(printf %q "$got"))"
|
||||
"(got status $e$( ((e>128)) && print -n /SIG && kill -l "$e"), $(printf %q "$got"))"
|
||||
cd "$tmp"
|
||||
|
||||
# ======
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue