blob: 22939d153d08613e09cddf1af1ca983a760e7788 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010 Severin Gehwolf
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Severin Gehwolf - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.codan.core.internal.checkers;
import org.eclipse.cdt.codan.core.tests.CheckerTestCase;
import org.eclipse.core.resources.IMarker;
/**
* Test for {@see AssignmentToItselfChecker} class
*/
public class AssignmentToItselfCheckerTest extends CheckerTestCase {
// void main() {
// int x = 0;
// x = 10;
// }
public void testNoErrorConstants() throws Exception {
loadCodeAndRun(getAboveComment());
checkNoErrors();
}
// void main() {
// int x = 10;
// int s = 10;
// x = s;
// }
public void testNoErrorVariables() throws Exception {
loadCodeAndRun(getAboveComment());
checkNoErrors();
}
// void main() {
// int x = 0;
// x = x;
// }
public void testSimpleVariableSelfAssignmentError() throws Exception {
loadCodeAndRun(getAboveComment());
checkErrorLine(3);
}
// void main() {
// char str[] = "hello testing world";
// int x = 10;
// str[i] = str[i];
// }
public void testArraySelfAssignmentError() throws Exception {
loadCodeAndRun(getAboveComment());
checkErrorLine(4);
}
// #define X a = 1
// void main() {
// int a;
// X;
// }
public void testNoError_Bug321933() throws Exception {
loadCodeAndRun(getAboveComment());
checkNoErrors();
}
// void foo() {
// int x = 0; x
// = x;
// }
public void testMarkerOffset_Bug486610() throws Exception {
String code = getAboveComment();
loadCodeAndRun(code);
IMarker marker = checkErrorLine(2);
int start = marker.getAttribute(IMarker.CHAR_START, -1);
int end = marker.getAttribute(IMarker.CHAR_END, -1);
// The offset should start at the beginning of the expression "x = x"
assertEquals("x" + NL + " = x", code.substring(start, end));
}
}