Skip to content

Commit 176e628

Browse files
committed
asconfig: fix how define compiler option is passed to compiler (closes #552)
No longer adds quotes around everything, which didn't seem to be doing things properly. Fixes spaces in strings on Windows.
1 parent e7e35cc commit 176e628

File tree

2 files changed

+62
-12
lines changed

2 files changed

+62
-12
lines changed

asconfigc/src/main/java/com/as3mxml/asconfigc/compiler/CompilerOptionsParser.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -559,10 +559,6 @@ private void setDefine(String optionName, JsonNode values, List<String> result)
559559
String defineName = currentValue.get(CompilerOptions.DEFINE__NAME).asText();
560560
JsonNode defineValue = currentValue.get(CompilerOptions.DEFINE__VALUE);
561561
String defineValueAsString = defineValue.asText();
562-
if (defineValue.isTextual()) {
563-
defineValueAsString = defineValueAsString.replace("\"", "\\\"");
564-
defineValueAsString = "\"" + defineValueAsString + "\"";
565-
}
566562
result.add("--" + optionName + "+=" + defineName + "," + defineValueAsString);
567563
}
568564
}

asconfigc/src/test/java/com/as3mxml/asconfigc/compiler/CompilerOptionsParserTests.java

Lines changed: 62 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -268,6 +268,12 @@ void testDefine() {
268268
double value4 = 12.3;
269269
String name5 = "CONFIG::expr";
270270
String value5 = "2 + 4";
271+
String name6 = "CONFIG::bool2";
272+
String value6 = "true";
273+
String name7 = "CONFIG::num2";
274+
String value7 = "34.5";
275+
String name8 = "CONFIG::expr2";
276+
String value8 = "3+5";
271277

272278
ObjectNode options = JsonNodeFactory.instance.objectNode();
273279
ArrayNode define = JsonNodeFactory.instance.arrayNode();
@@ -297,23 +303,44 @@ void testDefine() {
297303
define5.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value5));
298304
define.add(define5);
299305

306+
ObjectNode define6 = JsonNodeFactory.instance.objectNode();
307+
define6.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name6));
308+
define6.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value6));
309+
define.add(define6);
310+
311+
ObjectNode define7 = JsonNodeFactory.instance.objectNode();
312+
define7.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name7));
313+
define7.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value7));
314+
define.add(define7);
315+
316+
ObjectNode define8 = JsonNodeFactory.instance.objectNode();
317+
define8.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name8));
318+
define8.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value8));
319+
define.add(define8);
320+
300321
options.set(CompilerOptions.DEFINE, define);
301322

302323
ArrayList<String> result = new ArrayList<>();
303324
try {
304325
parser.parse(options, null, result);
305326
} catch (UnknownCompilerOptionException e) {
306327
}
307-
Assertions.assertEquals(5, result.size(), "CompilerOptionsParser.parse() created incorrect number of options.");
328+
Assertions.assertEquals(8, result.size(), "CompilerOptionsParser.parse() created incorrect number of options.");
308329
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name1 + "," + Boolean.toString(value1),
309330
result.get(0), "CompilerOptionsParser.parse() incorrectly formatted compiler option.");
310-
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name2 + ",\"" + value2 + "\"", result.get(1),
331+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name2 + ",'test'", result.get(1),
311332
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
312-
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name3 + ",\"\\\"test\\\"\"", result.get(2),
333+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name3 + ",\"test\"", result.get(2),
313334
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
314335
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name4 + "," + Double.toString(value4),
315336
result.get(3), "CompilerOptionsParser.parse() incorrectly formatted compiler option.");
316-
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name5 + ",\"" + value5 + "\"", result.get(4),
337+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name5 + ",2 + 4", result.get(4),
338+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
339+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name6 + ",true", result.get(5),
340+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
341+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name7 + ",34.5", result.get(6),
342+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
343+
Assertions.assertEquals("--" + CompilerOptions.DEFINE + "+=" + name8 + ",3+5", result.get(7),
317344
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
318345
}
319346

@@ -329,6 +356,12 @@ void testJSDefine() {
329356
double value4 = 12.3;
330357
String name5 = "CONFIG::expr";
331358
String value5 = "2 + 4";
359+
String name6 = "CONFIG::bool2";
360+
String value6 = "true";
361+
String name7 = "CONFIG::num2";
362+
String value7 = "34.5";
363+
String name8 = "CONFIG::expr2";
364+
String value8 = "3+5";
332365

333366
ObjectNode options = JsonNodeFactory.instance.objectNode();
334367
ArrayNode define = JsonNodeFactory.instance.arrayNode();
@@ -358,23 +391,44 @@ void testJSDefine() {
358391
define5.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value5));
359392
define.add(define5);
360393

394+
ObjectNode define6 = JsonNodeFactory.instance.objectNode();
395+
define6.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name6));
396+
define6.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value6));
397+
define.add(define6);
398+
399+
ObjectNode define7 = JsonNodeFactory.instance.objectNode();
400+
define7.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name7));
401+
define7.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value7));
402+
define.add(define7);
403+
404+
ObjectNode define8 = JsonNodeFactory.instance.objectNode();
405+
define8.set(CompilerOptions.DEFINE__NAME, JsonNodeFactory.instance.textNode(name8));
406+
define8.set(CompilerOptions.DEFINE__VALUE, JsonNodeFactory.instance.textNode(value8));
407+
define.add(define8);
408+
361409
options.set(CompilerOptions.JS_DEFINE, define);
362410

363411
ArrayList<String> result = new ArrayList<>();
364412
try {
365413
parser.parse(options, null, result);
366414
} catch (UnknownCompilerOptionException e) {
367415
}
368-
Assertions.assertEquals(5, result.size(), "CompilerOptionsParser.parse() created incorrect number of options.");
416+
Assertions.assertEquals(8, result.size(), "CompilerOptionsParser.parse() created incorrect number of options.");
369417
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name1 + "," + Boolean.toString(value1),
370418
result.get(0), "CompilerOptionsParser.parse() incorrectly formatted compiler option.");
371-
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name2 + ",\"" + value2 + "\"", result.get(1),
419+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name2 + ",'test'", result.get(1),
372420
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
373-
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name3 + ",\"\\\"test\\\"\"", result.get(2),
421+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name3 + ",\"test\"", result.get(2),
374422
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
375423
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name4 + "," + Double.toString(value4),
376424
result.get(3), "CompilerOptionsParser.parse() incorrectly formatted compiler option.");
377-
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name5 + ",\"" + value5 + "\"", result.get(4),
425+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name5 + ",2 + 4", result.get(4),
426+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
427+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name6 + ",true", result.get(5),
428+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
429+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name7 + ",34.5", result.get(6),
430+
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
431+
Assertions.assertEquals("--" + CompilerOptions.JS_DEFINE + "+=" + name8 + ",3+5", result.get(7),
378432
"CompilerOptionsParser.parse() incorrectly formatted compiler option.");
379433
}
380434

0 commit comments

Comments
 (0)