Skip to content

Commit

Permalink
Using method name to find unqualified Stacktraces in Java Stack Trace +
Browse files Browse the repository at this point in the history
Code review changes
  • Loading branch information
SougandhS committed Sep 17, 2024
1 parent be4bbd6 commit e249738
Show file tree
Hide file tree
Showing 8 changed files with 327 additions and 78 deletions.
2 changes: 1 addition & 1 deletion org.eclipse.jdt.debug.tests/META-INF/MANIFEST.MF
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.jdt.debug.tests; singleton:=true
Bundle-Version: 3.12.500.qualifier
Bundle-Version: 3.12.600.qualifier
Bundle-ClassPath: javadebugtests.jar
Bundle-Activator: org.eclipse.jdt.debug.testplugin.JavaTestPlugin
Bundle-Vendor: %providerName
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
/*******************************************************************************
* Copyright (c) 2024 IBM Corporation.
*
* 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:
* IBM Corporation - Implementation
*******************************************************************************/
package org.eclipse.jdt.debug.tests.console;

import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.debug.testplugin.JavaProjectHelper;
import org.eclipse.jdt.debug.tests.TestUtil;
import org.eclipse.jface.text.ITextSelection;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.jface.viewers.ISelectionProvider;
import org.eclipse.ui.IEditorPart;
import org.eclipse.ui.console.IHyperlink;
import org.eclipse.ui.texteditor.ITextEditor;

public class JavaStackTraceAmbiguityTest extends AbstractJavaStackTraceConsoleTest {

public JavaStackTraceAmbiguityTest(String name) {
super(name);
}

public void testLinkAmbiguityNavigationTrue() throws Exception {
String projectName = "StackTest";
IJavaProject project = createProject(projectName, "testfiles/Ambiguity/", JavaProjectHelper.JAVA_SE_1_8_EE_NAME, false);
waitForBuild();
waitForJobs();
consoleDocumentWithText("Sample.tes3(int) line: 31");
IHyperlink[] hyperlinks = fConsole.getHyperlinks();
assertEquals("Wrong hyperlinks, listing all links: " + allLinks(), 2, hyperlinks.length);
String expectedText = "System.out.println(\"Expected\");";
try {
for (IHyperlink hyperlink : hyperlinks) {
closeAllEditors();
hyperlink.linkActivated();
IEditorPart editor = waitForEditorOpen();
String[] selectedText = new String[1];
sync(() -> selectedText[0] = getSelectedText(editor));
selectedText[0] = selectedText[0].trim();
assertEquals("Wrong text selected after hyperlink navigation", expectedText, selectedText[0]);

}
} finally {
closeAllEditors();
boolean force = true;
project.getProject().delete(force, new NullProgressMonitor());
}
}

private void waitForJobs() throws Exception {
TestUtil.waitForJobs(getName(), 250, 1000);
}

private static String getSelectedText(IEditorPart editor) {
ITextEditor textEditor = (ITextEditor) editor;
ISelectionProvider selectionProvider = textEditor.getSelectionProvider();
ISelection selection = selectionProvider.getSelection();
ITextSelection textSelection = (ITextSelection) selection;
String selectedText = textSelection.getText();
return selectedText;
}

private IEditorPart waitForEditorOpen() throws Exception {
waitForJobs();
IEditorPart[] editor = new IEditorPart[1];
sync(() -> editor[0] = getActivePage().getActiveEditor());
long timeout = 30_000;
long start = System.currentTimeMillis();
while (editor[0] == null && System.currentTimeMillis() - start < timeout) {
waitForJobs();
sync(() -> editor[0] = getActivePage().getActiveEditor());
}
if (editor[0] == null) {
throw new AssertionError("Timeout occurred while waiting for editor to open");
}
return editor[0];
}
}
2 changes: 1 addition & 1 deletion org.eclipse.jdt.debug.tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
</parent>
<groupId>org.eclipse.jdt</groupId>
<artifactId>org.eclipse.jdt.debug.tests</artifactId>
<version>3.12.500-SNAPSHOT</version>
<version>3.12.600-SNAPSHOT</version>
<packaging>eclipse-test-plugin</packaging>
<properties>
<testSuite>${project.artifactId}</testSuite>
Expand Down
37 changes: 37 additions & 0 deletions org.eclipse.jdt.debug.tests/testfiles/Ambiguity/a/Sample.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*******************************************************************************
* Copyright (c) 2024 IBM Corporation.
*
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package a;

/**
* Test class
*/
public class Sample {
public static void main(String[] args) {
System.out.println("Main Method");
test();
}
public static void test() {
System.out.println("Testing..");
}
public void testMethod() {
System.out.println("Random");
}
public static void tes3(int x) {
System.out.println("Expected");
}
public void tes2() {

}

}
37 changes: 37 additions & 0 deletions org.eclipse.jdt.debug.tests/testfiles/Ambiguity/b/Sample.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*******************************************************************************
* Copyright (c) 2024 IBM Corporation.
*
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package b;

/**
* Test class
*/
public class Sample {
public static void main(String[] args) {
System.out.println("Main Method");
test();
}
public static void test() {
System.out.println("Testing..");
}
public void testMethod() {
System.out.println("Random");
}
public static void tes3() {
System.out.println("Expected");
}
public void tes2() {

}

}
37 changes: 37 additions & 0 deletions org.eclipse.jdt.debug.tests/testfiles/Ambiguity/c/Sample.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
/*******************************************************************************
* Copyright (c) 2024 IBM Corporation.
*
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package c;

/**
* Test class
*/
public class Sample {
public static void main(String[] args) {
System.out.println("Main Method");
test();
}
public static void test() {
System.out.println("Testing..");
}
public void testMethod() {
System.out.println("Random");
}
public static void tes32() {
System.out.println("Expected");
}
public void tes2() {

}

}
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
import org.eclipse.jdt.debug.tests.console.ConsoleTerminateAllActionTests;
import org.eclipse.jdt.debug.tests.console.IOConsoleTests;
import org.eclipse.jdt.debug.tests.console.JavaDebugStackTraceConsoleTest;
import org.eclipse.jdt.debug.tests.console.JavaStackTraceAmbiguityTest;
import org.eclipse.jdt.debug.tests.console.JavaStackTraceConsoleTest;
import org.eclipse.jdt.debug.tests.core.AlternateStratumTests;
import org.eclipse.jdt.debug.tests.core.ArgumentTests;
Expand Down Expand Up @@ -273,6 +274,7 @@ public AutomatedSuite() {
addTest(new TestSuite(JavaDebugStackTraceConsoleTest.class));
addTest(new TestSuite(IOConsoleTests.class));
addTest(new TestSuite(ConsoleTerminateAllActionTests.class));
addTest(new TestSuite(JavaStackTraceAmbiguityTest.class));

//Core tests
addTest(new TestSuite(DebugEventTests.class));
Expand Down
Loading

0 comments on commit e249738

Please sign in to comment.