Files
regorus/tests/interpreter/cases/default/basic.yaml
Anand Krishnamoorthi 3a3bbcdb7d Locked down supported values in default rule.
Only scalars, composites and comprehensions containing scalars are supported.
This will be changed as OPA fixes bug with default values

Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
2023-02-10 06:13:42 -08:00

349 lines
6.9 KiB
YAML

# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
cases:
- note: basic
data: {}
modules:
- |
package test
default x = 5
a = b
default b = -6
c = d
d {
x == 3
}
d {
x == 4
}
default d = "has_default"
default object["key"] = "string"
default complex[true] = "bool_true"
default complex[false] = "bool_false"
complex["hello"] = "world"
default empty_array = []
default empty_set = set()
default empty_object = {}
default null_value = null
default true_value = true
default false_value = false
default string_value = "abc"
default composite_value = [ 1, {2}, {"a": 5}]
default array_compr = [5 | true]
default set_compr = {5 | true}
default object_compr = {"a":5 | true}
default empty_array_1 = [1 | not 1]
query: data.test
want_result:
x: 5
a: -6
b: -6
c: "has_default"
d: "has_default"
object:
object!:
- key: "key"
value: "string"
complex:
object!:
- key: true
value: "bool_true"
- key: false
value: "bool_false"
- key: "hello"
value: "world"
empty_array: []
empty_set:
set!: []
empty_object:
object!: []
null_value: null
true_value: true
false_value: false
string_value: "abc"
composite_value:
- 1
- set!: [2]
- a: 5
array_compr: [5]
set_compr:
set!: [5]
object_compr:
a: 5
empty_array_1: []
- note: invalid-var
data: {}
modules:
- |
package t
default a = x
query: data
error: invalid `var` in default value
- note: invalid-var-in-set-aray
data: {}
modules:
- |
package t
default a = [ {x} ]
query: data
error: invalid `var` in default value
- note: invalid-var-in-object-key
data: {}
modules:
- |
package t
default a = { x : 5 }
query: data
error: invalid `var` in default value
- note: invalid-var-in-object-value
data: {}
modules:
- |
package t
default a = { "x" : x }
query: data
error: invalid `var` in default value
- note: invalid-var-in-array-compr-output
data: {}
modules:
- |
package t
default a = [ x | 1 ]
query: data
error: invalid `var` in default value
- note: invalid-var-in-array-compr-query
data: {}
modules:
- |
package t
default a = [ 1 | true; x ]
query: data
error: invalid `var` in default value
- note: invalid-var-in-set-compr-output
data: {}
modules:
- |
package t
default a = { x | 1 }
query: data
error: invalid `var` in default value
- note: invalid-var-in-array-compr-query
data: {}
modules:
- |
package t
default a = { 1 | true; x }
query: data
error: invalid `var` in default value
- note: invalid-var-in-object-compr-key
data: {}
modules:
- |
package t
default a = { x : 5 | true }
query: data
error: invalid `var` in default value
- note: invalid-var-in-object-compr-value
data: {}
modules:
- |
package t
default a = { "x" : x | true }
query: data
error: invalid `var` in default value
- note: invalid-var-in-object-compr-query
data: {}
modules:
- |
package t
default a = { "a" : 5 | x }
query: data
error: invalid `var` in default value
- note: invalid-call
data: {}
modules:
- |
package t
default a = incr(5)
query: data
error: invalid `call` in default value
- note: invalid-unaryexpr
data: {}
modules:
- |
package t
default a = -b
query: data
error: invalid `unaryexpr` in default value
- note: invalid-refdot
data: {}
modules:
- |
package t
default a = {"b" : 5}.b
query: data
error: invalid `ref` in default value
- note: invalid-refbrack
data: {}
modules:
- |
package t
default a = ["abc"][0]
query: data
error: invalid `ref` in default value
- note: invalid-binexpr
data: {}
modules:
- |
package t
default a = ({5} | {6})
query: data
error: invalid `binexpr` in default value
- note: invalid-boolexpr
data: {}
modules:
- |
package t
default a = (5 > 6)
query: data
error: invalid `boolexpr` in default value
- note: invalid-arithexpr
data: {}
modules:
- |
package t
default a = (5 + 6)
query: data
error: invalid `arithexpr` in default value
- note: invalid-assignexpr
data: {}
modules:
- |
package t
# This is rejected by parser.
default a = (x = 5)
query: data
error: expecting `)`
- note: invalid-membership
data: {}
modules:
- |
package t
import future.keywords
# Following is rejected by parser
default a = 5 in {5}
query: data
error: unexpected keyword `in`
- note: invalid-some-vars
data: {}
modules:
- |
package t
default a = [5 | some a]
query: data
error: invalid `some vars` in default value
- note: invalid-some-vars
data: {}
modules:
- |
package t
default a = [5 | some a]
query: data
error: invalid `some vars` in default value
- note: invalid-every
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | every x in [1,2,3] { true }]
query: data
error: invalid `every` in default value
- note: invalid-var-in-some-in-key
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | some x in {5}]
query: data
error: invalid `var` in default value
- note: invalid-var-in-some-in-value
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | some 5, x in {5}]
query: data
error: invalid `var` in default value
- note: invalid-var-in-some-in-collection
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | some 5, 5 in x]
query: data
error: invalid `var` in default value
- note: invalid-var-in-not-expr
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | not x]
query: data
error: invalid `var` in default value
- note: invalid-var-in-expr
data: {}
modules:
- |
package t
import future.keywords
default a = [5 | x]
query: data
error: invalid `var` in default value