diff --git a/parser/tst/equality.sh b/parser/tst/equality.sh index 418043a15..7370c61f7 100755 --- a/parser/tst/equality.sh +++ b/parser/tst/equality.sh @@ -170,12 +170,19 @@ verify_binary_equality "dbus variable expansion" \ verify_binary_equality "dbus variable expansion, multiple values/rules" \ "/t { dbus (send, receive) path=/com/foo, dbus (send, receive) path=/com/bar, }" \ + "/t { dbus (send, receive) path=/com/{foo,bar}, }" \ + "/t { dbus (send, receive) path={/com/foo,/com/bar}, }" \ "@{FOO}=foo /t { dbus (send, receive) path=/com/@{FOO}, dbus (send, receive) path=/com/bar, }" \ "@{FOO}=foo bar /t { dbus (send, receive) path=/com/@{FOO}, }" \ "@{FOO}=bar foo - /t { dbus (send, receive) path=/com/@{FOO}, }" + /t { dbus (send, receive) path=/com/@{FOO}, }" \ + "@{FOO}={bar,foo} + /t { dbus (send, receive) path=/com/@{FOO}, }" \ + "@{FOO}=foo + @{BAR}=bar + /t { dbus (send, receive) path=/com/{@{FOO},@{BAR}}, }" \ verify_binary_equality "dbus variable expansion, ensure rule de-duping occurs" \ "/t { dbus (send, receive) path=/com/foo, dbus (send, receive) path=/com/bar, }" \ diff --git a/parser/tst/simple_tests/vars/vars_alternation_3.sd b/parser/tst/simple_tests/vars/vars_alternation_3.sd new file mode 100644 index 000000000..2b1bc0c96 --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_alternation_3.sd @@ -0,0 +1,8 @@ +#=DESCRIPTION variable w/part of an alternation included +#=EXRESULT PASS + +@{BAR}={bar,baz,blort + +/does/not/exist { + /does/not/@{BAR},exist,notexist} r, +} diff --git a/parser/tst/simple_tests/vars/vars_alternation_4.sd b/parser/tst/simple_tests/vars/vars_alternation_4.sd new file mode 100644 index 000000000..c57adac06 --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_alternation_4.sd @@ -0,0 +1,8 @@ +#=DESCRIPTION variable w/part of an alternation included +#=EXRESULT PASS + +@{BAR}=bar,baz,blort} + +/does/not/exist { + /does/not/{exist,notexist@{BAR}/meep r, +} diff --git a/parser/tst/simple_tests/vars/vars_alternation_5.sd b/parser/tst/simple_tests/vars/vars_alternation_5.sd new file mode 100644 index 000000000..46954a81d --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_alternation_5.sd @@ -0,0 +1,8 @@ +#=DESCRIPTION variable w/part of an alternation included +#=EXRESULT PASS + +@{BAR}=bar,baz,blort + +/does/not/exist { + /does/not/{exist@{BAR}notexist}/meep r, +} diff --git a/parser/tst/simple_tests/vars/vars_dbus_10.sd b/parser/tst/simple_tests/vars/vars_dbus_10.sd new file mode 100644 index 000000000..4a5637edf --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_dbus_10.sd @@ -0,0 +1,14 @@ +#=DESCRIPTION reference variables in dbus rules, var containing alternation +#=EXRESULT PASS + +@{BUSES}=session system +@{TLDS}=com org +@{MEMBERS}={Get,Set} + +/does/not/exist { + dbus (send, receive) + bus=@{BUSES} + path=/@{TLDS}/foo + member=@{MEMBERS}.bar, + +} diff --git a/parser/tst/simple_tests/vars/vars_dbus_11.sd b/parser/tst/simple_tests/vars/vars_dbus_11.sd new file mode 100644 index 000000000..03f2c40a5 --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_dbus_11.sd @@ -0,0 +1,14 @@ +#=DESCRIPTION reference variables in dbus rules, nested embedded alternations +#=EXRESULT PASS + +@{BUSES}=session system +@{TLDS}=com org +@{MEMBERS}={Get,Set} + +/does/not/exist { + dbus (send, receive) + bus=@{BUSES} + path=/@{TLDS}/foo + member={@{MEMBERS}.bar,List.baz}, + +} diff --git a/parser/tst/simple_tests/vars/vars_dbus_8.sd b/parser/tst/simple_tests/vars/vars_dbus_8.sd new file mode 100644 index 000000000..03f135baa --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_dbus_8.sd @@ -0,0 +1,13 @@ +#=DESCRIPTION reference variables in dbus rules, embedded within alternation +#=EXRESULT PASS + +@{TLDS}=com org +@{DOMAINS}=gnome freedesktop + +/does/not/exist { + dbus (send, receive) + bus=session + path={/@{TLDS}/foo,/com/@{DOMAINS}} + interface=@{TLDS}.freedesktop + peer=(name=@{TLDS}.freedesktop label=/@{TLDS}/freedesktop), +} diff --git a/parser/tst/simple_tests/vars/vars_dbus_9.sd b/parser/tst/simple_tests/vars/vars_dbus_9.sd new file mode 100644 index 000000000..1d25c279f --- /dev/null +++ b/parser/tst/simple_tests/vars/vars_dbus_9.sd @@ -0,0 +1,18 @@ +#=DESCRIPTION reference variables in dbus rules, multiple expansions +#=EXRESULT PASS + +@{BUSES}=session system +@{TLDS}=com org +@{DOMAINS}=gnome freedesktop +@{FOO}=bar baz +@{BAR}=@{FOO}/blort +@{MEMBERS}=Get Set + +/does/not/exist { + dbus (send, receive) + bus=@{BUSES} + path=/@{TLDS}/foo + member=@{MEMBERS}.bar + interface=@{TLDS}.@{DOMAINS} + peer=(name=@{TLDS}.@{DOMAINS} label=/@{TLDS}/@{BAR}), +}