1
0
mirror of https://github.com/ThrowTheSwitch/Unity synced 2025-03-12 16:11:12 -04:00

Test generator: scrub strings after comments

This fixes .

Removing strings from test files is still dangerous, but much
less likely to cause problems after this change to do the
removal after removing comments.

The bug could still manifest if a test file contains defines two
macros, one that contains a single quotation mark and then another
defined somewhere after it that contains a single quotation mark.
Everything in between the aforementioned quotation marks would
still be ignored after this commit, but that is an unlikely
scenario.
This commit is contained in:
L.J. Hill 2016-09-21 14:10:35 -04:00 committed by L.J. Hill
parent 693169eddf
commit 9caae856c4

View File

@ -95,9 +95,9 @@ class UnityTestRunnerGenerator
tests_and_line_numbers = []
source_scrubbed = source.clone
source_scrubbed = source_scrubbed.gsub(/"[^"]*"/, '') # remove things in strings
source_scrubbed = source_scrubbed.gsub(/\/\/.*$/, '') # remove line comments
source_scrubbed = source_scrubbed.gsub(/\/\*.*?\*\//m, '') # remove block comments
source_scrubbed = source_scrubbed.gsub(/"[^"]*"/, '') # remove things in strings
lines = source_scrubbed.split(/(^\s*\#.*$) # Treat preprocessor directives as a logical line
| (;|\{|\}) /x) # Match ;, {, and } as end of lines