1
0
Fork 0
mirror of git://git.code.sf.net/p/cdesktopenv/code synced 2025-03-09 15:50:02 +00:00

Fix yet more minor bugs related to the regression tests (#389)

- Redirect error output from the ulimit builtin (re: 3e58851f).
- Fix the test failure for 'cd -eP' on illumos by making a directory
  symlink first, then removing the symlink after cd.
- Fix the test failure for 'getconf -l' on illumos by quoting
  strings with the -q option.
- astconf.c: Only quote strings if the -q option was passed.
- Improve error messages from intermittently failing types.sh tests
This commit is contained in:
Johnothan King 2021-12-20 23:44:59 -08:00 committed by Martijn Dekker
parent 0ead68b704
commit e6989853bc
4 changed files with 13 additions and 12 deletions

View file

@ -31,7 +31,7 @@ bad_result=$(getconf --version 2>&1)
# The -l option should convert all variable names to lowercase. # The -l option should convert all variable names to lowercase.
# https://github.com/att/ast/issues/1171 # https://github.com/att/ast/issues/1171
got=$(getconf -l | awk '{ gsub(/=.*/, "") } /[[:upper:]]/ { print }') got=$(getconf -lq | awk '{ gsub(/=.*/, "") } /[[:upper:]]/ { print }')
[[ -n $got ]] && err_exit "'getconf -l' doesn't convert all variable names to lowercase" \ [[ -n $got ]] && err_exit "'getconf -l' doesn't convert all variable names to lowercase" \
"(got $(printf %q "$got"))" "(got $(printf %q "$got"))"
@ -1363,9 +1363,10 @@ fi
# ====== # ======
# These are regression tests for the cd command's -e and -P flags # These are regression tests for the cd command's -e and -P flags
mkdir -p "$tmp/failpwd1" mkdir -p "$tmp/failpwd"
ln -s "$tmp/failpwd" "$tmp/failpwd1"
cd "$tmp/failpwd1" cd "$tmp/failpwd1"
rmdir ../failpwd1 rm ../failpwd1
cd -P . cd -P .
got=$?; exp=0 got=$?; exp=0
(( got == exp )) || err_exit "cd -P without -e exits with error status if \$PWD doesn't exist (expected $exp, got $got)" (( got == exp )) || err_exit "cd -P without -e exits with error status if \$PWD doesn't exist (expected $exp, got $got)"

View file

@ -125,9 +125,9 @@ X_t x
[[ ${x.s} == ${x.x} ]] || err_exit 'x.s should be x.x' [[ ${x.s} == ${x.x} ]] || err_exit 'x.s should be x.x'
typeset -T Y_t=( X_t r ) typeset -T Y_t=( X_t r )
Y_t z Y_t z
[[ ${z.r.x} == foo ]] || err_exit 'z.r.x should be foo' [[ ${z.r.x} == foo ]] || err_exit "z.r.x should be foo (got $(printf %q "${z.r.x}"))"
[[ ${z.r.y} == bam ]] || err_exit 'z.r.y should be bam' [[ ${z.r.y} == bam ]] || err_exit "z.r.y should be bam (got $(printf %q "${z.r.y}"))"
[[ ${z.r.s} == ${z.r.x} ]] || err_exit 'z.r.s should be z.r.x' [[ ${z.r.s} == ${z.r.x} ]] || err_exit "z.r.s should be z.r.x (expected $(printf %q "${z.r.x}"), got $(printf %q "${z.r.s}"))"
unset xx yy unset xx yy
typeset -T xx=(typeset yy=zz) typeset -T xx=(typeset yy=zz)

View file

@ -100,16 +100,16 @@ done
[[ $got == "$exp" ]] || err_exit 'Using $RANDOM in subshell influences reproducible sequence in parent environment' \ [[ $got == "$exp" ]] || err_exit 'Using $RANDOM in subshell influences reproducible sequence in parent environment' \
"(expected $(printf %q "$exp"), got $(printf %q "$got"))" "(expected $(printf %q "$exp"), got $(printf %q "$got"))"
# Forking a subshell shouldn't throw away the $RANDOM seed in the main shell # Forking a subshell shouldn't throw away the $RANDOM seed in the main shell
exp=$(ulimit -t unlimited; RANDOM=123; echo $RANDOM) exp=$(ulimit -t unlimited 2> /dev/null; RANDOM=123; echo $RANDOM)
RANDOM=123 RANDOM=123
(ulimit -t unlimited; true) (ulimit -t unlimited 2> /dev/null; true)
got=${ echo $RANDOM ;} got=${ echo $RANDOM ;}
[[ $got == "$exp" ]] || err_exit "Forking a subshell resets the parent shell's \$RANDOM seed" \ [[ $got == "$exp" ]] || err_exit "Forking a subshell resets the parent shell's \$RANDOM seed" \
"(expected $(printf %q "$exp"), got $(printf %q "$got"))" "(expected $(printf %q "$exp"), got $(printf %q "$got"))"
# Similarly, forking a subshell shouldn't throw away a seed # Similarly, forking a subshell shouldn't throw away a seed
# previously set inside of the subshell # previously set inside of the subshell
exp=$(ulimit -t unlimited; RANDOM=789; echo $RANDOM) exp=$(ulimit -t unlimited 2> /dev/null; RANDOM=789; echo $RANDOM)
got=$(RANDOM=789; ulimit -t unlimited; echo $RANDOM) got=$(RANDOM=789; ulimit -t unlimited 2> /dev/null; echo $RANDOM)
[[ $got == "$exp" ]] || err_exit "Forking a subshell resets the subshell's \$RANDOM seed" \ [[ $got == "$exp" ]] || err_exit "Forking a subshell resets the subshell's \$RANDOM seed" \
"(expected $(printf %q "$exp"), got $(printf %q "$got"))" "(expected $(printf %q "$exp"), got $(printf %q "$got"))"
unset N i rand1 rand2 unset N i rand1 rand2

View file

@ -1664,7 +1664,7 @@ astconflist(Sfio_t* sp, const char* path, int flags, const char* pattern)
sfprintf(sp, "%*s %*s %d %2s %4d %5s %s\n", sizeof(conf[0].name), f, sizeof(prefix[look.standard].name), prefix[look.standard].name, look.section, call, 0, "N", s); sfprintf(sp, "%*s %*s %d %2s %4d %5s %s\n", sizeof(conf[0].name), f, sizeof(prefix[look.standard].name), prefix[look.standard].name, look.section, call, 0, "N", s);
} }
else if (flags & ASTCONF_parse) else if (flags & ASTCONF_parse)
sfprintf(sp, "%s %s - %s\n", state.id, (flags & ASTCONF_lower) ? fmtlower(f) : f, fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS)); sfprintf(sp, "%s %s - %s\n", state.id, (flags & ASTCONF_lower) ? fmtlower(f) : f, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s);
else else
sfprintf(sp, "%s=%s\n", (flags & ASTCONF_lower) ? fmtlower(f) : f, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s); sfprintf(sp, "%s=%s\n", (flags & ASTCONF_lower) ? fmtlower(f) : f, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s);
} }
@ -1712,7 +1712,7 @@ astconflist(Sfio_t* sp, const char* path, int flags, const char* pattern)
sfprintf(sp, "%*s %*s %d %2s %4d %5s %s\n", sizeof(conf[0].name), fp->name, sizeof(prefix[fp->standard].name), prefix[fp->standard].name, 1, call, 0, flg, s); sfprintf(sp, "%*s %*s %d %2s %4d %5s %s\n", sizeof(conf[0].name), fp->name, sizeof(prefix[fp->standard].name), prefix[fp->standard].name, 1, call, 0, flg, s);
} }
else if (flags & ASTCONF_parse) else if (flags & ASTCONF_parse)
sfprintf(sp, "%s %s - %s\n", state.id, (flags & ASTCONF_lower) ? fmtlower(fp->name) : fp->name, fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS)); sfprintf(sp, "%s %s - %s\n", state.id, (flags & ASTCONF_lower) ? fmtlower(fp->name) : fp->name, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s);
else else
sfprintf(sp, "%s=%s\n", (flags & ASTCONF_lower) ? fmtlower(fp->name) : fp->name, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s); sfprintf(sp, "%s=%s\n", (flags & ASTCONF_lower) ? fmtlower(fp->name) : fp->name, (flags & ASTCONF_quote) ? fmtquote(s, "\"", "\"", strlen(s), FMT_SHELL|FMT_ALWAYS) : s);
} }