1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-02-24 15:04:13 +00:00
cde/src/cmd/ksh93/tests
Johnothan King bd3e2a8001
Fix unreliable behavior when special vars are readonly or unset (#27)
src/cmd/ksh93/data/variables.c:
 - Running 'unset .sh.lineno' creates a memory fault, so fix that
   by giving it the NV_NOFREE attribute. This crash was happening
   because ${.sh.lineno} is an integer that cannot be freed from
   memory with free(3).

src/cmd/ksh93/sh/init.c:
 - Tell _nv_unset to ignore NV_RDONLY when $RANDOM and $LINENO are
   restored from the subshell scope. This is required to fully
   restore the original state of these variables after a virtual
   subshell finishes.

src/cmd/ksh93/bltins/typeset.c,
src/cmd/ksh93/sh/subshell.c:
 - Disabled some optimizations for two instances of 'sh_assignok' to
   fix 'readonly' in virtual subshells and '(unset .sh.level)' in
   nested functions. This fixes the following variables when
   '(readonly $varname); enum varname=' is run:

   $_
   ${.sh.name}
   ${.sh.subscript}
   ${.sh.level}

   The optimization in question prevents sh_assignok from saving the
   original state of these variables by making the sh_assignok call
   a no-op. Ksh needs the original state of a variable for it to be
   properly restored after a virtual subshell has run, otherwise ksh
   will simply carry over any new flags (being NV_RDONLY in this case)
   from the subshell into the main shell.

src/cmd/ksh93/tests/variables.sh:
 - Add regression tests from Martijn Dekker for setting special
   variables as readonly in virtual subshells and for unsetting
   special variables in general.

Fixes #4
2020-06-20 18:08:41 +01:00
..
alias.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
append.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
arith.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
arrays.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
arrays2.sh Fix 47 typos in user-facing help and error messages 2020-06-12 01:45:12 +02:00
attributes.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
basic.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
bracket.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
builtins.sh Fix 'whence -a' to print correct path for tracked alias (#25) 2020-06-19 14:03:58 +02:00
case.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
comvar.sh Fix 80 typos in comments 2020-06-12 01:45:12 +02:00
comvario.sh regress tests: remove use of unportable direct paths to commands 2020-06-12 01:45:15 +02:00
coprocess.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
cubetype.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
enum.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
exit.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
expand.sh Fix 47 typos in user-facing help and error messages 2020-06-12 01:45:12 +02:00
functions.sh Restore #22 'unset -f' fix minus segfault (re: b7932e87, 97511748) 2020-06-18 02:48:51 +02:00
glob.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
grep.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
heredoc.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
io.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
leaks.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
locale.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
math.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
nameref.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
namespace.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
options.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
path.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
pointtype.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
pty.sh tests/pty.sh: fix regress fail due to $TMPDIR 2020-06-13 01:48:13 +02:00
quoting.sh regress tests: remove use of unportable direct paths to commands 2020-06-12 01:45:15 +02:00
quoting2.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
readcsv.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
recttype.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
restricted.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
return.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
select.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
shtests shtests: make tests more interruptable with Ctrl+C 2020-06-12 01:45:18 +02:00
sigchld.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
signal.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
statics.sh fix 24 more typos found with the help of codespell 2020-06-12 01:45:15 +02:00
subshell.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
substring.sh shtests: More speedups; also fix xtrace (re: 734e5953) 2020-06-12 01:45:17 +02:00
tilde.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
timetype.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
treemove.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
types.sh regress: don't count temp dir creation as test (re: 2318de32) 2020-06-17 17:14:03 +02:00
variables.sh Fix unreliable behavior when special vars are readonly or unset (#27) 2020-06-20 18:08:41 +01:00
vartree1.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00
vartree2.sh Version: 2012-08-01-master 2016-01-11 15:54:23 -05:00