• Publicity: Public Only All

memoizing-procs.tcl

automated-testing for memoizing procs

Location:
packages/acs-tcl/tcl/test/memoizing-procs.tcl
Created:
2006-07-28
Author:
Adrian Catalan <ykro@galileo.edu>

Procedures in this file

Detailed information

[ hide source ] | [ make this the default ]

Content File Source

ad_library {
    automated-testing for memoizing procs

    @author Adrian Catalan (ykro@galileo.edu)
    @creation-date 2006-07-28
}

namespace eval memoizing_procs_test {}

d_proc -private memoizing_procs_test::return_string {
    {-name:required}
} {
    Test proc that returns a string
} {
    set response "This is a test for "
    append response $name
    return $response
}

d_proc -private memoizing_procs_test::return_upper_case_text {
    {-txt:required}
} {
    Test proc that returns a string in uppercase
} {
    set response $txt
    append response " in uppercase is "
    append response [string toupper $txt]
    return $response
}

aa_register_case \
    -cats {api smoke} \
    -procs {util_memoize util_memoize_cached_p} \
    util_memoize_cache {
    Test caching of a cmd call
} {
    aa_log "caching a cmd call"
    util_memoize {memoizing_procs_test::return_string -name "foobar"}
    aa_log "checking if the proc is cached"
    set success_p [util_memoize_cached_p {memoizing_procs_test::return_string -name "foobar"}]

    aa_equals "cmd call was cached successful" $success_p 1
}

aa_register_case \
    -cats {api smoke} \
    -bugs {3448} \
    -procs {util_memoize util_memoize_cached_p} \
    util_memoize_cache_script {
        Test passing a script to util_memoize.
    } {
        aa_log "caching a script"
        set script {
            set x 1
            set y 2
            expr {$x + $y}
        }
        set r [util_memoize $script]
        aa_equals "the script was executed successfully via util_memoize" $r 3

        set success_p [util_memoize_cached_p $script]
        aa_equals "the script is recognized as being cached" $success_p 1
    }


aa_register_case \
    -cats {api smoke} \
    -procs {util_memoize util_memoize_cached_p util_memoize_flush_regexp} \
    util_memoize_cache_flush {
    Test flush of a proc cached
} {
    aa_log "caching"
    util_memoize {memoizing_procs_test::return_string -name "foobar"}
    aa_log "checking if the proc is cached"
    aa_log "flushing"
    util_memoize_flush_regexp {return_upper_case_text}
    set success_p [util_memoize_cached_p {memoizing_procs_test::return_upper_case_text -txt "foobar"}]
    aa_equals "proc was flushed successful" $success_p 0
}


# Local variables:
#    mode: tcl
#    tcl-indent-level: 4
#    indent-tabs-mode: nil
# End: