Index: openacs-4/packages/acs-tcl/tcl/memoize-procs-naviserver.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/memoize-procs-naviserver.tcl,v diff -u -N -r1.9.2.3 -r1.9.2.4 --- openacs-4/packages/acs-tcl/tcl/memoize-procs-naviserver.tcl 28 Oct 2020 15:39:19 -0000 1.9.2.3 +++ openacs-4/packages/acs-tcl/tcl/memoize-procs-naviserver.tcl 26 Dec 2020 16:17:55 -0000 1.9.2.4 @@ -62,7 +62,7 @@ if {$max_age ne ""} { set max_age "-expires $max_age" } - ns_cache_eval {*}$max_age -- util_memoize $script {*}$script + ns_cache_eval {*}$max_age -- util_memoize $script [list eval $script] } else { uplevel $script } Index: openacs-4/packages/acs-tcl/tcl/test/memoizing-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/test/memoizing-procs.tcl,v diff -u -N -r1.4.2.1 -r1.4.2.2 --- openacs-4/packages/acs-tcl/tcl/test/memoizing-procs.tcl 3 Jul 2020 07:27:29 -0000 1.4.2.1 +++ openacs-4/packages/acs-tcl/tcl/test/memoizing-procs.tcl 26 Dec 2020 16:17:55 -0000 1.4.2.2 @@ -32,24 +32,45 @@ -cats {api smoke} \ -procs {util_memoize util_memoize_cached_p} \ util_memoize_cache { - Test cache of a proc executed before + Test caching of a cmd call } { - aa_log "caching a proc" - util_memoize {memoizing_procs_test::return_string -name "foobar"} + 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 "proc was cached successful" $success_p 1 + 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"} + 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}