[SERVER-42246] IDL configs break if strings contain \n. Created: 16/Jul/19  Updated: 06/Dec/22  Resolved: 09/Dec/21

Status: Closed
Project: Core Server
Component/s: IDL, Internal Code
Affects Version/s: 4.3 Desired
Fix Version/s: None

Type: Bug Priority: Major - P3
Reporter: Billy Donahue Assignee: Backlog - Service Architecture
Resolution: Won't Do Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Assigned Teams:
Service Arch
Operating System: ALL
Participants:

 Description   

 

configs:
  benchmark_filter: 
    description: >
      A regular expression that specifies the set of benchmarks
      to execute. If this flag is empty, no benchmarks are run. If
      this flag is the string "all", all benchmarks linked into the
      process are run. 
    arg_vartype: String 
    default: .
 

The 'description' field above contains newlines because of the > block-quoting.

This produces a C++ _gen.cpp file containing expressions like:

 

const char s[]=
"A regular expression that specifies the set of benchmarks
to execute. If this flag is empty, no benchmarks are run. If
this flag is the string \"all\", all benchmarks linked into the
process are run.");

And the unescaped newlines inside the string literal are invalid C++.

 

It can be worked around with YAML >- quoting instead of >, as >- removes newlines.


Generated at Thu Feb 08 04:59:58 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.