Skip to content

Commit

Permalink
rego-v1: Future-proofing Wasm tests to be 1.0 compatible (#7047)
Browse files Browse the repository at this point in the history
Signed-off-by: Johan Fylling <[email protected]>
  • Loading branch information
johanfylling committed Sep 20, 2024
1 parent d150780 commit 6bfd4cd
Show file tree
Hide file tree
Showing 10 changed files with 226 additions and 142 deletions.
55 changes: 34 additions & 21 deletions test/wasm/assets/007_complete.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,71 +18,80 @@ cases:
modules:
- |
package x
p = y { x = 1; y = x }
import rego.v1
p = y if { x = 1; y = x }
want_defined: true
- note: variable (negative)
query: data.x.p = 1
modules:
- |
package x
p = y { x = 2; y = x }
import rego.v1
p = y if { x = 2; y = x }
want_defined: false
- note: composites
query: data.x.p = [1]
modules:
- |
package x
p = [x] { x = 1 }
import rego.v1
p = [x] if { x = 1 }
want_defined: true
- note: composites (negative)
query: data.x.p = [1]
modules:
- |
package x
p = [x] { x = 2 }
import rego.v1
p = [x] if { x = 2 }
want_defined: false
- note: conjunction
query: data.x.p = 1
modules:
- |
package x
p = 1 { q; r }
q { true }
r { true }
import rego.v1
p = 1 if { q; r }
q if { true }
r if { true }
want_defined: true
- note: conjunction (negative)
query: data.x.p = 1
modules:
- |
package x
p = 1 { q; r }
q { true }
r { false }
import rego.v1
p = 1 if { q; r }
q if { true }
r if { false }
want_defined: false
- note: disjunction
query: data.x.p = 2
modules:
- |
package x
p = 1 { false }
p = 2 { true }
p = 3 { false }
import rego.v1
p = 1 if { false }
p = 2 if { true }
p = 3 if { false }
want_defined: true
- note: disjunction (negative)
query: data.x.p = 1
modules:
- |
package x
p = 1 { false }
p = 2 { false }
p = 3 { true }
import rego.v1
p = 1 if { false }
p = 2 if { false }
p = 3 if { true }
want_defined: false
- note: negation
query: not data.x.p = 1
modules:
- |
package x
p = 1 { false } # undefined
import rego.v1
p = 1 if { false } # undefined
want_defined: true
- note: negation (negative)
query: not data.x.p = 1
Expand Down Expand Up @@ -114,35 +123,39 @@ cases:
modules:
- |
package x
import rego.v1
p = q
q = r
r { input.x = 1 }
r if { input.x = 1 }
input: {"x": 1}
want_defined: true
- note: chain input (negative)
query: data.x.p = true
modules:
- |
package x
import rego.v1
p = q
q = r
r { input.x = 2 }
r if { input.x = 2 }
input: {"x": 1}
want_defined: false
- note: iteration
query: data.x.p = 1
modules:
- |
package x
p = 1 { input[x] = 1 }
import rego.v1
p = 1 if { input[x] = 1 }
input: [3,2,1]
want_defined: true
- note: iteration (negative)
query: data.x.p = 1
modules:
- |
package x
p = 1 { input[x] = 4 }
import rego.v1
p = 1 if { input[x] = 4 }
input: [3,2,1]
want_defined: false
- note: conflict error
Expand Down
25 changes: 16 additions & 9 deletions test/wasm/assets/008_functions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,40 +60,45 @@ cases:
modules:
- |
package x
f(x) = 1 { x <= 0 }
f(x) = 0 { x > 0 }
import rego.v1
f(x) = 1 if { x <= 0 }
f(x) = 0 if { x > 0 }
want_defined: true
- note: disjunction (negative)
query: data.x.f(1) = 2
modules:
- |
package x
f(x) = 1 { x <= 0 }
f(x) = 0 { x > 0 }
import rego.v1
f(x) = 1 if { x <= 0 }
f(x) = 0 if { x > 0 }
want_defined: false
- note: negation
query: not data.x.f(-1)
modules:
- |
package x
f(x) = x { x >= 0 }
import rego.v1
f(x) = x if { x >= 0 }
want_defined: true
- note: input
query: data.x.f(1) = 1
modules:
- |
package x
import rego.v1
f(x) = g(x)
g(x) = x { input.x = x }
g(x) = x if { input.x = x }
input: {"x": 1}
want_defined: true
- note: input (negative)
query: data.x.f(1) = 1
modules:
- |
package x
import rego.v1
f(x) = g(x)
g(x) = x { input.x = x }
g(x) = x if { input.x = x }
input: {"x": 2}
want_defined: false
- note: conflict error
Expand All @@ -109,14 +114,16 @@ cases:
modules:
- |
package test
import rego.v1
f(x) = false
p = true { f(1) }
p = true if { f(1) }
want_defined: false
- note: 'negated false result'
query: data.test.p = x
modules:
- |
package test
import rego.v1
f(x) = false
p = true { not f(1) }
p = true if { not f(1) }
want_defined: true
12 changes: 8 additions & 4 deletions test/wasm/assets/009_default.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -11,16 +11,18 @@ cases:
modules:
- |
package x
import rego.v1
default p = 1
p = 2 { false }
p = 2 if { false }
want_defined: true
- note: default fallback (negative)
query: data.x.p = 2
modules:
- |
package x
import rego.v1
default p = 1
p = 2 { false }
p = 2 if { false }
want_defined: false
- note: default skipped
query: data.x.p = 2
Expand All @@ -35,14 +37,16 @@ cases:
modules:
- |
package x
import rego.v1
default p = [1 | false]
p = "deadbeef" { false }
p = "deadbeef" if { false }
want_defined: True
- note: default requires eval
query: data.x.p = [1]
modules:
- |
package x
import rego.v1
default p = [1 | true]
p = "deadbeef" { false }
p = "deadbeef" if { false }
want_defined: true
Loading

0 comments on commit 6bfd4cd

Please sign in to comment.