1
0
Fork 0
mirror of git://git.code.sf.net/p/zsh/code synced 2025-09-02 22:11:54 +02:00

Revise zmodload -u test.

This commit is contained in:
Bart Schaefer 2001-05-23 17:05:56 +00:00
parent b5ad8bf0de
commit f73dc99e08
2 changed files with 33 additions and 12 deletions

View file

@ -1,3 +1,9 @@
2001-05-23 Bart Schaefer <schaefer@zsh.org>
* 14461: Test/V01zmodload.ztst: Change the unloading test to be
sure that modules are not unloaded until their dependencies have
been unloaded.
2001-05-23 Oliver Kiddle <opk@zsh.org>
* unposted: Src/signals.c, Src/utils.c: add missing mod_exports

View file

@ -5,6 +5,7 @@
# the config.modules file. This differs for static vs. dynamic builds.
mods=()
deps="$(zmodload -Ld)"
while read name modfile link auto load funcs
do
[[ $name == \#* ]] && continue
@ -13,6 +14,27 @@
mods=($mods $name)
done < $ZTST_testdir/../config.modules
zmodunload() {
local m n=$#
(( n == 0 )) && return 0
for m
do
if [[ -z ${(M)${(f)"$(zmodload -d)"}:#*:* $m( *|)} ]]
then
zmodload -u $m && zmodload -ud $m || return 1
shift
else
set $@[2,-1] $m
fi
done
if (( $# < n ))
then
zmodunload $*
else
zmodload -u $*
fi
}
%test
# This first test depends on knowing that zsh is run with +Z from the
@ -125,22 +147,15 @@
zmodload -e example
1:Delete the module alias again
# Remove all inter-module dependencies so that we can unload in any order.
# Skip the two modules that are required by the test system!
# Don't unload the two modules that are required by the test system!
mods[(r)zsh/main]=()
mods[(r)zsh/parameter]=()
for m in $mods
do
zmodload -ud $m
done
0d:Remove module dependecies
# Unload all the modules again (except the two we skipped, of course).
zmodload -u $mods
zmodunload $mods
0d:Unload the modules loaded by this test suite
%clean
unset name modfile link auto load funcs mods m
eval "$deps"
unset deps name modfile link auto load funcs mods
unfunction zmodunload