t_builtin-iterator_test.go: added setup and cleanup function that prepare data&files for test.
This commit is contained in:
@@ -5,9 +5,15 @@
|
|||||||
package expr
|
package expr
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
|
"os"
|
||||||
"testing"
|
"testing"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const (
|
||||||
|
testFilePath = "/tmp/.go-test.txt"
|
||||||
|
)
|
||||||
|
|
||||||
func TestFuncRun(t *testing.T) {
|
func TestFuncRun(t *testing.T) {
|
||||||
section := "Builtin-Iterator"
|
section := "Builtin-Iterator"
|
||||||
|
|
||||||
@@ -16,16 +22,41 @@ func TestFuncRun(t *testing.T) {
|
|||||||
/* 2 */ {`builtin "iterator"; run($(1,2,3), func(index,item){item+10})`, nil, nil},
|
/* 2 */ {`builtin "iterator"; run($(1,2,3), func(index,item){item+10})`, nil, nil},
|
||||||
/* 3 */ {`builtin "iterator"; run($(..4), func(index,item){status=status+item; true}, {"status":0})`, int64(6), nil},
|
/* 3 */ {`builtin "iterator"; run($(..4), func(index,item){status=status+item; true}, {"status":0})`, int64(6), nil},
|
||||||
/* 4 */ {`builtin ["iterator", "fmt"]; run($(1,2,3), func(index,item){println(item+10)})`, nil, nil},
|
/* 4 */ {`builtin ["iterator", "fmt"]; run($(1,2,3), func(index,item){println(item+10)})`, nil, nil},
|
||||||
/* 5 */ {`builtin "iterator"; run(nil)`, nil, `paramter "iterator" must be an iterator, passed <nil> [nil]`},
|
/* 5 */ {`builtin "iterator"; run(nil)`, nil, `type of "iterator" must be iterator, passed <nil> [nil]`},
|
||||||
/* 6 */ {`builtin "iterator"; run($(1,2,3), nil)`, nil, nil},
|
/* 6 */ {`builtin "iterator"; run($(1,2,3), nil)`, int64(3), nil},
|
||||||
/* 7 */ {`builtin "iterator"; run($(1,2,3), func(){1}, "prrr")`, nil, `paramter "vars" must be a dictionary, passed prrr [string]`},
|
/* 7 */ {`builtin "iterator"; run($(1,2,3), func(){1}, "prrr")`, nil, `type of "vars" must be dict, passed prrr [string]`},
|
||||||
/* 8 */ {`builtin "iterator"; run($(1,2,3), operator=nil)`, nil, nil},
|
/* 8 */ {`builtin "iterator"; run($(1,2,3), operator=nil)`, int64(3), nil},
|
||||||
/* 9 */ {`builtin "iterator"; run($(1,2,3), operatorx=nil)`, nil, `run(): unknown param "operatorx"`},
|
/* 9 */ {`builtin "iterator"; run($(1,2,3), operatorx=nil)`, nil, `run(): unknown param "operatorx"`},
|
||||||
/* 10 */ {`builtin ["os.file", "iterator"]; it = fileLineIterator("test-file.txt"); run(it)`, nil, nil},
|
/* 10 */ {fmt.Sprintf(`builtin ["os.file", "iterator"]; it = fileLineIterator(%q); run(it)`, testFilePath), int64(2), nil},
|
||||||
|
/* 11 */ {`builtin "iterator"; op = func(index, item){ (index > 2) ? {abort("aborted")} :: {status="ok"} }; run($(..5), op)`, "aborted", nil},
|
||||||
|
/* 12 */ {`builtin "iterator"; op = func(index, item){ (index > 2) ? {abort("aborted")} :: {status="ok"} }; run($(..1), op)`, "ok", nil},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := setupBuiltinIterator(); err != nil {
|
||||||
|
t.Error(err)
|
||||||
|
return
|
||||||
|
}
|
||||||
//t.Setenv("EXPR_PATH", ".")
|
//t.Setenv("EXPR_PATH", ".")
|
||||||
|
|
||||||
// RunTestSuiteSpec(t, section, inputs, 3)
|
// RunTestSuiteSpec(t, section, inputs, 10)
|
||||||
RunTestSuite(t, section, inputs)
|
RunTestSuite(t, section, inputs)
|
||||||
|
|
||||||
|
cleanupBuiltinIterator()
|
||||||
|
}
|
||||||
|
|
||||||
|
func setupBuiltinIterator() (err error) {
|
||||||
|
var fh *os.File
|
||||||
|
// Create test file
|
||||||
|
if fh, err = os.Create(testFilePath); err == nil {
|
||||||
|
defer fh.Close()
|
||||||
|
fmt.Fprintln(fh, "uno")
|
||||||
|
fmt.Fprintln(fh, "due")
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func cleanupBuiltinIterator() {
|
||||||
|
if fileExists(testFilePath) {
|
||||||
|
os.Remove(testFilePath)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user