[ 
https://issues.apache.org/jira/browse/MESOS-8857?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16470672#comment-16470672
 ] 

ASF GitHub Bot commented on MESOS-8857:
---------------------------------------

GitHub user radhikaj opened a pull request:

    https://github.com/apache/mesos/pull/289

    Fixtestflags

    Fixing bug described in
    https://issues.apache.org/jira/browse/MESOS-8857
    echo on windows just reproduces the command line args it receives and does 
not apply any text processing to it. The Flags test in SubProcessTest expects 
standard text processing to be applied to the command line args. Therefore 
instead of using echo on windows to test that flags are being fed correctly to 
a console app, we add test-flags.exe which receives command line args via argv 
and prints argv's elements out with a space in between.


You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/radhikaj/mesos fixtestflags

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/mesos/pull/289.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #289
    
----

----


> Fix subprocess(flags) logic on Windows to handle arguments with quotes
> ----------------------------------------------------------------------
>
>                 Key: MESOS-8857
>                 URL: https://issues.apache.org/jira/browse/MESOS-8857
>             Project: Mesos
>          Issue Type: Bug
>            Reporter: Andrew Schwartzmeyer
>            Assignee: Radhika Jandhyala
>            Priority: Major
>              Labels: flags, libprocess, windows
>
> In the {{SubprocessTest.Flags}} unit test, a bug was discovered where the 
> flags argument {{flags.s3 = "\"geek\"";}} does not make it round-trip back to 
> the test. It is because the {{stringify_args}} logic in {{shell.hpp}} 
> purposefully (correctly?) surrounds an argument that contains a double quote 
> with a pair of double quotes. Thus the final command-line flag looks like 
> {{"\"--s3=\\\"geek\\\"\""}}, which {{flags.load()}} then fails to reparse. 
> The same problem occurs for the (more complicated) JSON flag.
> I believe this is because the original logic was expecting the shell to drop 
> the quotes ({{echo "--s3=\"geek\""}} in Bash returns {{--s3="geek"}}, but 
> {{cmd.exe}} echos {{"--s3=\"geek\""}}, exactly what was passed. Maybe the 
> test just needs to be fixed; maybe the stringifier shouldn't add more quotes; 
> maybe {{flags.load()}} needs to parse the quotes and escapes.
> For now, we're enabling the rest of the test by turning off those two checks.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to