| /******************************************************************************* |
| * Copyright (c) 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.core.lrparser.tests; |
| |
| |
| |
| |
| |
| import junit.framework.TestSuite; |
| |
| public class LRCompletionHangingTest extends AbstractLRHangingTest { |
| |
| |
| |
| public static TestSuite suite() { |
| return new TestSuite(LRCompletionHangingTest.class); |
| } |
| |
| |
| |
| |
| |
| //test c |
| public void testCompletionDoWhileForC() throws Exception { |
| |
| String code = |
| "int main(int argc, char **argv) {" + |
| "do{" + |
| CONTENT_ASIST_CURSOR + |
| "} while (i < 3);" + |
| "}"; |
| |
| runTestCase(code, getCLanguage()); |
| |
| } |
| |
| |
| |
| //test cpp |
| public void testCompletionDoWhileForCPP() throws Exception { |
| |
| String code = |
| "int main(int argc, char **argv) {" + |
| "do{" + |
| CONTENT_ASIST_CURSOR + |
| "} while (i < 3);" + |
| "}"; |
| runTestCase(code, getCPPLanguage()); |
| } |
| |
| public void testCompletionTryCatch() throws Exception { |
| |
| String code = |
| "int main(int argc, char **argv) {" + |
| "try {" + |
| CONTENT_ASIST_CURSOR + |
| "}" + |
| |
| "catch(x){}" + |
| "}"; |
| runTestCase(code, getCPPLanguage()); |
| |
| } |
| |
| |
| |
| |
| public void testCompletionTemplateFunctionForCPP() throws Exception { |
| |
| String code = |
| "template " + CONTENT_ASIST_CURSOR +"<class myType>" + |
| "myType GetA (myType a) {" + |
| "return a;" + |
| "}" + |
| |
| "int main(int argc, char **argv) {" + |
| "int x=0;" + |
| "int y = GetA " + CONTENT_ASIST_CURSOR + " <int> (x);" + |
| "}"; |
| runTestCase(code, getCPPLanguage()); |
| } |
| |
| |
| public void testCompletionIfForCPP() throws Exception { |
| String code = |
| "int main(int argc, char **argv) {" + |
| "int x=0;" + |
| "if" + CONTENT_ASIST_CURSOR +"(x>0){}" + |
| "}"; |
| runTestCase(code, getCPPLanguage()); |
| |
| } |
| |
| public void testCompletionTemplateClassForCPP() throws Exception { |
| |
| String code = |
| "template" + CONTENT_ASIST_CURSOR +" <class T> " + |
| "class Test {" + |
| "T val;" + |
| "public:Test(T arg){"+ |
| "val = arg;" + |
| "}" + |
| "~" + CONTENT_ASIST_CURSOR +"Test();"+ |
| "};" + |
| "Test::" + CONTENT_ASIST_CURSOR +"~" + CONTENT_ASIST_CURSOR +"Test(){}" + |
| "int main(int argc, char **argv) {" + |
| CONTENT_ASIST_CURSOR + |
| "Test<" + CONTENT_ASIST_CURSOR + "int> t(1);" + |
| "Test<" + CONTENT_ASIST_CURSOR +"double>" + CONTENT_ASIST_CURSOR + "* dt = new dt(1.0);" + |
| "S* s = dynamic_cast<S*" + CONTENT_ASIST_CURSOR +">(dt);" + |
| "S* s = dynamic_cast" + CONTENT_ASIST_CURSOR +"<S*>(dt);" + |
| "}"; |
| runTestCase(code, getCPPLanguage()); |
| } |
| |
| |
| |
| |
| public void testCompletionSimpleIfForCPP() throws Exception { |
| String code = |
| "#" + CONTENT_ASIST_CURSOR + "include " + CONTENT_ASIST_CURSOR + "<iostream>" + |
| "using " + CONTENT_ASIST_CURSOR + "namespace std;" + |
| "if" + CONTENT_ASIST_CURSOR + "(i>0)){}" + |
| "int " + CONTENT_ASIST_CURSOR + "*" + CONTENT_ASIST_CURSOR + " i " + CONTENT_ASIST_CURSOR + "=" + CONTENT_ASIST_CURSOR + " &" + CONTENT_ASIST_CURSOR + "j;" + |
| "*" + CONTENT_ASIST_CURSOR + "j=0;" + |
| "*" + CONTENT_ASIST_CURSOR + "j++;"+ |
| "*i" + CONTENT_ASIST_CURSOR + "++ = " + CONTENT_ASIST_CURSOR + "*j++;"; |
| runTestCase(code, getCPPLanguage()); |
| |
| } |
| |
| public void testCompletionStructForCPP() throws Exception { |
| String code = |
| "struct " + CONTENT_ASIST_CURSOR + "p " + CONTENT_ASIST_CURSOR + "{" + |
| CONTENT_ASIST_CURSOR+ |
| "int w;" + |
| "float p;" + |
| "} " + CONTENT_ASIST_CURSOR + "a," + CONTENT_ASIST_CURSOR + "b,c;"; |
| |
| runTestCase(code, getCPPLanguage()); |
| |
| } |
| |
| public void testCompletionGnuCPP() throws Exception { |
| String code = |
| "if a>b ? " + CONTENT_ASIST_CURSOR + "g" + CONTENT_ASIST_CURSOR + ":l;" + |
| "case 1..." + CONTENT_ASIST_CURSOR + "3 : ok; "; |
| runTestCase(code, getCPPLanguage()); |
| } |
| |
| |
| |
| |
| } |