| # Redefine the %{global:greeting} parameter of %{global:echo} before using it. |
| # The necessary expansion order was established in the test suite config |
| # (%{global:echo} before %{global:greeting}), and redefining the parameter |
| # doesn't change that expansion order. That order would be reversed if |
| # %{global:greeting} were handled as a new substitution, preventing full |
| # expansion. |
| # |
| # REDEFINE: %{global:greeting}=Hello |
| # RUN: %{global:echo} |
| # CHECK:# | GLOBAL: Hello World |
| |
| # We can redefine the test suite config's substitutions multiple times. Again, |
| # the expansion order remains the same (%{global:echo} before %{global:greeting} |
| # before %{global:what}) but would be reversed if these were handled as new |
| # substitutions, preventing full expansion. |
| # |
| # REDEFINE: %{global:greeting}=Goodbye %{global:what} |
| # REDEFINE: %{global:what}=Sleep |
| # RUN: %{global:echo} |
| # CHECK:# | GLOBAL: Goodbye Sleep Sleep |
| |
| # A new local substitution is prepended to the substitution list so that it can |
| # depend on all substitutions that were defined previously, including those from |
| # the test suite config. |
| # |
| # DEFINE: %{local:greeting}=Hey %{global:what} |
| # DEFINE: %{local:echo}=echo "LOCAL: %{local:greeting} %{global:what}" |
| # RUN: %{local:echo} |
| # CHECK:# | LOCAL: Hey Sleep Sleep |
| |
| # As for substitutions from the test suite config, redefining local |
| # substitutions should not change the expansion order. Again, the expansion |
| # order would be reversed if these were instead handled as new substitutions, |
| # preventing full expansion. |
| # |
| # REDEFINE: %{local:greeting}=So Long %{global:what} |
| # REDEFINE: %{global:what}=World |
| # RUN: %{local:echo} |
| # CHECK:# | LOCAL: So Long World World |
| |
| # CHECK: Passed: 1 {{\([0-9]*.[0-9]*%\)}} |