aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal/rosa/azalea/evaluate_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/rosa/azalea/evaluate_test.go')
-rw-r--r--internal/rosa/azalea/evaluate_test.go16
1 files changed, 16 insertions, 0 deletions
diff --git a/internal/rosa/azalea/evaluate_test.go b/internal/rosa/azalea/evaluate_test.go
index b4fa4802..7625db62 100644
--- a/internal/rosa/azalea/evaluate_test.go
+++ b/internal/rosa/azalea/evaluate_test.go
@@ -25,6 +25,17 @@ func makeStackCheck(check func(args FArgs) (any, error)) []Frame {
}}}
}
+// checkArgs is like makeStackCheck, but the resulting function asserts that its
+// args match the expected value.
+func checkArgs(want FArgs) []Frame {
+ return makeStackCheck(func(args FArgs) (any, error) {
+ if !reflect.DeepEqual(args, want) {
+ return nil, fmt.Errorf("%#v, want %#v", args, want)
+ }
+ return "\xfd", nil
+ })
+}
+
func TestEvaluate(t *testing.T) {
t.Parallel()
@@ -164,6 +175,11 @@ func TestEvaluate(t *testing.T) {
{"source handle", `package name { source = name; }`, nil, FArgs{
{K: unique.Make(Ident("source")), V: Ident("name")},
}, nil},
+
+ {"integer array", `f { v = [ 0 ]; _v = [ 0, 9 ]; }`, checkArgs(FArgs{
+ {K: unique.Make(Ident("v")), V: []int64{0}},
+ {K: unique.Make(Ident("_v")), V: []int64{0, 9}},
+ }), "\xfd", nil},
}
for _, tc := range testCases {
t.Run(tc.name, func(t *testing.T) {