mirror of
git://git.code.sf.net/p/zsh/code
synced 2025-10-22 16:20:23 +02:00
Add zmodload tests.
This commit is contained in:
parent
e372741874
commit
9a7d4529ea
3 changed files with 152 additions and 1 deletions
|
@ -1,3 +1,8 @@
|
|||
2001-05-18 Bart Schaefer <schaefer@zsh.org>
|
||||
|
||||
* unposted: Test/.distfiles, Test/V01zmodload.ztst: Add the basic
|
||||
tests of zmodload functionality.
|
||||
|
||||
2001-05-18 Clint Adams <clint@zsh.org>
|
||||
|
||||
* 14378: Completion/Unix/Type/_tex: also work for
|
||||
|
|
|
@ -7,6 +7,6 @@ A02alias.ztst C03traps.ztst E02xtrace.ztst
|
|||
A03quoting.ztst C04funcdef.ztst Makefile.in ztst.zsh
|
||||
A04redirect.ztst D01prompt.ztst V02zregexparse.ztst
|
||||
A05execution.ztst D02glob.ztst Y01completion.ztst
|
||||
D06subscript.ztst
|
||||
D06subscript.ztst V01zmodload.ztst
|
||||
README
|
||||
'
|
||||
|
|
146
Test/V01zmodload.ztst
Normal file
146
Test/V01zmodload.ztst
Normal file
|
@ -0,0 +1,146 @@
|
|||
# Test basic module loading
|
||||
|
||||
%prep
|
||||
# Figure out which modules it ought to be possible to load by looking at
|
||||
# the config.modules file. This differs for static vs. dynamic builds.
|
||||
|
||||
mods=()
|
||||
while read name modfile link auto load funcs
|
||||
do
|
||||
[[ $name == \#* ]] && continue
|
||||
eval "$name $modfile $link $auto $load"
|
||||
[[ $link == no ]] && continue
|
||||
mods=($mods $name)
|
||||
done < $ZTST_testdir/../config.modules
|
||||
|
||||
%test
|
||||
|
||||
# This first test depends on knowing that zsh is run with +Z from the
|
||||
# Makefile, and that ztst.zsh loads the parameter module.
|
||||
|
||||
zmodload -L
|
||||
0:List the loaded modules
|
||||
>zmodload zsh/main
|
||||
>zmodload zsh/parameter
|
||||
|
||||
zmodload zsh/main
|
||||
1:Test reloading an already-loaded module
|
||||
?ZTST_execchunk:zmodload:2: module zsh/main already loaded.
|
||||
|
||||
# Loop over the modules fond above and attempt to load each one. Use
|
||||
# the -i flag in case dependencies cause multiple modules to be loaded,
|
||||
# or in case some previous test loaded a module.
|
||||
|
||||
for m in $mods
|
||||
do
|
||||
zmodload -i $m || mods[(r)$m]=()
|
||||
done
|
||||
0d:Test loading of all compiled modules
|
||||
|
||||
zmodload -e $mods
|
||||
0d:Check that zsh believes the modules did load
|
||||
|
||||
# Now check for proper failure conditions by trying some operations on
|
||||
# a nonexistent module.
|
||||
|
||||
zmodload -i bogus/notamodule
|
||||
1D:Check that loading a nonexistent module fails
|
||||
|
||||
zmodload -u bogus/notamodule
|
||||
1D:Check that unloading a nonexistent module fails
|
||||
|
||||
# Test adding and removing autoloads, using a nonexistent module.
|
||||
|
||||
zmodload -ab bogus
|
||||
zmodload -ub bogus
|
||||
0:Add/remove autoloaded builtin
|
||||
|
||||
zmodload -ac bogus
|
||||
zmodload -uc bogus
|
||||
0:Add/remove autoloaded condition
|
||||
|
||||
zmodload -ap bogus
|
||||
zmodload -up bogus
|
||||
0:Add/remove autoloaded parameter
|
||||
|
||||
zmodload -af bogus
|
||||
zmodload -uf bogus
|
||||
0:Add/remove autoloaded math function
|
||||
|
||||
# If the "example" module is available, test various autoloading behavior.
|
||||
|
||||
if [[ $mods[(r)zsh/example] == zsh/example ]]; then
|
||||
zmodload -u zsh/example
|
||||
zmodload -ab zsh/example example
|
||||
builtin example
|
||||
zmodload -e zsh/example
|
||||
else :
|
||||
fi
|
||||
0d:Autoload a module via a builtin
|
||||
|
||||
if [[ $mods[(r)zsh/example] == zsh/example ]]; then
|
||||
zmodload -u zsh/example
|
||||
zmodload -ac -I zsh/example ex
|
||||
[[ exam -ex ple ]]
|
||||
zmodload -e zsh/example
|
||||
else :
|
||||
fi
|
||||
0d:Autoload a module via a condition
|
||||
|
||||
if [[ $mods[(r)zsh/example] == zsh/example ]]; then
|
||||
zmodload -u zsh/example
|
||||
zmodload -ap zsh/example exint
|
||||
: $exint
|
||||
zmodload -e zsh/example
|
||||
else :
|
||||
fi
|
||||
0d:Autoload a module via a parameter
|
||||
|
||||
if [[ $mods[(r)zsh/example] == zsh/example ]]; then
|
||||
zmodload -u zsh/example
|
||||
zmodload -af zsh/example sum
|
||||
(( sum(1) ))
|
||||
zmodload -e zsh/example
|
||||
else :
|
||||
fi
|
||||
0d:Autoload a module via a math function
|
||||
|
||||
# Test module aliases
|
||||
|
||||
zmodload -A example=zsh/example
|
||||
zmodload -A
|
||||
0:Test creating a module alias
|
||||
>example -> zsh/example
|
||||
|
||||
if [[ $mods[(r)zsh/example] == zsh/example ]]; then
|
||||
zmodload -u example
|
||||
zmodload -ab example
|
||||
builtin example
|
||||
zmodload -e example
|
||||
else :
|
||||
fi
|
||||
0d:Unload/autoload the module via its alias
|
||||
|
||||
zmodload -R example
|
||||
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!
|
||||
|
||||
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
|
||||
0d:Unload the modules loaded by this test suite
|
||||
|
||||
%clean
|
||||
|
||||
unset name modfile link auto load funcs mods m
|
Loading…
Add table
Add a link
Reference in a new issue