If you typed
atest host list --label label0,"comma,label"
on the shell command line, wouldn't the quotes get consumed by the shell
first?
-Jongki
On Mon, Jun 21, 2010 at 12:39 PM, James Ren <[email protected]> wrote:
> (Resending for dalecurtis; Patchwork didn't pick up the patch, and I
> suspect it's because it doesn't recognize the file extension)
>
> All,
>
> The "host list", "host create", and "job create" command line options for
> the atest CLI module do not support labels with commas. In our deployment we
> have several labels which contain commas, leading to some bad parsing when
> trying to use the CLI tools. I've added quoting support to the
> topic_common.item_parse_info.get_values.__get_items(...) function to fix
> this.
>
> For example, previously 'atest host list --label label0,"comma,label"'
> would not be parsed properly into two labels. Now the labels are parsed as
> 'label0' and 'comma,label'.
>
> Any option using topic_common.item_parse_info gets this behavior for free.
> Specifically for our needs, I've changed the "atest host list" and "atest
> job create" methods from using <string>.split(',') to
> topic_common.item_parse_info for labels.
>
> Implementation wise, I modified the
> topic_common.item_parse_info.get_values.__get_items(...) regex so that it
> wouldn't split up items in quotes and changed the stripping so that leading
> and trailing quotes were removed from the split items. The new regex is ([,
> ]|\\\".*?\\\".*?) if space splitting is enabled and ([,]|\\\".*?\\\".*?)
> otherwise.
>
> Testing was done through 18 new unit tests, running the gamut of good
> quotes and mismatched quotes at the parser level as well as individual unit
> tests for the "host list", "host create", and "job create" methods.
>
> All unit tests pass, but if there are any deployments out there that were
> using the CLI tools and have quotes in their labels (or any option relying
> on topic_common.item_parse_info), they will no longer parse properly.
> Another more minor quibble is consistency from a user point of view. I've
> only added support for quotes to the topic_common.item_parse_info class, but
> there are a couple other areas which are still using <string>.split(',') to
> parse their options. Specifically status names, host names, test names, and
> dependencies in the host.py and job.py files. I've left these alone for now,
> but if anyone objects I can roll them in.
>
> I've attached the patch file for the changes, but if you prefer a more GUI
> driven experience, you can see the change list here:
>
> http://codereview.chromium.org/2740001/show
>
> Risk: Low-Medium (CLI infrastructure and tests modified)
> Visibility: CLI users
>
> Regards,
>
> Dale Curtis
> Software Engineer in Test @ Google
>
> Signed-off-by: Dale Curtis <[email protected]>
>
> _______________________________________________
> Autotest mailing list
> [email protected]
> http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
>
>
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest