mirror of
https://github.com/microsoft/regorus.git
synced 2026-08-05 02:16:11 +00:00
Handle chained _ (#27)
Signed-off-by: Anand Krishnamoorthi <anakrish@microsoft.com>
This commit is contained in:
committed by
GitHub
parent
2436467fbd
commit
951bb6b14c
152
tests/interpreter/cases/loop/chained.yaml
Normal file
152
tests/interpreter/cases/loop/chained.yaml
Normal file
@@ -0,0 +1,152 @@
|
||||
# Copyright (c) Microsoft Corporation.
|
||||
# Licensed under the MIT License.
|
||||
cases:
|
||||
- note: chained
|
||||
data: {}
|
||||
modules:
|
||||
- |
|
||||
package test
|
||||
|
||||
sites := [
|
||||
{
|
||||
"region": "east",
|
||||
"name": "prod",
|
||||
"servers": [
|
||||
{
|
||||
"name": "web-0",
|
||||
"hostname": "hydrogen"
|
||||
},
|
||||
{
|
||||
"name": "web-1",
|
||||
"hostname": "helium"
|
||||
},
|
||||
{
|
||||
"name": "db-0",
|
||||
"hostname": "lithium"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"region": "west",
|
||||
"name": "smoke",
|
||||
"servers": [
|
||||
{
|
||||
"name": "web-1000",
|
||||
"hostname": "beryllium"
|
||||
},
|
||||
{
|
||||
"name": "web-1001",
|
||||
"hostname": "boron"
|
||||
},
|
||||
{
|
||||
"name": "db-1000",
|
||||
"hostname": "carbon"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"region": "west",
|
||||
"name": "dev",
|
||||
"servers": [
|
||||
{
|
||||
"name": "web-dev",
|
||||
"hostname": "nitrogen"
|
||||
},
|
||||
{
|
||||
"name": "db-dev",
|
||||
"hostname": "oxygen"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
|
||||
apps := [
|
||||
{
|
||||
"name": "web",
|
||||
"servers": ["web-0", "web-1", "web-1000", "web-1001", "web-dev"]
|
||||
},
|
||||
{
|
||||
"name": "mysql",
|
||||
"servers": ["db-0", "db-1000"]
|
||||
},
|
||||
{
|
||||
"name": "mongodb",
|
||||
"servers": ["db-dev"]
|
||||
}
|
||||
]
|
||||
|
||||
containers := [
|
||||
{
|
||||
"image": "redis",
|
||||
"ipaddress": "10.0.0.1",
|
||||
"name": "big_stallman"
|
||||
},
|
||||
{
|
||||
"image": "nginx",
|
||||
"ipaddress": "10.0.0.2",
|
||||
"name": "cranky_euclid"
|
||||
}
|
||||
]
|
||||
|
||||
x1[y] {
|
||||
y = sites[_].servers[_].hostname
|
||||
}
|
||||
|
||||
x5[y] {
|
||||
y = sites[i].servers[i].hostname
|
||||
}
|
||||
|
||||
obj = {
|
||||
"a" : {
|
||||
"a" : "b",
|
||||
"b" : "c"
|
||||
},
|
||||
"c" : {
|
||||
"c" : "d"
|
||||
}
|
||||
}
|
||||
|
||||
x6[y] {
|
||||
y = obj[i][i]
|
||||
}
|
||||
|
||||
# Another definition for x6
|
||||
x6[y] {
|
||||
y = obj[i][obj[i][i]]
|
||||
}
|
||||
|
||||
x7[y] {
|
||||
y = obj[i][obj[i][i]]
|
||||
}
|
||||
|
||||
results = {
|
||||
"x1" : x1,
|
||||
"x2" : x1 == { y | y = sites[i].servers[_].hostname },
|
||||
"x3" : x1 == { y | y = sites[_].servers[i].hostname },
|
||||
"x4" : x1 == { y | y = sites[i].servers[j].hostname },
|
||||
"x6" : x6,
|
||||
"x7" : x7,
|
||||
}
|
||||
|
||||
|
||||
query: data.test.results
|
||||
want_result:
|
||||
x1:
|
||||
set!: [
|
||||
"beryllium",
|
||||
"boron",
|
||||
"carbon",
|
||||
"helium",
|
||||
"hydrogen",
|
||||
"lithium",
|
||||
"nitrogen",
|
||||
"oxygen",
|
||||
]
|
||||
x2: true
|
||||
x3: true
|
||||
x4: true
|
||||
x6:
|
||||
set!: ["b", "c", "d"]
|
||||
x7:
|
||||
set!: ["c"]
|
||||
|
||||
Reference in New Issue
Block a user