/******************************************************************************* * Copyright (c) 2006, 2010 IBM Corporation and others. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at * http://www.eclipse.org/legal/epl-v10.html * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/ package org.eclipse.cdt.errorparsers.xlc.tests; import junit.framework.TestCase; import org.eclipse.cdt.core.IMarkerGenerator; public class TestRedefinition extends TestCase { /** * This function tests parseLine function of the * XlcErrorParser class. The second message generated by * xlc compiler for macro/variable redefinition problem is given as * input for testing. */ public void testparseLine() { XlcErrorParserTester aix = new XlcErrorParserTester(); // Macro redefinition warning generates 2 messages. First line is ignored. // Second line is re-parsed to 2 warnings to cross-reference both. String err_msg1 = "\"temp1.c\", line 5.9: 1506-236 (W) Macro name TEMP_1 has been redefined."; String err_msg2 = "\"temp1.c\", line 5.9: 1506-358 (I) \"TEMP_1\" is defined on line 3 of temp1.h."; // variation of the message String err_msg3 = "\"temp2.c\", line 17.9: 1506-358 (I) \"MACRO_2\" is defined on line 10 of \"temp2.c\"."; aix.parseLine(err_msg1); aix.parseLine(err_msg2); aix.parseLine(err_msg3); assertEquals(4, aix.getNumberOfMarkers()); assertEquals("\"TEMP_1\" has been redefined on line 5 of temp1.c", aix.getMessage(0)); assertEquals("temp1.h", aix.getFileName(0)); assertEquals(3, aix.getLineNumber(0)); assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(0)); assertEquals("\"TEMP_1\" redefines original definition on line 3 of temp1.h", aix.getMessage(1)); assertEquals("temp1.c", aix.getFileName(1)); assertEquals(5, aix.getLineNumber(1)); assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(1)); assertEquals("\"MACRO_2\" has been redefined on line 17 of temp2.c", aix.getMessage(2)); assertEquals("temp2.c", aix.getFileName(2)); assertEquals(10, aix.getLineNumber(2)); assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(2)); assertEquals("\"MACRO_2\" redefines original definition on line 10 of temp2.c", aix.getMessage(3)); assertEquals("temp2.c", aix.getFileName(3)); assertEquals(17, aix.getLineNumber(3)); assertEquals(IMarkerGenerator.SEVERITY_WARNING, aix.getSeverity(3)); } public TestRedefinition( String name) { super(name); } }