Blame testing/059_command_catch.tcl

Packit 1c1d7e
#// objective: tests processing of catch/eval, only references/referencedby relations are relevant
Packit 1c1d7e
#// check: 059__command__catch_8tcl.xml
Packit 1c1d7e
#// config: REFERENCED_BY_RELATION = yes
Packit 1c1d7e
#// config: REFERENCES_RELATION = yes
Packit 1c1d7e
#// config: EXTRACT_ALL = yes
Packit 1c1d7e
#// config: INLINE_SOURCES = no
Packit 1c1d7e
Packit 1c1d7e
##
Packit 1c1d7e
# \brief should be reference by every proc below
Packit 1c1d7e
proc Invoked args {
Packit 1c1d7e
    puts "Procedure \"Invoked\" is invoked indeed. Ok."
Packit 1c1d7e
    return $args
Packit 1c1d7e
}
Packit 1c1d7e
##
Packit 1c1d7e
# \brief must not be reference by every proc below
Packit 1c1d7e
proc NotInvoked args {
Packit 1c1d7e
    puts "Procedure \"NotInvoked\" is invoked. Not Ok!"
Packit 1c1d7e
    return $args
Packit 1c1d7e
}
Packit 1c1d7e
#
Packit 1c1d7e
# check if call references work at all
Packit 1c1d7e
proc a args {
Packit 1c1d7e
    Invoked NotInvoked
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
#
Packit 1c1d7e
# catch command
Packit 1c1d7e
# Tcl8.5: catch script ?resultVarName? ?optionsVarName?
Packit 1c1d7e
proc b args {
Packit 1c1d7e
    catch Invoked
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc c args {
Packit 1c1d7e
    catch Invoked NotInvoked
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc d args {
Packit 1c1d7e
    catch Invoked NotInvoked NotInvoked
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc e args {
Packit 1c1d7e
    set r [catch Invoked NotInvoked NotInvoked]
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc f args {
Packit 1c1d7e
    set r [catch {Invoked} NotInvoked NotInvoked]
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc g args {
Packit 1c1d7e
    set r [catch {
Packit 1c1d7e
        set x [Invoked]
Packit 1c1d7e
        } NotInvoked NotInvoked]
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
# eval arg ?arg ...?
Packit 1c1d7e
proc h args {
Packit 1c1d7e
    eval Invoked NotInvoked
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
proc i args {
Packit 1c1d7e
    eval set NotInvoked [Invoked NotInvoked]
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
# This is a striped down example. Original:
Packit 1c1d7e
#
Packit 1c1d7e
# jpeg.tcl --
Packit 1c1d7e
#
Packit 1c1d7e
#       Querying and modifying JPEG image files.
Packit 1c1d7e
#
Packit 1c1d7e
# Copyright (c) 2004    Aaron Faupell <afaupell@users.sourceforge.net>
Packit 1c1d7e
#
Packit 1c1d7e
# ...
Packit 1c1d7e
# eval [list addComment $file] [lreplace $com 0 0 $comment]
Packit 1c1d7e
# ...
Packit 1c1d7e
proc j args {
Packit 1c1d7e
    eval [list set] [list NotInvoked] [Invoked NotInvoked]
Packit 1c1d7e
    return
Packit 1c1d7e
}
Packit 1c1d7e
#
Packit 1c1d7e
# call all single letter procs
Packit 1c1d7e
# let tcl check what is called and what is not called
Packit 1c1d7e
foreach p [info procs ?] {
Packit 1c1d7e
    puts "Check procedure \"$p\""
Packit 1c1d7e
    $p
Packit 1c1d7e
}
Packit 1c1d7e
exit
Packit 1c1d7e