This ports TestAstFunc2 from our home-grown content storage system to the txtar package. Since a single file can be used to represent the entire folder hierarchy, this makes it much easier to see and edit tests.
48 lines
700 B
Plaintext
48 lines
700 B
Plaintext
-- main.mcl --
|
|
# this can return changing functions, and could be optimized, too
|
|
$funcgen = func($a) {
|
|
if $a {
|
|
func($b) {
|
|
if $b == "hello" {
|
|
func() {
|
|
"true-true"
|
|
}
|
|
} else {
|
|
func() {
|
|
"true-false"
|
|
}
|
|
}
|
|
}
|
|
} else {
|
|
func($b) {
|
|
if $b == "hello" {
|
|
func() {
|
|
"false-true"
|
|
}
|
|
} else {
|
|
func() {
|
|
"false-false"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
$fn1 = $funcgen(true)
|
|
$fn2 = $funcgen(false)
|
|
|
|
$out1 = $fn1("hello")
|
|
$out2 = $fn1("world")
|
|
$out3 = $fn2("hello")
|
|
$out4 = $fn2("world")
|
|
|
|
test $out1() {}
|
|
test $out2() {}
|
|
test $out3() {}
|
|
test $out4() {}
|
|
-- OUTPUT --
|
|
Vertex: test[true-true]
|
|
Vertex: test[true-false]
|
|
Vertex: test[false-true]
|
|
Vertex: test[false-false]
|