From 1c71b20c3df7381f0a45072a8dd30beb5fb05911 Mon Sep 17 00:00:00 2001 From: Adam Knapp Date: Fri, 25 Jun 2021 12:51:56 +0200 Subject: [PATCH 1/2] Updating semantic analyzer tests for OOP extension (issue #423) Signed-off-by: Adam Knapp --- .../titan/regressiontests/MainTestSuite.java | 4 +- .../designer/Designer_plugin_tests.java | 13 ++-- .../Designer_plugin_tests_with_OOP.java | 67 +++++++++++++++++++ .../designer/statictests/StaticTests.java | 4 +- .../library/MarkerHandlingLibrary.java | 4 +- 5 files changed, 82 insertions(+), 10 deletions(-) create mode 100644 org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests_with_OOP.java diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/MainTestSuite.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/MainTestSuite.java index 5ec2e7313..88389c8c1 100644 --- a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/MainTestSuite.java +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/MainTestSuite.java @@ -15,6 +15,7 @@ import org.eclipse.core.runtime.URIUtil; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.swt.widgets.Display; import org.eclipse.titan.regressiontests.designer.Designer_plugin_tests; +import org.eclipse.titan.regressiontests.designer.Designer_plugin_tests_with_OOP; import org.eclipse.ui.PlatformUI; import org.junit.Assert; import org.junit.BeforeClass; @@ -24,7 +25,8 @@ import org.junit.runners.Suite.SuiteClasses; @RunWith(Suite.class) @SuiteClasses({ - Designer_plugin_tests.class + Designer_plugin_tests.class, + Designer_plugin_tests_with_OOP.class }) public final class MainTestSuite { diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests.java index a70fe9cc6..78d15e138 100644 --- a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests.java +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests.java @@ -49,8 +49,8 @@ public class Designer_plugin_tests { public static final String PROJECT_NAME = "Semantic_Analizer_Tests"; - private static Map>> semanticMarkers; - private static Map>> syntacticMarkers; + protected static Map>> semanticMarkers; + protected static Map>> syntacticMarkers; public static void collectorTransformator() throws Exception { IProject project = WorkspaceHandlingLibrary.getWorkspace().getRoot().getProject(PROJECT_NAME); @@ -76,7 +76,7 @@ public class Designer_plugin_tests { Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.T3DOC_ENABLE, false); Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.DISPLAYDEBUGINFORMATION, true); Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.DEBUG_CONSOLE_LOG_TO_SYSOUT, true); - Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.ENABLEOOPEXTENSION, true); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.ENABLEOOPEXTENSION, false); WorkspaceHandlingLibrary.setAutoBuilding(false); boolean found = false; @@ -133,7 +133,7 @@ public class Designer_plugin_tests { fail("Invalid markers found"); } } - + public static void checkRealZeroSyntaxMarkersOnFile(final String projectRelativePath) { IFile file = getAccessibleFile(projectRelativePath); List> fileMarkerList = syntacticMarkers.get(file); @@ -207,4 +207,9 @@ public class Designer_plugin_tests { public static Map>> getSyntacticMarkers() { return syntacticMarkers; } + + public static void ignoreMarkersOnFile(String projectRelativePath) { + semanticMarkers.remove(getAccessibleFile(projectRelativePath)); + syntacticMarkers.remove(getAccessibleFile(projectRelativePath)); + } } diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests_with_OOP.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests_with_OOP.java new file mode 100644 index 000000000..5d6374443 --- /dev/null +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/Designer_plugin_tests_with_OOP.java @@ -0,0 +1,67 @@ +/****************************************************************************** + * Copyright (c) 2000-2021 Ericsson Telecom AB + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/org/documents/epl-2.0/EPL-2.0.html + ******************************************************************************/ +package org.eclipse.titan.regressiontests.designer; + +import java.util.Locale; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.URIUtil; +import org.eclipse.titan.designer.Activator; +import org.eclipse.titan.designer.preferences.PreferenceConstants; +import org.eclipse.titan.regressiontests.MainTestSuite; +import org.eclipse.titan.regressiontests.common.CommonTestSuite; +import org.eclipse.titan.regressiontests.designer.dynamictests.ChangeTests; +import org.eclipse.titan.regressiontests.designer.statictests.StaticTests; +import org.eclipse.titan.regressiontests.designer.unittest.DesignerUnitTestSuite; +import org.eclipse.titan.regressiontests.library.WorkspaceHandlingLibrary; +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; +import org.junit.runners.Suite.SuiteClasses; + +@RunWith(Suite.class) +@SuiteClasses({ + ChangeTests.class, + StaticTests.class, + DesignerUnitTestSuite.class, + CommonTestSuite.class }) +public class Designer_plugin_tests_with_OOP extends Designer_plugin_tests { + + @BeforeClass + public static void setUp() throws Exception { + Locale.setDefault(new Locale("en", "EN")); // the number format used is the English one + + /** + * The options that could be set can be found in the Designer plug-in. + * Those options which would be assigned their default value, should not be set, but left as they are initialized. + * */ + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.LICENSE_FILE_PATH, MainTestSuite.LICENSE_FILE); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.REPORTUNSUPPORTEDCONSTRUCTS, "warning"); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.REPORTTYPECOMPATIBILITY, "warning"); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.REPORTNAMINGCONVENTIONPROBLEMS, "warning"); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.REPORT_STRICT_CONSTANTS, true); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.T3DOC_ENABLE, false); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.DISPLAYDEBUGINFORMATION, true); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.DEBUG_CONSOLE_LOG_TO_SYSOUT, true); + Activator.getDefault().getPreferenceStore().setValue(PreferenceConstants.ENABLEOOPEXTENSION, true); + + WorkspaceHandlingLibrary.setAutoBuilding(false); + boolean found = false; + IProject[] projects = WorkspaceHandlingLibrary.getProjectsInWorkspace(); + for (IProject project : projects) { + if (PROJECT_NAME.equals(project.getName())) { + found = true; + break; + } + } + + if (!found) { + WorkspaceHandlingLibrary.importProjectIntoWorkspace(PROJECT_NAME, URIUtil.append(MainTestSuite.getPathToWorkspace(), "Semantic_Analizer_Tests")); + } + } +} diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/StaticTests.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/StaticTests.java index 6f59414f5..9c9d54bf0 100644 --- a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/StaticTests.java +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/StaticTests.java @@ -31,7 +31,7 @@ import org.junit.runners.Suite.SuiteClasses; }) public final class StaticTests { - private final static Logger LOGGER = Logger.getLogger(StaticTests.class.getName()); + private static final Logger LOGGER = Logger.getLogger(StaticTests.class.getName()); private StaticTests() { throw new UnsupportedOperationException(); @@ -50,7 +50,6 @@ public final class StaticTests { projectLibrary.clearMarkers(GeneralConstants.ONTHEFLY_SEMANTIC_MARKER); projectLibrary.clearMarkers(GeneralConstants.ONTHEFLY_SYNTACTIC_MARKER); } catch (CoreException e) { - // TODO Auto-generated catch block e.printStackTrace(); } LOGGER.info("Analyzing project: " + project.getName()); @@ -64,7 +63,6 @@ public final class StaticTests { LOGGER.info(Designer_plugin_tests.getSyntacticMarkers().size() + " resources have syntactic markers"); LOGGER.info(Designer_plugin_tests.getSemanticMarkers().size() + " resources have semantic markers"); } catch (Exception e) { - // TODO Auto-generated catch block e.printStackTrace(); } } diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/library/MarkerHandlingLibrary.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/library/MarkerHandlingLibrary.java index 24fc4dd12..65854dcfd 100644 --- a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/library/MarkerHandlingLibrary.java +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/library/MarkerHandlingLibrary.java @@ -403,10 +403,10 @@ public final class MarkerHandlingLibrary { } if (hardCheck) { - fail("The required Marker - ".concat(" (").concat(message).concat(")").concat(" - was not found at the expected location: ".concat(new Integer(lineNum).toString()))); + fail("The required Marker - ".concat(" (").concat(message).concat(")").concat(" - was not found at the expected location: ".concat(Integer.valueOf(lineNum).toString()))); } else { TITANDebugConsole.println( - "The required Marker - ".concat(" (").concat(message).concat(")").concat(" - was not found at the expected location: ".concat(new Integer(lineNum).toString()))); + "The required Marker - ".concat(" (").concat(message).concat(")").concat(" - was not found at the expected location: ".concat(Integer.valueOf(lineNum).toString()))); } } -- GitLab From 869f9b8a20f8fbefc549736f755ed2f8290dad03 Mon Sep 17 00:00:00 2001 From: Adam Knapp Date: Fri, 25 Jun 2021 12:53:51 +0200 Subject: [PATCH 2/2] Updating semantic analyzer tests for OOP extension (issue #423) Signed-off-by: Adam Knapp --- .../Basic_tests/OOP_Syntax_tests.java | 30 +++++++++++++++---- 1 file changed, 25 insertions(+), 5 deletions(-) diff --git a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/Basic_tests/OOP_Syntax_tests.java b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/Basic_tests/OOP_Syntax_tests.java index d76cbd8eb..183292811 100755 --- a/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/Basic_tests/OOP_Syntax_tests.java +++ b/org.eclipse.titan.regressiontests/src/org/eclipse/titan/regressiontests/designer/statictests/Basic_tests/OOP_Syntax_tests.java @@ -11,26 +11,46 @@ package org.eclipse.titan.regressiontests.designer.statictests.Basic_tests; import java.util.ArrayList; import org.eclipse.core.resources.IMarker; +import org.eclipse.titan.designer.Activator; +import org.eclipse.titan.designer.preferences.PreferenceConstants; import org.eclipse.titan.regressiontests.designer.Designer_plugin_tests; import org.eclipse.titan.regressiontests.library.MarkerToCheck; +import org.junit.BeforeClass; import org.junit.Test; public class OOP_Syntax_tests { private static final String DIR_PATH = "src/Basic_tests/"; - + private static final String OOP_POSITIVE_BASIC_SYNTAX = "/OopPositiveBasicSyntax.ttcn"; + private static final String OOP_NEGATIVE_BASIC_SYNTAX = "/OopNegativeBasicSyntax.ttcn"; + + private static boolean parseOOP; + + @BeforeClass + public static void setUp() throws Exception { + parseOOP = Activator.getDefault().getPreferenceStore().getBoolean(PreferenceConstants.ENABLEOOPEXTENSION); + if (parseOOP) + return; + + Designer_plugin_tests.ignoreMarkersOnFile(DIR_PATH + OOP_POSITIVE_BASIC_SYNTAX); + Designer_plugin_tests.ignoreMarkersOnFile(DIR_PATH + OOP_NEGATIVE_BASIC_SYNTAX); + } + @Test public void OOPPositiveSyntax_Test() throws Exception { - checkZeroMarkersOnFile("OopPositiveBasicSyntax.ttcn"); + checkZeroMarkersOnFile(OOP_POSITIVE_BASIC_SYNTAX); } - + @Test public void OOPNegativeSyntax_Test() throws Exception { - Designer_plugin_tests.checkSyntaxMarkersOnFile(oopNegative_ttcn_initializer(), "src/Basic_tests/OopNegativeBasicSyntax.ttcn"); + if (parseOOP) + Designer_plugin_tests.checkSyntaxMarkersOnFile(oopNegative_ttcn_initializer(), DIR_PATH + OOP_NEGATIVE_BASIC_SYNTAX); + else + checkZeroMarkersOnFile(OOP_NEGATIVE_BASIC_SYNTAX); } private static void checkZeroMarkersOnFile(final String fileName) { final String filePath = DIR_PATH + fileName; - + Designer_plugin_tests.checkRealZeroSemanticMarkersOnFile(filePath); } -- GitLab