From e896e06a930ed149075cacdc59a3530185da12a3 Mon Sep 17 00:00:00 2001 From: Celestino Amoroso Date: Thu, 30 Jul 2026 15:39:44 +0200 Subject: [PATCH] t_builtin-iterator_test.go: added setup and cleanup function that prepare data&files for test. --- t_builtin-iterator_test.go | 43 ++++++++++++++++++++++++++++++++------ 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/t_builtin-iterator_test.go b/t_builtin-iterator_test.go index 27d9c93..676d431 100644 --- a/t_builtin-iterator_test.go +++ b/t_builtin-iterator_test.go @@ -5,9 +5,15 @@ package expr import ( + "fmt" + "os" "testing" ) +const ( + testFilePath = "/tmp/.go-test.txt" +) + func TestFuncRun(t *testing.T) { 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}, /* 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}, - /* 5 */ {`builtin "iterator"; run(nil)`, nil, `paramter "iterator" must be an iterator, passed [nil]`}, - /* 6 */ {`builtin "iterator"; run($(1,2,3), nil)`, nil, nil}, - /* 7 */ {`builtin "iterator"; run($(1,2,3), func(){1}, "prrr")`, nil, `paramter "vars" must be a dictionary, passed prrr [string]`}, - /* 8 */ {`builtin "iterator"; run($(1,2,3), operator=nil)`, nil, nil}, + /* 5 */ {`builtin "iterator"; run(nil)`, nil, `type of "iterator" must be iterator, passed [nil]`}, + /* 6 */ {`builtin "iterator"; run($(1,2,3), nil)`, int64(3), nil}, + /* 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)`, int64(3), nil}, /* 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", ".") - // RunTestSuiteSpec(t, section, inputs, 3) + // RunTestSuiteSpec(t, section, inputs, 10) 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) + } }