} catch (PreprocessException e) {
} catch (BuildException e) {
	public void testIf() throws PreprocessException {		String[] sourceLines = new String[] {				"	//#if test1 ",				"	String hello =  \"test1 is defined\";",				"	//#else",				"	//# String hello =  \"test1 is not defined\";",				"	//#endif",				"	System.out.println( hello );"		};		StringList lines = new StringList( sourceLines );		int result = this.preprocessor.preprocess( "MyClass.java", lines );		assertEquals( Preprocessor.NOT_CHANGED, result );		/*		 String[] processedLines = lines.getArray();		 for (int i = 0; i < processedLines.length; i++) {		 System.out.println( processedLines[i] );		 }		 System.out.println("=========================");		 */		sourceLines = new String[] {				"	//#if XXtest1 ",				"	String hello =  \"XXtest1 is defined\";",				"	//#else",				"	//# String hello =  \"XXtest1 is not defined\";",				"	//#endif",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		result = this.preprocessor.preprocess( "MyClass.java", lines );		assertEquals( Preprocessor.CHANGED, result );		/*		 processedLines = lines.getArray();		 System.out.println("#ifdef test");		 for (int i = 0; i < processedLines.length; i++) {		 System.out.println( processedLines[i] );		 }		 */		sourceLines = new String[] {				"	//#if XXtest1 ",				"	String hello =  \"XXtest1 is defined\";",				"	//#else",				"	//# String hello =  \"XXtest1 is not defined\";",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		try {			this.preprocessor.preprocess( "MyClass.java", lines );			fail("PreprocessException should be thrown when #endif is missing.");		} catch (PreprocessException e) {			// expected behaviour!		}		// check inner #if    (1):		sourceLines = new String[] {				"	//#if (test1 ^ ! test2) ^ false",				"	String hello =  \"test1 is defined\";",				"		//#if (test2 || false) && test3",				"		hello =  \"test2 is defined\";",				"		//#endif",				"	//#else",				"	//# String hello =  \"test1 is not defined\";",				"		//#ifdef test2 ",				"		//# hello +=  \" - but test2 is defined\";",				"		//#endif",				"	//#endif",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		result = this.preprocessor.preprocess( "MyClass.java", lines );		assertEquals( Preprocessor.NOT_CHANGED, result );				// check inner #if    (2):		sourceLines = new String[] {				"	//#ifdef XXtest1 ",				"	String hello =  \"XXtest1 is defined\";",				"		//#ifdef test2 ",				"		hello =  \"test2 is defined\";",				"		//#endif",				"	//#elif (test1 && test3) || (test4 ^ test5)",				"	//# String hello =  \"XXtest1 is not defined\";",				"		//#ifdef test2 ",				"		//# hello +=  \" - but test2 is defined\";",				"		//#endif",				"	//#endif",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		result = this.preprocessor.preprocess( "MyClass.java", lines );		assertEquals( Preprocessor.CHANGED, result );				// check inner #if    (3 - with syntax error):		sourceLines = new String[] {				"	//#ifdef test1 ",				"	String hello =  \"test1 is defined\";",				"		//#ifdef test2 ",				"		hello =  \"test2 is defined\";",				"		//#endif",				"	//#else",				"	//# String hello =  \"test1 is not defined\";",				"		//#ifk (test2 && test3)",				"		//# hello +=  \" - but test2 is defined\";",				"		//#endif",				"	//#endif",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		try {			result = this.preprocessor.preprocess( "MyClass.java", lines );			fail( "preprocessing should fail when encountering syntax error within inactive if-block." );		} catch (PreprocessException e) {			// expected behaviour		}				// check inner #if    (4 - with subtle syntax error in active part):		sourceLines = new String[] {				"	//#if ! test1 ",				"	String hello =  \"test1 is defined\";",				"		//#ifdef test2 ",				"		hello =  \"test2 is defined\";",				"		//#endif",				"	//#else",				"	//# String hello =  \"test1 is not defined\";",				"		//#if (test2 && test3",				"		//# hello +=  \" - but test2 is defined\";",				"		//#endif",				"	//#endif",				"	System.out.println( hello );"		};		lines = new StringList( sourceLines );		try {			result = this.preprocessor.preprocess( "MyClass.java", lines );			fail( "preprocessing should fail when encountering syntax error within inactive if-block." );		} catch (PreprocessException e) {			// expected behaviour		}					}