Preface
@@ -1726,68 +1726,82 @@Itemmap Handling
For cases were the dependent test has a similar but not identical itempath to the downstream test an itemmap can allow for itemmatch mode
[requirements] -mode itemmatch -itemmap .*x/ y/ - -# ## pattern replacement notes +mode itemwait +# itemmap <item pattern for this test> <item replacement pattern for waiton test> +itemmap .*x/ y/+
# ## pattern replacement notes # # ## Example # ## Remove everything up to the last / -itemmap .*/ -# +[requirements] +mode itemwait +# itemmap <item pattern for this test> <nothing here indicates removal> +itemmap .*/+
# # ## Example # ## Replace foo/ with bar/ -itemmap foo/ bar/ - -# multi-line; matches are applied in the listed order +[requirements] +mode itemwait +# itemmap <item pattern for this test> <item replacement pattern for waiton test> +itemmap foo/ bar/+
# +# ## Example +# ## can use \{number} in replacement pattern to backreference a (capture) from matching pattern similar to sed or perl +[requirements] +mode itemwait +# itemmap <item pattern for this test> <item replacement pattern for waiton test> +itemmap foo(\d+)/ num-\1/bar/+
# multi-line; matches are applied in the listed order # The following would map: # a123b321 to b321fooa123 then to 321fooa123p # +[requirements] itemmap (a\d+)(b\d+) \2foo\1 b(.*) \1p
Complex mappings
-Complex mappings can be handled with the [itemmap] section
Complex mapping
+Complex mappings can be handled with a separate [itemmap] section (instead if an itemmap line in the [requirements] section)
Each line in an itemmap section starts with a waiton test name followed by an itemmap expression
[itemmap] +A foo/ bar/ +B stuff/+
Complex mapping example
Example:
-
-
-
-
-Request to run D/1/res -
-
- -
-
-Megatest uses rule "(\d+)/res" → "\1/aa" to create item C/1/aa from D/1/res -
-
- -
-
-Full list to be run is now: D/1/res, C/1/aa -
-
- -
-
-Megatest uses rule "(\d+)/aa" → "aa/\1" to create item A/aa/1 -
-
- -
-
-Full list to be run is now: D/1/res, C/1/aa, A/aa/1 -
-
-
We accomplish this by configuring the testconfigs of our tests C D and E as follows:
[requirements] waiton A B @@ -1808,10 +1822,38 @@[requirements] waiton C itemmap (\d+)/res \1/bb
Example from image just above, we want the following to occur:
-
+
-
+
+We want the above to execute when we request pattern D/1/res, eg from command line megatest -run -testpatt D/1/res -target … -runname … +
+
+ -
+
+"(\d+)/res" → "\1/aa" to require C/1/aa be executed before D/1/res +
+
+ -
+
+Full list to be run is now: D/1/res, C/1/aa +
+
+ -
+
+"(\d+)/aa" → "aa/\1" to create item A/aa/1 +
+
+ -
+
+Full list to be run is now: D/1/res, C/1/aa, A/aa/1 +
+
+