From 0972235514c3dd6c9377ddaea1f068f38b62d86d Mon Sep 17 00:00:00 2001 From: Alain Magloire Date: Tue, 30 Aug 2005 20:17:22 +0000 Subject: [PATCH] 2005-08-30 Alain Magloire New test for PR 109202 (written by Devin Steffler) * ui/org/eclipse/cdt/ui/tests/tex/selectiontests/CPPSelectionTestsDOMIndexer.java --- core/org.eclipse.cdt.ui.tests/ChangeLog | 4 ++++ .../CPPSelectionTestsDOMIndexer.java | 24 +++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/core/org.eclipse.cdt.ui.tests/ChangeLog b/core/org.eclipse.cdt.ui.tests/ChangeLog index 9673752e53e..c2c72604296 100644 --- a/core/org.eclipse.cdt.ui.tests/ChangeLog +++ b/core/org.eclipse.cdt.ui.tests/ChangeLog @@ -1,3 +1,7 @@ +2005-08-30 Alain Magloire + New test for PR 109202 (written by Devin Steffler) + * ui/org/eclipse/cdt/ui/tests/tex/selectiontests/CPPSelectionTestsDOMIndexer.java + 2005-06-08 Alain Magloire Move to the IContentTypeManager framework: PR 86645 * src.org.eclipse/cdt/ui/tests/DOMAST/DOMAST.java diff --git a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java index ccacb3f7613..11b61709447 100644 --- a/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java +++ b/core/org.eclipse.cdt.ui.tests/ui/org/eclipse/cdt/ui/tests/text/selectiontests/CPPSelectionTestsDOMIndexer.java @@ -130,6 +130,7 @@ public class CPPSelectionTestsDOMIndexer extends BaseSelectionTestsIndexer imple suite.addTest(new CPPSelectionTestsDOMIndexer("testBug103323")); //$NON-NLS-1$ suite.addTest(new CPPSelectionTestsDOMIndexer("testBug103697")); //$NON-NLS-1$ suite.addTest(new CPPSelectionTestsDOMIndexer("testBug76043")); //$NON-NLS-1$ + suite.addTest(new CPPSelectionTestsDOMIndexer("testBug108202")); //$NON-NLS-1$ return suite; } @@ -1142,5 +1143,28 @@ public class CPPSelectionTestsDOMIndexer extends BaseSelectionTestsIndexer imple assertEquals(((ASTNode)decl).getLength(), 1); } + public void testBug108202() throws Exception { + StringBuffer buffer = new StringBuffer(); + buffer.append("class __attribute__((visibility(\"default\"))) FooClass\n"); //$NON-NLS-1$ + buffer.append("{\n"); //$NON-NLS-1$ + buffer.append("int foo();\n"); //$NON-NLS-1$ + buffer.append("};\n"); //$NON-NLS-1$ + buffer.append("int FooClass::foo() {\n"); //$NON-NLS-1$ + buffer.append("return 0;\n"); //$NON-NLS-1$ + buffer.append("}\n"); //$NON-NLS-1$ + + String code = buffer.toString(); + + IFile file = importFile("testBug108202.cpp", code); //$NON-NLS-1$ + + int offset = code.indexOf("foo();\n"); //$NON-NLS-1$ + IASTNode def = testCtrl_F3(file, offset); + IASTNode decl = testF3(file, offset); + assertTrue(def instanceof IASTName); + assertEquals(((IASTName)def).toString(), "foo"); //$NON-NLS-1$ + assertEquals(((ASTNode)def).getOffset(), 84); + assertEquals(((ASTNode)def).getLength(), 3); + } + // REMINDER: see CPPSelectionTestsDomIndexer#suite() when appending new tests to this suite }