debuggers: import openocd-0.7.0
Initial check-in of openocd-0.7.0 as it can be downloaded from http://sourceforge.net/projects/openocd/files/openocd/0.7.0/ Any modifications will follow. Change-Id: I6949beaefd589e046395ea0cb80f4e1ab1654d55
This commit is contained in:
127
debuggers/openocd/jimtcl/tests/proc-new.test
Normal file
127
debuggers/openocd/jimtcl/tests/proc-new.test
Normal file
@ -0,0 +1,127 @@
|
||||
source [file dirname [info script]]/testing.tcl
|
||||
|
||||
needs constraint jim
|
||||
needs cmd array
|
||||
|
||||
proc aproc {} {
|
||||
list
|
||||
}
|
||||
proc bproc {b} {
|
||||
list b $b
|
||||
}
|
||||
proc cproc {b c} {
|
||||
list b $b c $c
|
||||
}
|
||||
proc dproc {b c {d dd}} {
|
||||
list b $b c $c d $d
|
||||
}
|
||||
proc eproc {b c {d dd} e} {
|
||||
list b $b c $c d $d e $e
|
||||
}
|
||||
proc fproc {b c {d dd} args} {
|
||||
list b $b c $c d $d args $args
|
||||
}
|
||||
proc gproc {b c {d dd} args e} {
|
||||
list b $b c $c d $d args $args e $e
|
||||
}
|
||||
proc hproc {{a aa} args} {
|
||||
list a $a args $args
|
||||
}
|
||||
|
||||
proc iproc {{a aa} b {c cc}} {
|
||||
list a $a b $b c $c
|
||||
}
|
||||
|
||||
proc jproc {args {a aa} b {c cc} d} {
|
||||
list a $a b $b c $c d $d args $args
|
||||
}
|
||||
|
||||
set n 1
|
||||
foreach {proc params result} {
|
||||
aproc {} {}
|
||||
bproc B {b B}
|
||||
cproc {B C} {b B c C}
|
||||
dproc {B C} {b B c C d dd}
|
||||
dproc {B C D} {b B c C d D}
|
||||
eproc {B C D E} {b B c C d D e E}
|
||||
eproc {B C E} {b B c C d dd e E}
|
||||
fproc {B C} {b B c C d dd args {}}
|
||||
fproc {B C D} {b B c C d D args {}}
|
||||
fproc {B C D E} {b B c C d D args E}
|
||||
fproc {B C D E F} {b B c C d D args {E F}}
|
||||
gproc {B C E} {b B c C d dd args {} e E}
|
||||
gproc {B C D E} {b B c C d D args {} e E}
|
||||
gproc {B C D X E} {b B c C d D args X e E}
|
||||
gproc {B C D X Y Z E} {b B c C d D args {X Y Z} e E}
|
||||
hproc {} {a aa args {}}
|
||||
hproc {A} {a A args {}}
|
||||
hproc {A X Y Z} {a A args {X Y Z}}
|
||||
iproc {B} {a aa b B c cc}
|
||||
iproc {A B} {a A b B c cc}
|
||||
iproc {A B C} {a A b B c C}
|
||||
jproc {B D} {a aa b B c cc d D args {}}
|
||||
jproc {A B D} {a A b B c cc d D args {}}
|
||||
jproc {A B C D} {a A b B c C d D args {}}
|
||||
jproc {E F A B C D} {a A b B c C d D args {E F}}
|
||||
} {
|
||||
test proc-1.$n "Proc args combos" [list $proc {*}$params] $result
|
||||
incr n
|
||||
}
|
||||
|
||||
proc onearg_search {{nocase ""} value list} {
|
||||
lsearch {*}$nocase $list $value
|
||||
}
|
||||
|
||||
proc multiarg_search {args value list} {
|
||||
lsearch {*}$args $list $value
|
||||
}
|
||||
|
||||
test proc-2.1 "Real test of optional switches" {
|
||||
onearg_search c {A a B b C c D d}
|
||||
} 5
|
||||
|
||||
test proc-2.2 "Real test of optional switches" {
|
||||
onearg_search -nocase c {A a B b C c D d}
|
||||
} 4
|
||||
|
||||
test proc-2.3 "Real test of optional switches" {
|
||||
multiarg_search -glob c* {A a B b C c D d}
|
||||
} 5
|
||||
|
||||
test proc-2.4 "Real test of optional switches" {
|
||||
multiarg_search -nocase -glob c* {A a B b C c D d}
|
||||
} 4
|
||||
|
||||
test proc-3.1 "Rename optional args" {
|
||||
proc a {b {args vars}} {
|
||||
}
|
||||
catch {a} msg
|
||||
set msg
|
||||
} {wrong # args: should be "a b ?vars ...?"}
|
||||
|
||||
test proc-3.2 "Rename optional args" {
|
||||
proc a {b {args vars} c} {
|
||||
}
|
||||
catch {a} msg
|
||||
set msg
|
||||
} {wrong # args: should be "a b ?vars ...? c"}
|
||||
|
||||
test proc-3.2 "Rename optional args" {
|
||||
proc a {b {args vars}} {
|
||||
return $vars
|
||||
}
|
||||
a B C D
|
||||
} {C D}
|
||||
|
||||
test proc-3.3 "dict sugar arg" {
|
||||
proc a {b(c)} { return $b}
|
||||
a 4
|
||||
} {c 4}
|
||||
|
||||
test proc-3.4 "invalid upref in rightargs" {
|
||||
proc a {{x 2} &b} { return $b}
|
||||
unset -nocomplain B
|
||||
catch {a B}
|
||||
} 1
|
||||
|
||||
testreport
|
||||
Reference in New Issue
Block a user