#1254 CPD run that worked in 5.1.2 fails in 5.1.3 with OOM

Removed default heapsize of 512m
reenabled multiple line strings in javascript
This commit is contained in:
Andreas Dangel
2014-11-15 21:44:37 +01:00
parent f5db63b374
commit 6b0ddaeb51
5 changed files with 25 additions and 11 deletions

View File

@ -19,8 +19,9 @@ public class EcmascriptTokenizer extends AbstractTokenizer {
// setting markers for 'ignorable string' in javascript
this.ignorableStmt = new ArrayList<String>();
// strings do not span multiple lines in javascript - the lines would need to end with backslashes
// - which is not supported by this tokenizer
this.spanMultipleLinesString = false;
// strings do indeed span multiple lines in javascript
this.spanMultipleLinesString = true;
// the lines do to end with backslashes
this.spanMultipleLinesLineContinuationCharacter = '\\';
}
}

View File

@ -4,6 +4,7 @@
package net.sourceforge.pmd.cpd;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertFalse;
import java.io.IOException;
import java.util.List;
@ -40,15 +41,20 @@ public class EcmascriptTokenizerTest {
public void parseStringNotAsMultiline() throws IOException {
Tokenizer t = new EcmascriptTokenizer();
SourceCode sourceCode = new SourceCode( new SourceCode.StringCodeLoader(
"var s = \"a string\\\n"
"var s = \"a string \\\n"
+ "continues\";\n"
+ "var s = \"a string\\\n"
+ "var s = \"a string \\\n"
+ "continues2\";\n") );
Tokens tokens = new Tokens();
t.tokenize(sourceCode, tokens);
assertEquals(13, tokens.size());
assertEquals(9, tokens.size());
List<TokenEntry> list = tokens.getTokens();
assertEquals("\"a string", list.get(3).getIdentifier(), list.get(9).getIdentifier());
assertEquals("var", list.get(0).getIdentifier(), list.get(4).getIdentifier());
assertEquals("s", list.get(1).getIdentifier(), list.get(5).getIdentifier());
assertEquals("=", list.get(2).getIdentifier(), list.get(6).getIdentifier());
assertEquals("\"a string continues\"", list.get(3).toString());
assertEquals("\"a string continues2\"", list.get(7).toString());
assertFalse(list.get(3).getIdentifier() == list.get(7).getIdentifier());
}
// no semi-colons