Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
Description
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.