Author: timotei
Date: Tue Jul 26 17:42:32 2011
New Revision: 50449
URL: http://svn.gna.org/viewcvs/wesnoth?rev=50449&view=rev
Log:
eclipse plugin: Reorganize a bit the tests
Added:
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/WMLGrammarTokens.java
Removed:
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTestsImpl.java
Modified:
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTests.java
Modified: trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTests.java
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTests.java?rev=50449&r1=50448&r2=50449&view=diff
==============================================================================
--- trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTests.java
(original)
+++ trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTests.java Tue Jul
26 17:42:32 2011
@@ -1,30 +1,37 @@
package org.wesnoth.tests;
+import java.io.StringReader;
import java.util.List;
import org.antlr.runtime.ANTLRStringStream;
import org.antlr.runtime.CharStream;
import org.antlr.runtime.Token;
+import org.eclipse.xtext.ParserRule;
import org.eclipse.xtext.junit.AbstractXtextTests;
+import org.eclipse.xtext.nodemodel.INode;
import org.eclipse.xtext.parser.IParseResult;
import org.eclipse.xtext.parser.IParser;
import org.eclipse.xtext.parser.antlr.ITokenDefProvider;
import org.eclipse.xtext.parser.antlr.Lexer;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
+import org.wesnoth.WMLStandaloneSetup;
+import org.wesnoth.services.WMLGrammarAccess;
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
-
+@SuppressWarnings( "all" )
public abstract class WMLTests extends AbstractXtextTests
{
+ protected WMLGrammarAccess grammar;
private Lexer lexer;
private ITokenDefProvider tokenDefProvider;
private IParser parser;
- protected Lexer getLexer() {
+ protected Lexer getLexer()
+ {
return lexer;
}
- protected ITokenDefProvider getTokenDefProvider() {
+ protected ITokenDefProvider getTokenDefProvider()
+ {
return tokenDefProvider;
}
@@ -34,115 +41,126 @@
return parser;
}
- @SuppressWarnings("rawtypes")
- abstract Class getStandaloneSetupClass();
+ Class getStandaloneSetupClass() {
+ return WMLStandaloneSetup.class;
+ }
- @SuppressWarnings("unchecked")
@Override
- protected void setUp() throws Exception {
- super.setUp();
- with(getStandaloneSetupClass());
- lexer = get(Lexer.class);
- tokenDefProvider = get(ITokenDefProvider.class);
- parser = get(IParser.class);
+ protected void setUp() throws Exception
+ {
+ super.setUp( );
+ with( getStandaloneSetupClass( ) );
+ lexer = get( Lexer.class );
+ tokenDefProvider = get( ITokenDefProvider.class );
+ parser = get( IParser.class );
+ grammar = ( WMLGrammarAccess ) getGrammarAccess( );
}
/**
* return the list of tokens created by the lexer from the given input
- * */
- protected List<Token> getTokens(String input) {
- CharStream stream = new ANTLRStringStream(input);
- getLexer().setCharStream(stream);
- XtextTokenStream tokenStream = new XtextTokenStream(getLexer(),
- getTokenDefProvider());
- @SuppressWarnings("unchecked")
- List<Token> tokens = tokenStream.getTokens();
+ */
+ protected List<Token> getTokens( String input )
+ {
+ CharStream stream = new ANTLRStringStream( input );
+ getLexer( ).setCharStream( stream );
+ XtextTokenStream tokenStream = new XtextTokenStream( getLexer( ),
getTokenDefProvider( ) );
+ List<Token> tokens = tokenStream.getTokens( );
return tokens;
}
/**
* return the name of the terminal rule for a given token
- * */
- protected String getTokenType(Token token) {
- return getTokenDefProvider().getTokenDefMap().get(token.getType());
+ */
+ protected String getTokenType( Token token )
+ {
+ return getTokenDefProvider( ).getTokenDefMap( ).get( token.getType( )
);
}
/**
* check whether an input is chopped into a list of expected token types
- * */
- protected void checkTokenisation(String input, String...
expectedTokenTypes) {
- List<Token> tokens = getTokens(input);
- assertEquals(input, expectedTokenTypes.length, tokens.size());
- for (int i = 0; i < tokens.size(); i++) {
- Token token = tokens.get(i);
- assertEquals(input, expectedTokenTypes[i], getTokenType(token));
+ */
+ protected void checkTokenisation( String input, String...
expectedTokenTypes )
+ {
+ List<Token> tokens = getTokens( input );
+ assertEquals( input, expectedTokenTypes.length, tokens.size( ) );
+ for ( int i = 0; i < tokens.size( ); i++ ) {
+ Token token = tokens.get( i );
+ assertEquals( input, expectedTokenTypes[i], getTokenType( token )
);
}
}
- protected void showTokenisation(String input) {
- List<Token> tokens = getTokens(input);
- for (int i = 0; i < tokens.size(); i++) {
- Token token = tokens.get(i);
- System.out.println(getTokenType(token));
+ protected void showTokenisation( String input )
+ {
+ List<Token> tokens = getTokens( input );
+ for ( int i = 0; i < tokens.size( ); i++ ) {
+ Token token = tokens.get( i );
+ System.out.println( getTokenType( token ) );
}
}
+
/**
* check that an input is not tokenised using a particular terminal rule
- * */
- protected void failTokenisation(String input, String unExpectedTokenType) {
- List<Token> tokens = getTokens(input);
- assertEquals(input, 1, tokens.size());
- Token token = tokens.get(0);
- assertNotSame(input, unExpectedTokenType, getTokenType(token));
+ */
+ protected void failTokenisation( String input, String unExpectedTokenType )
+ {
+ List<Token> tokens = getTokens( input );
+ assertEquals( input, 1, tokens.size( ) );
+ Token token = tokens.get( 0 );
+ assertNotSame( input, unExpectedTokenType, getTokenType( token ) );
}
/**
* return the parse result for an input given a specific entry rule of the
* grammar
- * */
- protected IParseResult getParseResult(String input, String entryRule) {
- //return getParser().parse(entryRule, new StringReader(input));
- throw new NotImplementedException();
+ */
+ protected IParseResult getParseResult( String input, ParserRule entryRule )
+ {
+ return getParser( ).parse( entryRule, new StringReader( input ) );
}
/**
* check that the input can be successfully parsed given a specific entry
* rule of the grammar
- * */
- protected void checkParsing(String input, String entryRule) {
- IParseResult la = getParseResult(input, entryRule);
- System.out.println(la.hasSyntaxErrors( ));
- assertEquals(input, false, la.hasSyntaxErrors( ));
+ */
+ protected void checkParsing( String input, ParserRule entryRule )
+ {
+ IParseResult la = getParseResult( input, entryRule );
+ for ( INode node : la.getSyntaxErrors( ) ) {
+ System.out.println( node.getSyntaxErrorMessage( ) );
+ }
+ assertEquals( input, false, la.hasSyntaxErrors( ) );
}
/**
* check that the input cannot be successfully parsed given a specific
entry
* rule of the grammar
- * */
- protected void failParsing(String input, String entryRule) {
- IParseResult la = getParseResult(input, entryRule);
- assertNotSame(input, false, la.hasSyntaxErrors( ));
+ */
+ protected void failParsing( String input, ParserRule entryRule )
+ {
+ IParseResult la = getParseResult( input, entryRule );
+ assertNotSame( input, false, la.hasSyntaxErrors( ) );
}
/**
* check that input is treated as a keyword by the grammar
- * */
- protected void checkKeyword(String input) {
+ */
+ protected void checkKeyword( String input )
+ {
// the rule name for a keyword is usually
// the keyword enclosed in single quotes
- String rule = new StringBuilder("'").append(input).append("'")
//$NON-NLS-1$ //$NON-NLS-2$
- .toString();
- checkTokenisation(input, rule);
+ String rule = new StringBuilder( "'" ).append( input ).append( "'" )
//$NON-NLS-1$ //$NON-NLS-2$
+ .toString( );
+ checkTokenisation( input, rule );
}
/**
* check that input is not treated as a keyword by the grammar
- * */
- protected void failKeyword(String keyword) {
- List<Token> tokens = getTokens(keyword);
- assertEquals(keyword, 1, tokens.size());
- String type = getTokenType(tokens.get(0));
- assertFalse(keyword, type.charAt(0) == '\'');
+ */
+ protected void failKeyword( String keyword )
+ {
+ List<Token> tokens = getTokens( keyword );
+ assertEquals( keyword, 1, tokens.size( ) );
+ String type = getTokenType( tokens.get( 0 ) );
+ assertFalse( keyword, type.charAt( 0 ) == '\'' );
}
}
-
Removed: trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTestsImpl.java
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTestsImpl.java?rev=50448&view=auto
==============================================================================
--- trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTestsImpl.java
(original)
+++ trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/WMLTestsImpl.java
(removed)
@@ -1,49 +1,0 @@
-package org.wesnoth.tests;
-
-import org.wesnoth.WMLStandaloneSetup;
-
-public class WMLTestsImpl extends WMLTests
-{
- @SuppressWarnings("rawtypes")
- @Override
- Class getStandaloneSetupClass() {
- return WMLStandaloneSetup.class;
- }
-
- //for convenience, define constants for the
- //rule names in your grammar
- //the names of terminal rules will be capitalised
- //and "RULE_" will be appended to the front
- private static final String ID="RULE_ID"; //$NON-NLS-1$
- private static final String INT="RULE_INT"; //$NON-NLS-1$
- private static final String WS="RULE_WS"; //$NON-NLS-1$
- private static final String SL_COMMENT="RULE_SL_COMMENT"; //$NON-NLS-1$
-
- public void testINT()
- {
- checkTokenisation("1", INT); //$NON-NLS-1$
- }
-
- public void testID(){
- checkTokenisation("a", ID); //$NON-NLS-1$
- checkTokenisation("abc", ID); //$NON-NLS-1$
- checkTokenisation("abc123", ID); //$NON-NLS-1$
- checkTokenisation("abc_123", ID); //$NON-NLS-1$
- }
- public void testSLCOMMENT(){
- checkTokenisation("#comment", SL_COMMENT); //$NON-NLS-1$
- checkTokenisation("#comment\n", SL_COMMENT); //$NON-NLS-1$
- checkTokenisation("# comment \t\t comment\r\n", SL_COMMENT);
//$NON-NLS-1$
- }
-
- public void testTokenSequences(){
- showTokenisation("amount=+$random\n"); //$NON-NLS-1$
- checkParsing("amount=+$random", "WMLKey"); //$NON-NLS-1$
//$NON-NLS-2$
-
- checkTokenisation("123 abc", ID, WS, ID); //$NON-NLS-1$
- checkTokenisation("123 \t#comment\n abc", ID, WS,
SL_COMMENT,WS,ID); //$NON-NLS-1$
- //note that no white space is necessary!
- checkTokenisation("123abc", ID); //$NON-NLS-1$
- }
-
-}
Added:
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/WMLGrammarTokens.java
URL:
http://svn.gna.org/viewcvs/wesnoth/trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/WMLGrammarTokens.java?rev=50449&view=auto
==============================================================================
---
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/WMLGrammarTokens.java
(added)
+++
trunk/utils/umc_dev/org.wesnoth/src/org/wesnoth/tests/grammar/WMLGrammarTokens.java
Tue Jul 26 17:42:32 2011
@@ -1,0 +1,43 @@
+package org.wesnoth.tests.grammar;
+
+import org.wesnoth.tests.WMLTests;
+
+/**
+ * Tests parts of the grammar
+ */
+public class WMLGrammarTokens extends WMLTests
+{
+ // for convenience, define constants for the
+ // rule names in your grammar
+ // the names of terminal rules will be capitalised
+ // and "RULE_" will be appended to the front
+ private static final String ID = "RULE_ID";
+ private static final String WS = "RULE_WS";
+ private static final String SL_COMMENT = "RULE_SL_COMMENT";
+
+ public void testID()
+ {
+ checkTokenisation( "1", ID );
+ checkTokenisation( "a", ID );
+ checkTokenisation( "abc", ID );
+ checkTokenisation( "abc123", ID );
+ checkTokenisation( "abc_123", ID );
+ }
+
+ public void testSLCOMMENT()
+ {
+ checkTokenisation( "#comment", SL_COMMENT );
+ checkTokenisation( "#comment\n", SL_COMMENT );
+ checkTokenisation( "# comment \t\t comment\r\n", SL_COMMENT );
+ }
+
+ public void testTokenSequences()
+ {
+ checkParsing( "amount=+$random\r\n", grammar.getWMLKeyRule( ) );
+
+ checkTokenisation( "123 abc", ID, WS, ID );
+ checkTokenisation( "123 \t#comment\n abc", ID, WS, SL_COMMENT, WS, ID
);
+ // note that no white space is necessary!
+ checkTokenisation( "123abc", ID );
+ }
+}
_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits