From e31ae8e676f330036074cb63bc25853c5d3b3b9f Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Wed, 9 Jan 2013 17:26:55 -0800 Subject: [PATCH 01/68] Cosmetics --- .../providers/LanguageSettingEntryDialog.java | 39 +++++++++---------- 1 file changed, 19 insertions(+), 20 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java index 277cd15bd40..4dec5f8a1ee 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java @@ -75,7 +75,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { private static final int COMBO_INDEX_LIBRARY_PATH = 4; private static final int COMBO_INDEX_LIBRARY_FILE = 5; - final private String [] comboKindItems = { + final private String[] comboKindItems = { Messages.LanguageSettingEntryDialog_IncludeDirectory, Messages.LanguageSettingEntryDialog_PreporocessorMacro, Messages.LanguageSettingEntryDialog_IncludeFile, @@ -96,7 +96,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { private static final int COMBO_PATH_INDEX_WORKSPACE = 1; private static final int COMBO_PATH_INDEX_FILESYSTEM = 2; - final private String [] pathCategories = { + final private String[] pathCategories = { Messages.LanguageSettingEntryDialog_ProjectPath, Messages.LanguageSettingEntryDialog_WorkspacePath, Messages.LanguageSettingEntryDialog_Filesystem, @@ -128,7 +128,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { this.cfgDescription = cfgDescription; this.project = cfgDescription.getProjectDescription().getProject(); this.entry = entry; - this.kind = entry!=null ? entry.getKind() : ICSettingEntry.INCLUDE_PATH; + this.kind = entry != null ? entry.getKind() : ICSettingEntry.INCLUDE_PATH; this.clearValue = clearValue; } @@ -165,7 +165,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { } private int kindToComboIndex(int kind) { - int index=0; + int index= 0; switch (kind) { case ICSettingEntry.INCLUDE_PATH: index = COMBO_INDEX_INCLUDE_PATH; @@ -257,7 +257,6 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { pcindex = COMBO_PATH_INDEX_PROJECT; } } - } comboPathCategory.setText(pathCategories[pcindex]); gd = new GridData(SWT.FILL, SWT.NONE, false, false); @@ -357,7 +356,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { // Checkbox "Built-In" checkBoxBuiltIn = new Button(compCheckboxes, SWT.CHECK); checkBoxBuiltIn.setText(Messages.LanguageSettingEntryDialog_BuiltInFlag); - checkBoxBuiltIn.setSelection(entry!=null && (entry.getFlags()&ICSettingEntry.BUILTIN)!=0); + checkBoxBuiltIn.setSelection(entry != null && (entry.getFlags() & ICSettingEntry.BUILTIN) != 0); gd = new GridData(GridData.FILL_HORIZONTAL); checkBoxBuiltIn.setLayoutData(gd); checkBoxBuiltIn.addSelectionListener(new SelectionListener() { @@ -372,10 +371,10 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { } }); - // Checkbox "Framework" + // Checkbox "Framework folder" checkBoxFramework = new Button(compCheckboxes, SWT.CHECK); checkBoxFramework.setText(Messages.LanguageSettingEntryDialog_FrameworkFolder); - checkBoxFramework.setSelection(entry!=null && (entry.getFlags()&ICSettingEntry.FRAMEWORKS_MAC)!=0); + checkBoxFramework.setSelection(entry != null && (entry.getFlags() & ICSettingEntry.FRAMEWORKS_MAC) != 0); gd = new GridData(GridData.FILL_HORIZONTAL); checkBoxFramework.setLayoutData(gd); checkBoxFramework.addSelectionListener(new SelectionListener() { @@ -398,7 +397,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { compButtons.setLayoutData(gd); compButtons.setLayout(new GridLayout(4, false)); - // placeholder + // Placeholder Label placeholder = new Label(compButtons, 0); placeholder.setLayoutData(new GridData(GridData.GRAB_HORIZONTAL)); @@ -445,11 +444,11 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { checkBoxValue.setVisible(isMacroSelected); inputValue.setVisible(isMacroSelected); - ((GridData)checkBoxValue.getLayoutData()).exclude = !isMacroSelected; - ((GridData)inputValue.getLayoutData()).exclude = !isMacroSelected; + ((GridData) checkBoxValue.getLayoutData()).exclude = !isMacroSelected; + ((GridData) inputValue.getLayoutData()).exclude = !isMacroSelected; - ((GridData)buttonBrowse.getLayoutData()).exclude = isMacroSelected; - ((GridData)buttonVars.getLayoutData()).exclude = isMacroSelected; + ((GridData) buttonBrowse.getLayoutData()).exclude = isMacroSelected; + ((GridData) buttonVars.getLayoutData()).exclude = isMacroSelected; switch (kindSelectionIndex) { case COMBO_INDEX_INCLUDE_PATH: @@ -500,7 +499,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { int indexPathKind = comboPathCategory.getSelectionIndex(); int kind = comboKind.getSelectionIndex(); boolean isProjectPath = indexPathKind==COMBO_PATH_INDEX_PROJECT; - boolean isWorkspacePath = (kind!=COMBO_INDEX_MACRO) && (isProjectPath || indexPathKind==COMBO_PATH_INDEX_WORKSPACE); + boolean isWorkspacePath = (kind != COMBO_INDEX_MACRO) && (isProjectPath || indexPathKind == COMBO_PATH_INDEX_WORKSPACE); int flagWorkspace = isWorkspacePath ? ICSettingEntry.VALUE_WORKSPACE_PATH | ICSettingEntry.RESOLVED : 0; int flags = flagBuiltIn | flagWorkspace | flagFramework; @@ -578,14 +577,15 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { if (str != null) { str = strip_wsp(str); - if (comboPathCategory.getSelectionIndex()==COMBO_PATH_INDEX_PROJECT && str.startsWith(SLASH+project.getName()+SLASH)) { - str=str.substring(project.getName().length()+2); + if (comboPathCategory.getSelectionIndex() == COMBO_PATH_INDEX_PROJECT && str.startsWith(SLASH + project.getName()+SLASH)) { + str = str.substring(project.getName().length() + 2); } inputName.setText(str); } } else if (e.widget.equals(buttonVars)) { str = AbstractCPropertyTab.getVariableDialog(shell, cfgDescription); - if (str != null) inputName.insert(str); + if (str != null) + inputName.insert(str); } } @@ -601,15 +601,14 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { int kind = comboIndexToKind(indexEntryKind); int flagBuiltin = checkBoxBuiltIn.getSelection() ? ICSettingEntry.BUILTIN : 0; int flagFramework = checkBoxFramework.getSelection() ? ICSettingEntry.FRAMEWORKS_MAC : 0; - boolean isWorkspacePath = indexPathKind==COMBO_PATH_INDEX_PROJECT || indexPathKind==COMBO_PATH_INDEX_WORKSPACE; + boolean isWorkspacePath = indexPathKind == COMBO_PATH_INDEX_PROJECT || indexPathKind == COMBO_PATH_INDEX_WORKSPACE; int flagWorkspace = isWorkspacePath ? ICSettingEntry.VALUE_WORKSPACE_PATH | ICSettingEntry.RESOLVED : 0; int flags = flagBuiltin | flagWorkspace | flagFramework; - Image image = LanguageSettingsImages.getImage(kind, flags, indexPathKind==COMBO_PATH_INDEX_PROJECT); + Image image = LanguageSettingsImages.getImage(kind, flags, indexPathKind == COMBO_PATH_INDEX_PROJECT); iconComboKind.setImage(image); shell.setImage(image); buttonBrowse.setImage(pathCategoryImages[indexPathKind]); } - } From c1bc445e745a81ef8e438534ac18c3290bf22d4e Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Wed, 9 Jan 2013 18:28:55 -0800 Subject: [PATCH 02/68] Externalized a label. --- build/org.eclipse.cdt.managedbuilder.core/plugin.properties | 3 ++- build/org.eclipse.cdt.managedbuilder.core/plugin.xml | 2 +- xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core/plugin.properties b/build/org.eclipse.cdt.managedbuilder.core/plugin.properties index 46b890e8956..35f4d005b7a 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/plugin.properties +++ b/build/org.eclipse.cdt.managedbuilder.core/plugin.properties @@ -78,5 +78,6 @@ extension-point.name.2 = Build Properties extension-point.name.3 = ToolChain Modification Info GCCBuildOutputParser.name = CDT GCC Build Output Parser -GCCBuildinCompilerSettings.name = CDT GCC Builtin Compiler Settings +GCCBuildinCompilerSettings.name = CDT GCC Built-in Compiler Settings +GCCBuildinCompilerSettingsMinGW.name = CDT GCC Built-in Compiler Settings MinGW ManagedBuildSettingEntries.name = CDT Managed Build Setting Entries \ No newline at end of file diff --git a/build/org.eclipse.cdt.managedbuilder.core/plugin.xml b/build/org.eclipse.cdt.managedbuilder.core/plugin.xml index 427e9b82fd5..f808643a31b 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/plugin.xml +++ b/build/org.eclipse.cdt.managedbuilder.core/plugin.xml @@ -616,7 +616,7 @@ diff --git a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties index 1f8857cdb4d..253ac3cb7cf 100644 --- a/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties +++ b/xlc/org.eclipse.cdt.managedbuilder.xlc.core/plugin.properties @@ -18,5 +18,5 @@ objectFileName=Object File profileName=XL C managed make per project scanner discovery profile profileNameCPP=XL C++ managed make per project scanner discovery profile -XlcBuiltinSpecsDetectorName=CDT XLC Builtin Compiler Settings +XlcBuiltinSpecsDetectorName=CDT XLC Built-in Compiler Settings XlcBuildCommandParserName=CDT XLC Build Output Parser From 237db0f8bee18eba34f0d299a3deade087e2cf5c Mon Sep 17 00:00:00 2001 From: Sergey Prigogin Date: Wed, 9 Jan 2013 18:30:27 -0800 Subject: [PATCH 03/68] Bug 388368 - Add Include Directory dialog should distinguish system and non-system includes --- .../providers/LanguageSettingEntryDialog.java | 90 ++++++++++++------- .../cdt/internal/ui/newui/Messages.java | 1 + .../cdt/internal/ui/newui/Messages.properties | 5 +- 3 files changed, 61 insertions(+), 35 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java index 4dec5f8a1ee..9fd5e328b10 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingEntryDialog.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2010, 2012 Andrew Gvozdev and others. + * Copyright (c) 2010, 2013 Andrew Gvozdev 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 @@ -7,6 +7,7 @@ * * Contributors: * Andrew Gvozdev - initial API and implementation + * Sergey Prigogin (Google) *******************************************************************************/ package org.eclipse.cdt.internal.ui.language.settings.providers; @@ -63,16 +64,17 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { private Button buttonBrowse; private Button buttonVars; private Button checkBoxBuiltIn; + private Button checkBoxSystem; private Button checkBoxFramework; private Button buttonOk; private Button buttonCancel; - private static final int COMBO_INDEX_INCLUDE_PATH = 0; + private static final int COMBO_INDEX_INCLUDE_DIR = 0; private static final int COMBO_INDEX_MACRO = 1; private static final int COMBO_INDEX_INCLUDE_FILE = 2; private static final int COMBO_INDEX_MACRO_FILE = 3; - private static final int COMBO_INDEX_LIBRARY_PATH = 4; + private static final int COMBO_INDEX_LIBRARY_DIR = 4; private static final int COMBO_INDEX_LIBRARY_FILE = 5; final private String[] comboKindItems = { @@ -142,7 +144,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { private int comboIndexToKind(int index) { int kind=0; switch (index) { - case COMBO_INDEX_INCLUDE_PATH: + case COMBO_INDEX_INCLUDE_DIR: kind = ICSettingEntry.INCLUDE_PATH; break; case COMBO_INDEX_MACRO: @@ -154,7 +156,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { case COMBO_INDEX_MACRO_FILE: kind = ICSettingEntry.MACRO_FILE; break; - case COMBO_INDEX_LIBRARY_PATH: + case COMBO_INDEX_LIBRARY_DIR: kind = ICSettingEntry.LIBRARY_PATH; break; case COMBO_INDEX_LIBRARY_FILE: @@ -168,7 +170,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { int index= 0; switch (kind) { case ICSettingEntry.INCLUDE_PATH: - index = COMBO_INDEX_INCLUDE_PATH; + index = COMBO_INDEX_INCLUDE_DIR; break; case ICSettingEntry.MACRO: index = COMBO_INDEX_MACRO; @@ -180,7 +182,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { index = COMBO_INDEX_MACRO_FILE; break; case ICSettingEntry.LIBRARY_PATH: - index = COMBO_INDEX_LIBRARY_PATH; + index = COMBO_INDEX_LIBRARY_DIR; break; case ICSettingEntry.LIBRARY_FILE: index = COMBO_INDEX_LIBRARY_FILE; @@ -228,7 +230,6 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { @Override public void widgetDefaultSelected(SelectionEvent e) { widgetSelected(e); - } }); comboKind.setEnabled(clearValue); @@ -371,6 +372,24 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { } }); + // Checkbox "Contains system includes" + checkBoxSystem = new Button(compCheckboxes, SWT.CHECK); + checkBoxSystem.setText(Messages.LanguageSettingEntryDialog_ContainsSystemHeaders); + checkBoxSystem.setSelection(entry != null && (entry.getFlags() & ICSettingEntry.LOCAL) == 0); + gd = new GridData(GridData.FILL_HORIZONTAL); + checkBoxSystem.setLayoutData(gd); + checkBoxSystem.addSelectionListener(new SelectionListener() { + @Override + public void widgetSelected(SelectionEvent e) { + updateImages(); + setButtons(); + } + @Override + public void widgetDefaultSelected(SelectionEvent e) { + widgetSelected(e); + } + }); + // Checkbox "Framework folder" checkBoxFramework = new Button(compCheckboxes, SWT.CHECK); checkBoxFramework.setText(Messages.LanguageSettingEntryDialog_FrameworkFolder); @@ -437,6 +456,9 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { private void setButtons() { int kindSelectionIndex = comboKind.getSelectionIndex(); + boolean isIncludeDirSelected = (kindSelectionIndex == COMBO_INDEX_INCLUDE_DIR); + checkBoxSystem.setVisible(isIncludeDirSelected); + checkBoxFramework.setVisible(isIncludeDirSelected); boolean isMacroSelected = (kindSelectionIndex == COMBO_INDEX_MACRO); comboPathCategory.setVisible(!isMacroSelected); buttonBrowse.setVisible(!isMacroSelected); @@ -451,8 +473,8 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { ((GridData) buttonVars.getLayoutData()).exclude = isMacroSelected; switch (kindSelectionIndex) { - case COMBO_INDEX_INCLUDE_PATH: - case COMBO_INDEX_LIBRARY_PATH: + case COMBO_INDEX_INCLUDE_DIR: + case COMBO_INDEX_LIBRARY_DIR: labelInput.setText(Messages.LanguageSettingEntryDialog_Path); break; case COMBO_INDEX_INCLUDE_FILE: @@ -472,8 +494,8 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { boolean isWorkspaceSelected = (indexPathKind == COMBO_PATH_INDEX_WORKSPACE); boolean isFilesystemSelected = (indexPathKind == COMBO_PATH_INDEX_FILESYSTEM); - String path = inputName.getText(); - if (path.trim().length() == 0) { + String path = inputName.getText().trim(); + if (path.isEmpty()) { buttonOk.setEnabled(false); } else { buttonOk.setEnabled((isProjectSelected && !path.startsWith(SLASH)) || @@ -489,27 +511,28 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { public void buttonPressed(SelectionEvent e) { String str = null; if (e.widget.equals(buttonOk)) { - String name = inputName.getText(); + String name = inputName.getText().trim(); text1 = name; - String value = inputValue.getText(); + String value = inputValue.getText().trim(); result = true; - int flagBuiltIn = checkBoxBuiltIn.getSelection() ? ICSettingEntry.BUILTIN : 0; - int flagFramework = checkBoxFramework.getSelection() ? ICSettingEntry.FRAMEWORKS_MAC : 0; + int flagBuiltIn = checkBoxBuiltIn.isVisible() && checkBoxBuiltIn.getSelection() ? ICSettingEntry.BUILTIN : 0; + int flagSystem = checkBoxSystem.isVisible() && checkBoxSystem.getSelection() ? 0 : ICSettingEntry.LOCAL; + int flagFramework = checkBoxFramework.isVisible() && checkBoxFramework.getSelection() ? ICSettingEntry.FRAMEWORKS_MAC : 0; int indexPathKind = comboPathCategory.getSelectionIndex(); int kind = comboKind.getSelectionIndex(); - boolean isProjectPath = indexPathKind==COMBO_PATH_INDEX_PROJECT; + boolean isProjectPath = indexPathKind == COMBO_PATH_INDEX_PROJECT; boolean isWorkspacePath = (kind != COMBO_INDEX_MACRO) && (isProjectPath || indexPathKind == COMBO_PATH_INDEX_WORKSPACE); int flagWorkspace = isWorkspacePath ? ICSettingEntry.VALUE_WORKSPACE_PATH | ICSettingEntry.RESOLVED : 0; - int flags = flagBuiltIn | flagWorkspace | flagFramework; + int flags = flagBuiltIn | flagWorkspace | flagSystem | flagFramework; - ICLanguageSettingEntry entry=null; - switch (comboKind.getSelectionIndex()) { - case COMBO_INDEX_INCLUDE_PATH: + ICLanguageSettingEntry entry = null; + switch (kind) { + case COMBO_INDEX_INCLUDE_DIR: entry = CDataUtil.createCIncludePathEntry(name, flags); break; case COMBO_INDEX_MACRO: - // note that value=null is not supported by CMacroEntry + // Note that value=null is not supported by CMacroEntry entry = CDataUtil.createCMacroEntry(name, value, flags); break; case COMBO_INDEX_INCLUDE_FILE: @@ -518,7 +541,7 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { case COMBO_INDEX_MACRO_FILE: entry = CDataUtil.createCMacroFileEntry(name, flags); break; - case COMBO_INDEX_LIBRARY_PATH: + case COMBO_INDEX_LIBRARY_DIR: entry = CDataUtil.createCLibraryPathEntry(name, flags); break; case COMBO_INDEX_LIBRARY_FILE: @@ -536,8 +559,8 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { boolean isDirectory = false; boolean isFile = false; switch (comboKind.getSelectionIndex()) { - case COMBO_INDEX_INCLUDE_PATH: - case COMBO_INDEX_LIBRARY_PATH: + case COMBO_INDEX_INCLUDE_DIR: + case COMBO_INDEX_LIBRARY_DIR: isDirectory = true; break; case COMBO_INDEX_INCLUDE_FILE: @@ -552,32 +575,32 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { if (isDirectory) { switch (comboPathCategory.getSelectionIndex()) { case COMBO_PATH_INDEX_WORKSPACE: - str = AbstractCPropertyTab.getWorkspaceDirDialog(shell, inputName.getText()); + str = AbstractCPropertyTab.getWorkspaceDirDialog(shell, inputName.getText().trim()); break; case COMBO_PATH_INDEX_PROJECT: - str = AbstractCPropertyTab.getProjectDirDialog(shell, inputName.getText(), project); + str = AbstractCPropertyTab.getProjectDirDialog(shell, inputName.getText().trim(), project); break; case COMBO_PATH_INDEX_FILESYSTEM: - str = AbstractCPropertyTab.getFileSystemDirDialog(shell, inputName.getText()); + str = AbstractCPropertyTab.getFileSystemDirDialog(shell, inputName.getText().trim()); break; } } else if (isFile) { switch (comboPathCategory.getSelectionIndex()) { case COMBO_PATH_INDEX_WORKSPACE: - str = AbstractCPropertyTab.getWorkspaceFileDialog(shell, inputName.getText()); + str = AbstractCPropertyTab.getWorkspaceFileDialog(shell, inputName.getText().trim()); break; case COMBO_PATH_INDEX_PROJECT: - str = AbstractCPropertyTab.getProjectFileDialog(shell, inputName.getText(), project); + str = AbstractCPropertyTab.getProjectFileDialog(shell, inputName.getText().trim(), project); break; case COMBO_PATH_INDEX_FILESYSTEM: - str = AbstractCPropertyTab.getFileSystemFileDialog(shell, inputName.getText()); + str = AbstractCPropertyTab.getFileSystemFileDialog(shell, inputName.getText().trim()); break; } } if (str != null) { str = strip_wsp(str); - if (comboPathCategory.getSelectionIndex() == COMBO_PATH_INDEX_PROJECT && str.startsWith(SLASH + project.getName()+SLASH)) { + if (comboPathCategory.getSelectionIndex() == COMBO_PATH_INDEX_PROJECT && str.startsWith(SLASH + project.getName() + SLASH)) { str = str.substring(project.getName().length() + 2); } inputName.setText(str); @@ -600,10 +623,11 @@ public class LanguageSettingEntryDialog extends AbstractPropertyDialog { int kind = comboIndexToKind(indexEntryKind); int flagBuiltin = checkBoxBuiltIn.getSelection() ? ICSettingEntry.BUILTIN : 0; + int flagSystem = checkBoxSystem.getSelection() ? 0 : ICSettingEntry.LOCAL; int flagFramework = checkBoxFramework.getSelection() ? ICSettingEntry.FRAMEWORKS_MAC : 0; boolean isWorkspacePath = indexPathKind == COMBO_PATH_INDEX_PROJECT || indexPathKind == COMBO_PATH_INDEX_WORKSPACE; int flagWorkspace = isWorkspacePath ? ICSettingEntry.VALUE_WORKSPACE_PATH | ICSettingEntry.RESOLVED : 0; - int flags = flagBuiltin | flagWorkspace | flagFramework; + int flags = flagBuiltin | flagWorkspace | flagSystem | flagFramework; Image image = LanguageSettingsImages.getImage(kind, flags, indexPathKind == COMBO_PATH_INDEX_PROJECT); iconComboKind.setImage(image); diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.java index a8f1063e6d3..29c4a9f4a33 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.java @@ -192,6 +192,7 @@ public class Messages extends NLS { public static String IncludeTab_import; public static String LanguageSettingEntryDialog_Add; public static String LanguageSettingEntryDialog_BuiltInFlag; + public static String LanguageSettingEntryDialog_ContainsSystemHeaders; public static String LanguageSettingEntryDialog_Directory; public static String LanguageSettingEntryDialog_File; public static String LanguageSettingEntryDialog_Filesystem; diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties index 672564a0e8f..4c543c88cd3 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties @@ -169,9 +169,10 @@ IncludeDialog_2=Add to all configurations IncludeDialog_3=Add to all languages LanguageSettingEntryDialog_Add=Add LanguageSettingEntryDialog_BuiltInFlag=Treat as built-in -LanguageSettingEntryDialog_Directory=Dir: +LanguageSettingEntryDialog_ContainsSystemHeaders=Contains system headers +LanguageSettingEntryDialog_Directory=Directory: LanguageSettingEntryDialog_File=File: -LanguageSettingEntryDialog_Filesystem=Filesystem +LanguageSettingEntryDialog_Filesystem=File System Path LanguageSettingEntryDialog_FrameworkFolder=Framework folder (Mac only) LanguageSettingEntryDialog_IncludeDirectory=Include Directory LanguageSettingEntryDialog_IncludeFile=Include File From fea192a6bdc669497416f6f2cd87796c8561bb99 Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Thu, 10 Jan 2013 14:31:15 -0500 Subject: [PATCH 04/68] Bug 397906 - [tests] JUnit tests for upcoming GDB 7.6 Change-Id: I53526637f962618eca56caa27e407074d90190a3 Reviewed-on: https://git.eclipse.org/r/9598 Reviewed-by: Marc Khouzam IP-Clean: Marc Khouzam Tested-by: Marc Khouzam --- .../tests/dsf/gdb/tests/ITestConstants.java | 1 + .../tests_7_6/CommandTimeoutTest_7_6.java | 25 ++++++++ .../GDBConsoleBreakpointsTest_7_6.java | 22 +++++++ .../GDBMultiNonStopRunControlTest_7_6.java | 26 ++++++++ ...GDBPatternMatchingExpressionsTest_7_6.java | 24 ++++++++ .../tests/tests_7_6/GDBProcessesTest_7_6.java | 24 ++++++++ .../GDBRemoteTracepointsTest_7_6.java | 25 ++++++++ ...LaunchConfigurationAndRestartTest_7_6.java | 24 ++++++++ .../tests_7_6/MIBreakpointsTest_7_6.java | 24 ++++++++ .../tests_7_6/MICatchpointsTest_7_6.java | 24 ++++++++ .../tests_7_6/MIDisassemblyTest_7_6.java | 26 ++++++++ .../tests_7_6/MIExpressionsTest_7_6.java | 24 ++++++++ .../gdb/tests/tests_7_6/MIMemoryTest_7_6.java | 24 ++++++++ .../tests/tests_7_6/MIRegistersTest_7_6.java | 24 ++++++++ ...ControlNonStopTargetAvailableTest_7_6.java | 32 ++++++++++ .../MIRunControlTargetAvailableTest_7_6.java | 25 ++++++++ .../tests/tests_7_6/MIRunControlTest_7_6.java | 25 ++++++++ ...nsWhileTargetIsRunningNonStopTest_7_6.java | 32 ++++++++++ ...perationsWhileTargetIsRunningTest_7_6.java | 25 ++++++++ .../tests_7_6/PostMortemCoreTest_7_6.java | 24 ++++++++ .../dsf/gdb/tests/tests_7_6/Suite_7_6.java | 60 ++++++++++++++++++ .../gdb/tests/tests_7_6/Suite_Remote_7_6.java | 61 +++++++++++++++++++ .../tests/tests_7_6/TraceFileTest_7_6.java | 23 +++++++ 23 files changed, 624 insertions(+) create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/CommandTimeoutTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBConsoleBreakpointsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBMultiNonStopRunControlTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBPatternMatchingExpressionsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBProcessesTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBRemoteTracepointsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/LaunchConfigurationAndRestartTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIBreakpointsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MICatchpointsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIDisassemblyTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIExpressionsTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIMemoryTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRegistersTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlNonStopTargetAvailableTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTargetAvailableTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningNonStopTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/PostMortemCoreTest_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_Remote_7_6.java create mode 100644 dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/TraceFileTest_7_6.java diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/ITestConstants.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/ITestConstants.java index 5bcd5b687bc..3f147b52c13 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/ITestConstants.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/ITestConstants.java @@ -22,4 +22,5 @@ public interface ITestConstants { public static final String SUFFIX_GDB_7_3 = "7.3"; public static final String SUFFIX_GDB_7_4 = "7.4"; public static final String SUFFIX_GDB_7_5 = "7.5"; + public static final String SUFFIX_GDB_7_6 = "7.6"; } diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/CommandTimeoutTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/CommandTimeoutTest_7_6.java new file mode 100644 index 00000000000..527ba2bd697 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/CommandTimeoutTest_7_6.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ + +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.CommandTimeoutTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class CommandTimeoutTest_7_6 extends CommandTimeoutTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBConsoleBreakpointsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBConsoleBreakpointsTest_7_6.java new file mode 100644 index 00000000000..45b34889036 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBConsoleBreakpointsTest_7_6.java @@ -0,0 +1,22 @@ +/******************************************************************************* + * Copyright (c) 2012 Mentor Graphics 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: + * Mentor Graphics - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.GDBConsoleBreakpointsTest_7_5; + +public class GDBConsoleBreakpointsTest_7_6 extends GDBConsoleBreakpointsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBMultiNonStopRunControlTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBMultiNonStopRunControlTest_7_6.java new file mode 100644 index 00000000000..d3b6600e5b0 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBMultiNonStopRunControlTest_7_6.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.GDBMultiNonStopRunControlTest_7_5; +import org.junit.runner.RunWith; + + +@RunWith(BackgroundRunner.class) +public class GDBMultiNonStopRunControlTest_7_6 extends GDBMultiNonStopRunControlTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBPatternMatchingExpressionsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBPatternMatchingExpressionsTest_7_6.java new file mode 100644 index 00000000000..0578c0ade18 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBPatternMatchingExpressionsTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial Implementation + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.GDBPatternMatchingExpressionsTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class GDBPatternMatchingExpressionsTest_7_6 extends GDBPatternMatchingExpressionsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBProcessesTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBProcessesTest_7_6.java new file mode 100644 index 00000000000..8d061548526 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBProcessesTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.GDBProcessesTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class GDBProcessesTest_7_6 extends GDBProcessesTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBRemoteTracepointsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBRemoteTracepointsTest_7_6.java new file mode 100644 index 00000000000..0fae296cebc --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/GDBRemoteTracepointsTest_7_6.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.GDBRemoteTracepointsTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class GDBRemoteTracepointsTest_7_6 extends GDBRemoteTracepointsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/LaunchConfigurationAndRestartTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/LaunchConfigurationAndRestartTest_7_6.java new file mode 100644 index 00000000000..9a9ba6515d7 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/LaunchConfigurationAndRestartTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.LaunchConfigurationAndRestartTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class LaunchConfigurationAndRestartTest_7_6 extends LaunchConfigurationAndRestartTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIBreakpointsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIBreakpointsTest_7_6.java new file mode 100644 index 00000000000..2df73f5beb9 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIBreakpointsTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIBreakpointsTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIBreakpointsTest_7_6 extends MIBreakpointsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MICatchpointsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MICatchpointsTest_7_6.java new file mode 100644 index 00000000000..ad3d71a8646 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MICatchpointsTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MICatchpointsTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MICatchpointsTest_7_6 extends MICatchpointsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIDisassemblyTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIDisassemblyTest_7_6.java new file mode 100644 index 00000000000..8d0323207d7 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIDisassemblyTest_7_6.java @@ -0,0 +1,26 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ + +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIDisassemblyTest_7_5; +import org.junit.runner.RunWith; + + +@RunWith(BackgroundRunner.class) +public class MIDisassemblyTest_7_6 extends MIDisassemblyTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIExpressionsTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIExpressionsTest_7_6.java new file mode 100644 index 00000000000..167e867998f --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIExpressionsTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIExpressionsTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIExpressionsTest_7_6 extends MIExpressionsTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIMemoryTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIMemoryTest_7_6.java new file mode 100644 index 00000000000..9f57887c50c --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIMemoryTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIMemoryTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIMemoryTest_7_6 extends MIMemoryTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRegistersTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRegistersTest_7_6.java new file mode 100644 index 00000000000..02bc444697e --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRegistersTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIRegistersTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIRegistersTest_7_6 extends MIRegistersTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlNonStopTargetAvailableTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlNonStopTargetAvailableTest_7_6.java new file mode 100644 index 00000000000..aa057b614a8 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlNonStopTargetAvailableTest_7_6.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIRunControlNonStopTargetAvailableTest_7_6 extends MIRunControlTargetAvailableTest_7_6 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } + + @Override + protected void setLaunchAttributes() { + super.setLaunchAttributes(); + + setLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUGGER_NON_STOP, true); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTargetAvailableTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTargetAvailableTest_7_6.java new file mode 100644 index 00000000000..e4a8ffaf87d --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTargetAvailableTest_7_6.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIRunControlTargetAvailableTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIRunControlTargetAvailableTest_7_6 extends MIRunControlTargetAvailableTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTest_7_6.java new file mode 100644 index 00000000000..6464c7a5c81 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/MIRunControlTest_7_6.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.MIRunControlTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class MIRunControlTest_7_6 extends MIRunControlTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningNonStopTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningNonStopTest_7_6.java new file mode 100644 index 00000000000..b8e60258116 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningNonStopTest_7_6.java @@ -0,0 +1,32 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class OperationsWhileTargetIsRunningNonStopTest_7_6 extends OperationsWhileTargetIsRunningTest_7_6 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } + + @Override + protected void setLaunchAttributes() { + super.setLaunchAttributes(); + + setLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUGGER_NON_STOP, true); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningTest_7_6.java new file mode 100644 index 00000000000..21e3e13b164 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/OperationsWhileTargetIsRunningTest_7_6.java @@ -0,0 +1,25 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.OperationsWhileTargetIsRunningTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class OperationsWhileTargetIsRunningTest_7_6 extends OperationsWhileTargetIsRunningTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/PostMortemCoreTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/PostMortemCoreTest_7_6.java new file mode 100644 index 00000000000..89c2855c644 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/PostMortemCoreTest_7_6.java @@ -0,0 +1,24 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.PostMortemCoreTest_7_5; +import org.junit.runner.RunWith; + +@RunWith(BackgroundRunner.class) +public class PostMortemCoreTest_7_6 extends PostMortemCoreTest_7_5 { + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_7_6.java new file mode 100644 index 00000000000..983dc915d30 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_7_6.java @@ -0,0 +1,60 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests; +import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +/** + * This class is meant to be empty. It enables us to define + * the annotations which list all the different JUnit class we + * want to run. When creating a new test class, it should be + * added to the list below. + * + * This suite is for tests to be run with GDB 7.6. + */ + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + // We need specific name for the tests of this suite, because of bug https://bugs.eclipse.org/172256 + MIRegistersTest_7_6.class, + MIRunControlTest_7_6.class, + MIRunControlTargetAvailableTest_7_6.class, + MIRunControlNonStopTargetAvailableTest_7_6.class, + MIExpressionsTest_7_6.class, + GDBPatternMatchingExpressionsTest_7_6.class, + MIMemoryTest_7_6.class, + MIBreakpointsTest_7_6.class, + MICatchpointsTest_7_6.class, + MIDisassemblyTest_7_6.class, + GDBProcessesTest_7_6.class, + LaunchConfigurationAndRestartTest_7_6.class, + OperationsWhileTargetIsRunningTest_7_6.class, + OperationsWhileTargetIsRunningNonStopTest_7_6.class, + PostMortemCoreTest_7_6.class, + CommandTimeoutTest_7_6.class, + GDBMultiNonStopRunControlTest_7_6.class, + Suite_Sessionless_Tests.class, + GDBConsoleBreakpointsTest_7_6.class, + /* Add your test class here */ +}) + +public class Suite_7_6 { + @BeforeClass + public static void beforeClassMethod() { + BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + BaseTestCase.ignoreIfGDBMissing(); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_Remote_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_Remote_7_6.java new file mode 100644 index 00000000000..2a73f37ffe3 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/Suite_Remote_7_6.java @@ -0,0 +1,61 @@ +/******************************************************************************* + * Copyright (c) 2012 Ericsson 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: + * Marc Khouzam (Ericsson) - Initial implementation of Test cases + *******************************************************************************/ +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.dsf.mi.service.command.commands.Suite_Sessionless_Tests; +import org.eclipse.cdt.tests.dsf.gdb.framework.BaseRemoteSuite; +import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase; +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.junit.BeforeClass; +import org.junit.runner.RunWith; +import org.junit.runners.Suite; + +/** + * This class is meant to be empty. It enables us to define + * the annotations which list all the different JUnit class we + * want to run. When creating a new test class, it should be + * added to the list below. + * + * This suite is for tests to be run with GDB 7.6 + */ + +@RunWith(Suite.class) +@Suite.SuiteClasses({ + // We need specific name for the tests of this suite, because of bug https://bugs.eclipse.org/172256 + GDBRemoteTracepointsTest_7_6.class, + MIRegistersTest_7_6.class, + MIRunControlTest_7_6.class, + MIRunControlTargetAvailableTest_7_6.class, + MIRunControlNonStopTargetAvailableTest_7_6.class, + MIExpressionsTest_7_6.class, + GDBPatternMatchingExpressionsTest_7_6.class, + MIMemoryTest_7_6.class, + MIBreakpointsTest_7_6.class, + MICatchpointsTest_7_6.class, + MIDisassemblyTest_7_6.class, + GDBProcessesTest_7_6.class, + OperationsWhileTargetIsRunningTest_7_6.class, + OperationsWhileTargetIsRunningNonStopTest_7_6.class, + CommandTimeoutTest_7_6.class, + GDBMultiNonStopRunControlTest_7_6.class, + Suite_Sessionless_Tests.class, + GDBConsoleBreakpointsTest_7_6.class, + TraceFileTest_7_6.class, + /* Add your test class here */ +}) + +public class Suite_Remote_7_6 extends BaseRemoteSuite { + @BeforeClass + public static void beforeClassMethod() { + BaseTestCase.setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + BaseTestCase.ignoreIfGDBMissing(); + } +} diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/TraceFileTest_7_6.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/TraceFileTest_7_6.java new file mode 100644 index 00000000000..8b437681803 --- /dev/null +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_6/TraceFileTest_7_6.java @@ -0,0 +1,23 @@ +/******************************************************************************* + * Copyright (c) 2012 Mentor Graphics 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: + * Mentor Graphics - Initial API and implementation + *******************************************************************************/ + +package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_6; + +import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.TraceFileTest_7_5; + +public class TraceFileTest_7_6 extends TraceFileTest_7_5 { + + @Override + protected void setGdbVersion() { + setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_6); + } +} From 5cb3203f4a6c8627a90649a7dcd8075651a17bbc Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Thu, 10 Jan 2013 17:44:05 -0500 Subject: [PATCH 05/68] bug 397815: Scanner discovery incorrectly extracts macros containing parentheses --- .../settings/providers/tests/GCCBuiltinSpecsDetectorTest.java | 2 ++ .../language/settings/providers/GCCBuiltinSpecsDetector.java | 2 +- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java index b9dfedc77d3..870cc21e0c0 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/language/settings/providers/tests/GCCBuiltinSpecsDetectorTest.java @@ -147,6 +147,7 @@ public class GCCBuiltinSpecsDetectorTest extends BaseTestCase { detector.processLine("#define \t MACRO_1 VALUE"); detector.processLine("#define MACRO_2 \t VALUE"); detector.processLine("#define MACRO_3 VALUE \t"); + detector.processLine("#define MACRO_4 VALUE + 1"); detector.shutdownForLanguage(); detector.shutdown(); @@ -155,6 +156,7 @@ public class GCCBuiltinSpecsDetectorTest extends BaseTestCase { assertEquals(new CMacroEntry("MACRO_1", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), entries.get(index++)); assertEquals(new CMacroEntry("MACRO_2", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), entries.get(index++)); assertEquals(new CMacroEntry("MACRO_3", "VALUE", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), entries.get(index++)); + assertEquals(new CMacroEntry("MACRO_4", "VALUE + 1", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), entries.get(index++)); assertEquals(index, entries.size()); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java index e821b0d72a2..5b8ded66a44 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/GCCBuiltinSpecsDetector.java @@ -45,7 +45,7 @@ public class GCCBuiltinSpecsDetector extends ToolchainBuiltinSpecsDetector imple new IncludePathOptionParser("#include <(\\S.*)>", "$1", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), new IncludePathOptionParser("#framework <(\\S.*)>", "$1", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY | ICSettingEntry.FRAMEWORKS_MAC), new MacroOptionParser("#define\\s+(\\S*\\(.*?\\))\\s*(.*)", "$1", "$2", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), - new MacroOptionParser("#define\\s+(\\S*)\\s*(\\S*)", "$1", "$2", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), + new MacroOptionParser("#define\\s+(\\S*)\\s*(.*)", "$1", "$2", ICSettingEntry.BUILTIN | ICSettingEntry.READONLY), }; /** From 09357c4df6205e576e46ae8194d82e6f7dad7653 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Sat, 12 Jan 2013 00:54:08 -0500 Subject: [PATCH 06/68] Added support for Qt. Extended AddFiles template to change start/end patterns. --- core/org.eclipse.cdt.core/plugin.xml | 14 + .../templateengine/process/ProcessHelper.java | 46 ++- .../process/processes/AddFiles.java | 38 +- .../process/processes/messages.properties | 6 +- qt/org.eclipse.cdt.qt-feature/.project | 17 + .../build.properties | 1 + .../eclipse_update_120.jpg | Bin 0 -> 21695 bytes qt/org.eclipse.cdt.qt-feature/epl-v10.html | 328 ++++++++++++++++++ qt/org.eclipse.cdt.qt-feature/feature.xml | 34 ++ qt/org.eclipse.cdt.qt-feature/license.html | 108 ++++++ qt/org.eclipse.cdt.qt.core/.classpath | 7 + qt/org.eclipse.cdt.qt.core/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 7 + .../META-INF/MANIFEST.MF | 11 + qt/org.eclipse.cdt.qt.core/about.html | 24 ++ qt/org.eclipse.cdt.qt.core/build.properties | 8 + qt/org.eclipse.cdt.qt.core/plugin.xml | 24 ++ .../org/eclipse/cdt/qt/core/Activator.java | 30 ++ .../project/helloWorld/qtQuick2/Basename.cpp | 12 + .../project/helloWorld/qtQuick2/Basename.pro | 3 + .../project/helloWorld/qtQuick2/Basename.qml | 16 + .../project/helloWorld/qtQuick2/Makefile | 13 + .../helloWorld/qtQuick2/template.properties | 18 + .../project/helloWorld/qtQuick2/template.xml | 61 ++++ qt/org.eclipse.cdt.qt.ui/.classpath | 7 + qt/org.eclipse.cdt.qt.ui/.project | 28 ++ .../.settings/org.eclipse.jdt.core.prefs | 7 + qt/org.eclipse.cdt.qt.ui/META-INF/MANIFEST.MF | 11 + qt/org.eclipse.cdt.qt.ui/about.html | 24 ++ qt/org.eclipse.cdt.qt.ui/build.properties | 4 + .../src/org/eclipse/cdt/qt/ui/Activator.java | 50 +++ 31 files changed, 968 insertions(+), 17 deletions(-) create mode 100644 qt/org.eclipse.cdt.qt-feature/.project create mode 100644 qt/org.eclipse.cdt.qt-feature/build.properties create mode 100644 qt/org.eclipse.cdt.qt-feature/eclipse_update_120.jpg create mode 100644 qt/org.eclipse.cdt.qt-feature/epl-v10.html create mode 100644 qt/org.eclipse.cdt.qt-feature/feature.xml create mode 100644 qt/org.eclipse.cdt.qt-feature/license.html create mode 100644 qt/org.eclipse.cdt.qt.core/.classpath create mode 100644 qt/org.eclipse.cdt.qt.core/.project create mode 100644 qt/org.eclipse.cdt.qt.core/.settings/org.eclipse.jdt.core.prefs create mode 100644 qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF create mode 100644 qt/org.eclipse.cdt.qt.core/about.html create mode 100644 qt/org.eclipse.cdt.qt.core/build.properties create mode 100644 qt/org.eclipse.cdt.qt.core/plugin.xml create mode 100644 qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/Activator.java create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.cpp create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.pro create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.qml create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.properties create mode 100644 qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.xml create mode 100644 qt/org.eclipse.cdt.qt.ui/.classpath create mode 100644 qt/org.eclipse.cdt.qt.ui/.project create mode 100644 qt/org.eclipse.cdt.qt.ui/.settings/org.eclipse.jdt.core.prefs create mode 100644 qt/org.eclipse.cdt.qt.ui/META-INF/MANIFEST.MF create mode 100644 qt/org.eclipse.cdt.qt.ui/about.html create mode 100644 qt/org.eclipse.cdt.qt.ui/build.properties create mode 100644 qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/qt/ui/Activator.java diff --git a/core/org.eclipse.cdt.core/plugin.xml b/core/org.eclipse.cdt.core/plugin.xml index f58003a9329..d65aa20c4ff 100644 --- a/core/org.eclipse.cdt.core/plugin.xml +++ b/core/org.eclipse.cdt.core/plugin.xml @@ -757,6 +757,20 @@ + + + + + + + + + + + + diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java index 465432cac9a..44c779f40ee 100644 --- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java +++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/ProcessHelper.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Symbian Software Limited and others. + * Copyright (c) 2007, 2013 Symbian Software Limited 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 @@ -9,6 +9,7 @@ * Bala Torati (Symbian) - Initial API and implementation * Mark Espiritu (VastSystems) - bug 215283 * Raphael Zulliger (Indel AG) - [367482] fixed resource leak + * Doug Schaefer (QNX) - added different start and end patterns for macros *******************************************************************************/ package org.eclipse.cdt.core.templateengine.process; @@ -77,21 +78,35 @@ public class ProcessHelper { * @since 4.0 */ public static Set getReplaceKeys(String str) { + return getReplaceKeys(str, START_PATTERN, END_PATTERN); + } + + /** + * This method returns a vector of all replace marker strings. (e.g., + * $(item), vector contains 'item' as one item) is the end pattern. + * + * @param str A given string possibly containing markers. + * @param startPattern token to start macro replacement + * @param endPattern token to end macro replacement + * @return the set of names occurring within markers + * @since 5.5 + */ + public static Set getReplaceKeys(String str, String startPattern, String endPattern) { Set replaceStrings = new HashSet(); int start= 0; int end= 0; - while ((start = str.indexOf(START_PATTERN, start)) >= 0) { - end = str.indexOf(END_PATTERN, start); + while ((start = str.indexOf(startPattern, start)) >= 0) { + end = str.indexOf(endPattern, start); if (end != -1) { - replaceStrings.add(str.substring(start + START_PATTERN.length(), end)); - start = end + END_PATTERN.length(); + replaceStrings.add(str.substring(start + startPattern.length(), end)); + start = end + endPattern.length(); } else { start++; } } return replaceStrings; } - + /** * This method takes a URL as parameter to read the contents, and to add * into a string buffer. @@ -183,12 +198,24 @@ public class ProcessHelper { * * @since 4.0 */ - public static String getValueAfterExpandingMacros(String string, Set macros, - Map valueStore) { + public static String getValueAfterExpandingMacros(String string, Set macros, Map valueStore) { + return getValueAfterExpandingMacros(string, macros, valueStore, START_PATTERN, END_PATTERN); + } + + /** + * @param string + * @param macros + * @param valueStore + * @return the macro value after expanding the macros. + * + * @since 5.5 + */ + public static String getValueAfterExpandingMacros(String string, Set macros, Map valueStore, + String startPattern, String endPattern) { for (String key : macros) { String value = valueStore.get(key); if (value != null) { - string = string.replace(START_PATTERN + key + END_PATTERN, value); + string = string.replace(startPattern + key + endPattern, value); } } return string; @@ -203,4 +230,5 @@ public class ProcessHelper { public static String getReplaceMarker(String macro) { return START_PATTERN + macro + END_PATTERN; } + } diff --git a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/processes/AddFiles.java b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/processes/AddFiles.java index e6674033e7c..1f4fa400dfe 100644 --- a/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/processes/AddFiles.java +++ b/core/org.eclipse.cdt.core/templateengine/org/eclipse/cdt/core/templateengine/process/processes/AddFiles.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2008 Symbian Software Limited and others. + * Copyright (c) 2007, 2013 Symbian Software Limited 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 @@ -7,6 +7,7 @@ * * Contributors: * Bala Torati (Symbian) - Initial API and implementation + * Doug Schaefer (QNX) - Added overridable start and end patterns *******************************************************************************/ package org.eclipse.cdt.core.templateengine.process.processes; @@ -29,7 +30,6 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.IStatus; - /** * Adds Files to the Project */ @@ -40,9 +40,30 @@ public class AddFiles extends ProcessRunner { */ @Override public void process(TemplateCore template, ProcessArgument[] args, String processId, IProgressMonitor monitor) throws ProcessFailureException { - String projectName = args[0].getSimpleValue(); - IProject projectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); - ProcessArgument[][] files = args[1].getComplexArrayValue(); + IProject projectHandle = null; + ProcessArgument[][] files = null; + String startPattern = null; + String endPattern = null; + + for (ProcessArgument arg : args) { + String argName = arg.getName(); + if (argName.equals("projectName")) { //$NON-NLS-1$ + projectHandle = ResourcesPlugin.getWorkspace().getRoot().getProject(arg.getSimpleValue()); + } else if (argName.equals("files")) { //$NON-NLS-1$ + files = arg.getComplexArrayValue(); + } else if (argName.equals("startPattern")) { //$NON-NLS-1$ + startPattern = arg.getSimpleValue(); + } else if (argName.equals("endPattern")) { //$NON-NLS-1$ + endPattern = arg.getSimpleValue(); + } + } + + if (projectHandle == null) + throw new ProcessFailureException(getProcessMessage(processId, IStatus.ERROR, Messages.getString("AddFiles.8"))); //$NON-NLS-1$ + + if (files == null) + throw new ProcessFailureException(getProcessMessage(processId, IStatus.ERROR, Messages.getString("AddFiles.9"))); //$NON-NLS-1$ + for(int i=0; i + + org.eclipse.cdt.qt-feature + + + + + + org.eclipse.pde.FeatureBuilder + + + + + + org.eclipse.pde.FeatureNature + + diff --git a/qt/org.eclipse.cdt.qt-feature/build.properties b/qt/org.eclipse.cdt.qt-feature/build.properties new file mode 100644 index 00000000000..64f93a9f0b7 --- /dev/null +++ b/qt/org.eclipse.cdt.qt-feature/build.properties @@ -0,0 +1 @@ +bin.includes = feature.xml diff --git a/qt/org.eclipse.cdt.qt-feature/eclipse_update_120.jpg b/qt/org.eclipse.cdt.qt-feature/eclipse_update_120.jpg new file mode 100644 index 0000000000000000000000000000000000000000..bfdf708ad617e4974cac04cc5c1c8192b09bbeb3 GIT binary patch literal 21695 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 + + + + + + + +Eclipse Public License - Version 1.0 + + + + + + +
+ +

Eclipse Public License - v 1.0 +

+ +

THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.

+ +

1. DEFINITIONS

+ +

"Contribution" means:

+ +

a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and
+b) in the case of each subsequent Contributor:

+ +

i) +changes to the Program, and

+ +

ii) +additions to the Program;

+ +

where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program.

+ +

"Contributor" means any person or +entity that distributes the Program.

+ +

"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program.

+ +

"Program" means the Contributions +distributed in accordance with this Agreement.

+ +

"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.

+ +

2. GRANT OF RIGHTS

+ +

a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.

+ +

b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide, royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder.

+ +

c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.

+ +

d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement.

+ +

3. REQUIREMENTS

+ +

A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that: +

+ +

a) +it complies with the terms and conditions of this Agreement; and

+ +

b) +its license agreement:

+ +

i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose;

+ +

ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits;

+ +

iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and

+ +

iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.

+ +

When the Program is made available in source +code form:

+ +

a) +it must be made available under this Agreement; and

+ +

b) a +copy of this Agreement must be included with each copy of the Program.

+ +

Contributors may not remove or alter any +copyright notices contained within the Program.

+ +

Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution.

+ +

4. COMMERCIAL DISTRIBUTION

+ +

Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.

+ +

For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.

+ +

5. NO WARRANTY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations.

+ +

6. DISCLAIMER OF LIABILITY

+ +

EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.

+ +

7. GENERAL

+ +

If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.

+ +

If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed.

+ +

All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive.

+ +

Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.

+ +

This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.

+ +

 

+ +
+ + + + \ No newline at end of file diff --git a/qt/org.eclipse.cdt.qt-feature/feature.xml b/qt/org.eclipse.cdt.qt-feature/feature.xml new file mode 100644 index 00000000000..599e59ae103 --- /dev/null +++ b/qt/org.eclipse.cdt.qt-feature/feature.xml @@ -0,0 +1,34 @@ + + + + + [Enter Feature Description here.] + + + + [Enter Copyright Description here.] + + + + [Enter License Description here.] + + + + + + + diff --git a/qt/org.eclipse.cdt.qt-feature/license.html b/qt/org.eclipse.cdt.qt-feature/license.html new file mode 100644 index 00000000000..f19c483b9c8 --- /dev/null +++ b/qt/org.eclipse.cdt.qt-feature/license.html @@ -0,0 +1,108 @@ + + + + + +Eclipse Foundation Software User Agreement + + + +

Eclipse Foundation Software User Agreement

+

February 1, 2011

+ +

Usage Of Content

+ +

THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS + (COLLECTIVELY "CONTENT"). USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND + CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW. BY USING THE CONTENT, YOU AGREE THAT YOUR USE + OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR + NOTICES INDICATED OR REFERENCED BELOW. IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND + CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.

+ +

Applicable Licenses

+ +

Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0 + ("EPL"). A copy of the EPL is provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html. + For purposes of the EPL, "Program" will mean the Content.

+ +

Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code + repository ("Repository") in software modules ("Modules") and made available as downloadable archives ("Downloads").

+ +
    +
  • Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"), plug-in fragments ("Fragments"), and features ("Features").
  • +
  • Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java™ ARchive) in a directory named "plugins".
  • +
  • A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material. Each Feature may be packaged as a sub-directory in a directory named "features". Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of the Plug-ins + and/or Fragments associated with that Feature.
  • +
  • Features may also include other Features ("Included Features"). Within a Feature, files named "feature.xml" may contain a list of the names and version numbers of Included Features.
  • +
+ +

The terms and conditions governing Plug-ins and Fragments should be contained in files named "about.html" ("Abouts"). The terms and conditions governing Features and +Included Features should be contained in files named "license.html" ("Feature Licenses"). Abouts and Feature Licenses may be located in any directory of a Download or Module +including, but not limited to the following locations:

+ +
    +
  • The top-level (root) directory
  • +
  • Plug-in and Fragment directories
  • +
  • Inside Plug-ins and Fragments packaged as JARs
  • +
  • Sub-directories of the directory named "src" of certain Plug-ins
  • +
  • Feature directories
  • +
+ +

Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license ("Feature Update License") during the +installation process. If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or +inform you where you can locate them. Feature Update Licenses may be found in the "license" property of files named "feature.properties" found within a Feature. +Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in +that directory.

+ +

THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS. SOME OF THESE +OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):

+ + + +

IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License is provided, please +contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.

+ + +

Use of Provisioning Technology

+ +

The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse + Update Manager ("Provisioning Technology") for the purpose of allowing users to install software, documentation, information and/or + other materials (collectively "Installable Software"). This capability is provided with the intent of allowing such users to + install, extend and update Eclipse-based products. Information about packaging Installable Software is available at http://eclipse.org/equinox/p2/repository_packaging.html + ("Specification").

+ +

You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the + applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology + in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the + Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:

+ +
    +
  1. A series of actions may occur ("Provisioning Process") in which a user may execute the Provisioning Technology + on a machine ("Target Machine") with the intent of installing, extending or updating the functionality of an Eclipse-based + product.
  2. +
  3. During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be + accessed and copied to the Target Machine.
  4. +
  5. Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable + Software ("Installable Software Agreement") and such Installable Software Agreement shall be accessed from the Target + Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern + the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such + indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.
  6. +
+ +

Cryptography

+ +

Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to + another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import, + possession, or use, and re-export of encryption software, to see if this is permitted.

+ +

Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.

+ + diff --git a/qt/org.eclipse.cdt.qt.core/.classpath b/qt/org.eclipse.cdt.qt.core/.classpath new file mode 100644 index 00000000000..ad32c83a788 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.core/.project b/qt/org.eclipse.cdt.qt.core/.project new file mode 100644 index 00000000000..a679b3bf3a9 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.qt.core + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/qt/org.eclipse.cdt.qt.core/.settings/org.eclipse.jdt.core.prefs b/qt/org.eclipse.cdt.qt.core/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..c537b63063c --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..de39706f978 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: CDT Qt Support Core +Bundle-SymbolicName: org.eclipse.cdt.qt.core;singleton:=true +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.cdt.qt.core.Activator +Bundle-Vendor: Eclipse CDT +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.cdt.core +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy diff --git a/qt/org.eclipse.cdt.qt.core/about.html b/qt/org.eclipse.cdt.qt.core/about.html new file mode 100644 index 00000000000..d7c511887d6 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/about.html @@ -0,0 +1,24 @@ + + +About + + +

About This Content

+ +

June 22, 2007

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + \ No newline at end of file diff --git a/qt/org.eclipse.cdt.qt.core/build.properties b/qt/org.eclipse.cdt.qt.core/build.properties new file mode 100644 index 00000000000..09a194a7e88 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/build.properties @@ -0,0 +1,8 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + templates/,\ + about.html +src.includes = about.html diff --git a/qt/org.eclipse.cdt.qt.core/plugin.xml b/qt/org.eclipse.cdt.qt.core/plugin.xml new file mode 100644 index 00000000000..9789dc324f2 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/plugin.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/Activator.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/Activator.java new file mode 100644 index 00000000000..2e3a4ecd3a4 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/qt/core/Activator.java @@ -0,0 +1,30 @@ +package org.eclipse.cdt.qt.core; + +import org.osgi.framework.BundleActivator; +import org.osgi.framework.BundleContext; + +public class Activator implements BundleActivator { + + private static BundleContext context; + + static BundleContext getContext() { + return context; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext bundleContext) throws Exception { + Activator.context = bundleContext; + } + + /* + * (non-Javadoc) + * @see org.osgi.framework.BundleActivator#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext bundleContext) throws Exception { + Activator.context = null; + } + +} diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.cpp b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.cpp new file mode 100644 index 00000000000..0d4874b0b29 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.cpp @@ -0,0 +1,12 @@ +#include +#include + +int main(int argc, char *argv[]) +{ + QGuiApplication app(argc, argv); + + QQuickView viewer(QStringLiteral("$(baseName).qml")); + viewer.show(); + + return app.exec(); +} diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.pro b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.pro new file mode 100644 index 00000000000..d8bd5026732 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.pro @@ -0,0 +1,3 @@ +QT += qml quick + +SOURCES += {{baseName}}.cpp diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.qml b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.qml new file mode 100644 index 00000000000..897812a6cb4 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Basename.qml @@ -0,0 +1,16 @@ +import QtQuick 2.0 + +Rectangle { + width: 360 + height: 360 + Text { + text: qsTr("Hello World") + anchors.centerIn: parent + } + MouseArea { + anchors.fill: parent + onClicked: { + Qt.quit(); + } + } +} diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile new file mode 100644 index 00000000000..5322ef46d12 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile @@ -0,0 +1,13 @@ +QMAKE = {{qmake}} + +OUTDIR = build + +$(OUTDIR)/Makefile: + @mkdir -p $(OUTDIR) + $(QMAKE) -o $(OUTDIR)/Makefile {{baseName}}.pro + +all: $(OUTDIR)/Makefile + $(MAKE) -C $(OUTDIR) + +clean: + rm -fr $(OUTDIR) diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.properties b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.properties new file mode 100644 index 00000000000..a8695c78663 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.properties @@ -0,0 +1,18 @@ +############################################################################### +# Copyright (c) 2007 Symbian Software Private Ltd. 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: +# Bala Torati (Symbian) - initial API and implementation +############################################################################### + +#Template Default Values +QtHelloWorld.label=Hello World QtQuick2 Project +QtHelloWorld.description=A Hello World QtQuick2 Project +QtHelloWorld.basics.label=Basic Settings +QtHelloWorld.basics.description=Basic properties of a project +QtHelloWorld.qmake.label=qmake location +QtHelloWorld.qmake.description=Location of the qmake executable diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.xml b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.xml new file mode 100644 index 00000000000..c80a589e17c --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/template.xml @@ -0,0 +1,61 @@ + + + diff --git a/qt/org.eclipse.cdt.qt.ui/.classpath b/qt/org.eclipse.cdt.qt.ui/.classpath new file mode 100644 index 00000000000..ad32c83a788 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/.classpath @@ -0,0 +1,7 @@ + + + + + + + diff --git a/qt/org.eclipse.cdt.qt.ui/.project b/qt/org.eclipse.cdt.qt.ui/.project new file mode 100644 index 00000000000..83277e4b223 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/.project @@ -0,0 +1,28 @@ + + + org.eclipse.cdt.qt.ui + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.pde.ManifestBuilder + + + + + org.eclipse.pde.SchemaBuilder + + + + + + org.eclipse.pde.PluginNature + org.eclipse.jdt.core.javanature + + diff --git a/qt/org.eclipse.cdt.qt.ui/.settings/org.eclipse.jdt.core.prefs b/qt/org.eclipse.cdt.qt.ui/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 00000000000..c537b63063c --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 +org.eclipse.jdt.core.compiler.compliance=1.6 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.6 diff --git a/qt/org.eclipse.cdt.qt.ui/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.ui/META-INF/MANIFEST.MF new file mode 100644 index 00000000000..50e19770980 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/META-INF/MANIFEST.MF @@ -0,0 +1,11 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: CDT Qt Support UI +Bundle-SymbolicName: org.eclipse.cdt.qt.ui +Bundle-Version: 1.0.0.qualifier +Bundle-Activator: org.eclipse.cdt.qt.ui.Activator +Bundle-Vendor: Eclipse CDT +Require-Bundle: org.eclipse.ui, + org.eclipse.core.runtime +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Bundle-ActivationPolicy: lazy diff --git a/qt/org.eclipse.cdt.qt.ui/about.html b/qt/org.eclipse.cdt.qt.ui/about.html new file mode 100644 index 00000000000..d7c511887d6 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/about.html @@ -0,0 +1,24 @@ + + +About + + +

About This Content

+ +

June 22, 2007

+

License

+ +

The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is available +at http://www.eclipse.org/legal/epl-v10.html. +For purposes of the EPL, "Program" will mean the Content.

+ +

If you did not receive this Content directly from the Eclipse Foundation, the Content is +being redistributed by another party ("Redistributor") and different terms and conditions may +apply to your use of any object code in the Content. Check the Redistributor's license that was +provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise +indicated below, the terms and conditions of the EPL still apply to any source code in the Content +and such source code may be obtained at http://www.eclipse.org.

+ + \ No newline at end of file diff --git a/qt/org.eclipse.cdt.qt.ui/build.properties b/qt/org.eclipse.cdt.qt.ui/build.properties new file mode 100644 index 00000000000..34d2e4d2dad --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/build.properties @@ -0,0 +1,4 @@ +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + . diff --git a/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/qt/ui/Activator.java b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/qt/ui/Activator.java new file mode 100644 index 00000000000..5d1039b2ae0 --- /dev/null +++ b/qt/org.eclipse.cdt.qt.ui/src/org/eclipse/cdt/qt/ui/Activator.java @@ -0,0 +1,50 @@ +package org.eclipse.cdt.qt.ui; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.eclipse.cdt.qt.ui"; //$NON-NLS-1$ + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} From c946bb225aafb2e8a49972f9deff6a052bbafaa7 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Sat, 12 Jan 2013 14:34:39 -0500 Subject: [PATCH 07/68] Added debug versus release. And added ref to clang toolchain. --- qt/org.eclipse.cdt.qt.core/plugin.xml | 3 ++ .../project/helloWorld/qtQuick2/Makefile | 28 +++++++++++++------ 2 files changed, 23 insertions(+), 8 deletions(-) diff --git a/qt/org.eclipse.cdt.qt.core/plugin.xml b/qt/org.eclipse.cdt.qt.core/plugin.xml index 9789dc324f2..b99b24c86f8 100644 --- a/qt/org.eclipse.cdt.qt.core/plugin.xml +++ b/qt/org.eclipse.cdt.qt.core/plugin.xml @@ -19,6 +19,9 @@ + +
diff --git a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile index 5322ef46d12..86932e1beb6 100644 --- a/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile +++ b/qt/org.eclipse.cdt.qt.core/templates/project/helloWorld/qtQuick2/Makefile @@ -1,13 +1,25 @@ QMAKE = {{qmake}} -OUTDIR = build +all: debug release -$(OUTDIR)/Makefile: - @mkdir -p $(OUTDIR) - $(QMAKE) -o $(OUTDIR)/Makefile {{baseName}}.pro +clean: clean-debug clean-release -all: $(OUTDIR)/Makefile - $(MAKE) -C $(OUTDIR) +build-debug/Makefile: + @mkdir -p $(dir $@) + $(QMAKE) -o $@ clangtest.pro CONFIG+=debug -clean: - rm -fr $(OUTDIR) +debug: build-debug/Makefile + $(MAKE) -w -C build-debug + +clean-debug: + rm -fr build-debug + +build-release/Makefile: + @mkdir -p $(dir $@) + $(QMAKE) -o $@ clangtest.pro CONFIG+=release + +release: build-release/Makefile + $(MAKE) -w -C build-release + +clean-release: + rm -fr build-release From f5030e3533246432e1a06c13cf11a00d55cfeb85 Mon Sep 17 00:00:00 2001 From: Doug Schaefer Date: Sat, 12 Jan 2013 16:10:21 -0500 Subject: [PATCH 08/68] Added content types for .pro and .qml files for Qt. --- qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF | 1 + qt/org.eclipse.cdt.qt.core/plugin.properties | 2 ++ qt/org.eclipse.cdt.qt.core/plugin.xml | 17 +++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 qt/org.eclipse.cdt.qt.core/plugin.properties diff --git a/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF index de39706f978..552ea94b6c2 100644 --- a/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF +++ b/qt/org.eclipse.cdt.qt.core/META-INF/MANIFEST.MF @@ -9,3 +9,4 @@ Require-Bundle: org.eclipse.core.runtime, org.eclipse.cdt.core Bundle-RequiredExecutionEnvironment: JavaSE-1.6 Bundle-ActivationPolicy: lazy +Bundle-Localization: plugin diff --git a/qt/org.eclipse.cdt.qt.core/plugin.properties b/qt/org.eclipse.cdt.qt.core/plugin.properties new file mode 100644 index 00000000000..0206fd12b0a --- /dev/null +++ b/qt/org.eclipse.cdt.qt.core/plugin.properties @@ -0,0 +1,2 @@ +qtProjectFile.name = Qt Project File +qmlFile.name = QML File diff --git a/qt/org.eclipse.cdt.qt.core/plugin.xml b/qt/org.eclipse.cdt.qt.core/plugin.xml index b99b24c86f8..d0ab3f8001e 100644 --- a/qt/org.eclipse.cdt.qt.core/plugin.xml +++ b/qt/org.eclipse.cdt.qt.core/plugin.xml @@ -24,4 +24,21 @@ + + + + + + From 3f93648a5886ba4cec777efd51b3702149a7e7f2 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Sat, 12 Jan 2013 05:11:53 -0500 Subject: [PATCH 09/68] Wording on language setting providers options page --- .../src/org/eclipse/cdt/internal/ui/newui/Messages.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties index 4c543c88cd3..fb82cc455f3 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/newui/Messages.properties @@ -202,7 +202,7 @@ LanguageSettingsProviderTab_Reset=Reset LanguageSettingsProviderTab_ProviderOptions=Language Settings Provider Options LanguageSettingsProviderTab_SettingEntries=Setting Entries LanguageSettingsProviderTab_SettingEntriesTooltip=Setting Entries -LanguageSettingsProviderTab_ShareProviders=Share setting entries between projects (global provider) +LanguageSettingsProviderTab_ShareProviders=Use global provider shared between projects LanguageSettingsProviderTab_StoreEntriesInsideProject=Store entries in project settings folder (easing project migration) LanguageSettingsProviderTab_TitleResetProviders=Reset Language Settings Providers LanguageSettingsProviderTab_WorkspaceSettings=Workspace Settings From 2f425c4386bf457f46345c32ccee2fb410a92ecf Mon Sep 17 00:00:00 2001 From: Caroline Rieder Date: Sat, 12 Jan 2013 05:44:13 -0500 Subject: [PATCH 10/68] bug 395307: Switching back to project specific language settings provider seems to be incorrect --- .../providers/LanguageSettingsProviderTab.java | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index bced35b4906..fefcb4f35ad 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -479,13 +479,16 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { newProvider = LanguageSettingsManager.getWorkspaceProvider(id); } else { // Toggle to configuration-owned provider - try { - ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider); - if (rawProvider instanceof ILanguageSettingsEditableProvider) { - newProvider = ((ILanguageSettingsEditableProvider) rawProvider).cloneShallow(); + newProvider = getInitialProvider(id); + if(newProvider == null) { + try { + ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(provider); + if (rawProvider instanceof ILanguageSettingsEditableProvider) { + newProvider = ((ILanguageSettingsEditableProvider) rawProvider).cloneShallow(); + } + } catch (CloneNotSupportedException e) { + CUIPlugin.log("Error cloning provider " + id, e); //$NON-NLS-1$ } - } catch (CloneNotSupportedException e) { - CUIPlugin.log("Error cloning provider " + id, e); //$NON-NLS-1$ } } if (newProvider != null) { From 3222ba63edd499f7ad7f25087f9c496ec0433e02 Mon Sep 17 00:00:00 2001 From: Caroline Rieder Date: Sat, 12 Jan 2013 05:48:20 -0500 Subject: [PATCH 11/68] bug 395442: Initial provider command is not restored for non-shared providers --- .../settings/providers/LanguageSettingsProviderTab.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java index fefcb4f35ad..078e30ce016 100644 --- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java +++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/language/settings/providers/LanguageSettingsProviderTab.java @@ -439,9 +439,12 @@ public class LanguageSettingsProviderTab extends AbstractCPropertyTab { if (event.getChecked()) { if (LanguageSettingsManager.isWorkspaceProvider(checkedProvider) && !LanguageSettingsManager.isPreferShared(id)) { - ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(checkedProvider); - if (rawProvider instanceof ILanguageSettingsEditableProvider) { - newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false); + newProvider = getInitialProvider(id); + if(newProvider == null) { + ILanguageSettingsProvider rawProvider = LanguageSettingsManager.getRawProvider(checkedProvider); + if (rawProvider instanceof ILanguageSettingsEditableProvider) { + newProvider = LanguageSettingsManager.getProviderCopy((ILanguageSettingsEditableProvider) rawProvider, false); + } } } } else { From 9e6ee807a9eb89a255ac60ecfd513b5bba84fdfa Mon Sep 17 00:00:00 2001 From: Marc Khouzam Date: Mon, 14 Jan 2013 06:23:04 -0500 Subject: [PATCH 12/68] Bug 378834 - Update Debug JUnit tests to run on Hudson Change-Id: Ie93ef3b2401b6823afd96504de1b5b5c577f1da4 Reviewed-on: https://git.eclipse.org/r/9656 Reviewed-by: Marc Khouzam IP-Clean: Marc Khouzam Tested-by: Marc Khouzam --- .../build.properties | 5 +- .../data/launch/src/Makefile | 2 +- .../data/launch/src/MultiThread.cc | 4 +- .../data/launch/src/MultiThreadRunControl.cc | 6 +-- .../data/launch/src/TracepointTestApp.cc | 4 +- dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/pom.xml | 40 +++++++++++++++- .../tests/dsf/gdb/framework/BaseTestCase.java | 23 ++++++--- .../tests/dsf/gdb/tests/AutomatedSuite.java | 4 +- .../dsf/gdb/tests/MIBreakpointsTest.java | 15 +++--- .../dsf/gdb/tests/MICatchpointsTest.java | 11 +++-- .../tests/dsf/gdb/tests/MIRegistersTest.java | 48 ++++++++++++++----- .../tests/tests_7_2/MIRegistersTest_7_2.java | 24 ---------- 12 files changed, 117 insertions(+), 69 deletions(-) diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/build.properties b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/build.properties index 5d3e3b9ad20..90d7029058c 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/build.properties +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/build.properties @@ -9,9 +9,10 @@ # Wind River Systems - initial API and implementation # IBM Corporation ############################################################################### -output.tests.jar = bin/ bin.includes = fragment.xml,\ META-INF/,\ - . + .,\ + data/,\ + about.html source.. = src/ src.includes = about.html diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/Makefile b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/Makefile index 3ac4e9a2ff9..e67f6e886e9 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/Makefile +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/Makefile @@ -1,6 +1,6 @@ src = $(wildcard *.cc *.c) destDir = ../bin -GCCFLAGS = -gdwarf-2 -pthread -m32 +GCCFLAGS = -gdwarf-2 -pthread all: @mkdir -p $(destDir) diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThread.cc b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThread.cc index e4d390d5a14..db0bd9ff5d1 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThread.cc +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThread.cc @@ -21,8 +21,8 @@ unsigned int __stdcall PrintHello(void *threadid) void *PrintHello(void *threadid) #endif { - int tid = (int)threadid; - printf("Hello World! It's me, thread #%d!\n", tid); + long tid = (long)threadid; + printf("Hello World! It's me, thread #%ld!\n", tid); SLEEP(2); // keep this thread around for a bit; the tests will check for its existence while the main thread is stopped at a breakpoint #ifdef __MINGW32__ diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThreadRunControl.cc b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThreadRunControl.cc index f30714744ea..4556b07b6dd 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThreadRunControl.cc +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/MultiThreadRunControl.cc @@ -14,9 +14,9 @@ typedef pthread_t TID; #endif // Set a breakpoint here so that both threads stop. -void firstBreakpoint(int id) +void firstBreakpoint(long id) { - printf("First breakpoint method from thread %d\n", id); + printf("First breakpoint method from thread %ld\n", id); } @@ -26,7 +26,7 @@ unsigned int __stdcall PrintHello(void *threadid) void *PrintHello(void *threadId) #endif { - int tId = (int)threadId; + long tId = (long)threadId; firstBreakpoint(tId); // Stop a first time SLEEP(1); // Keep state running a little diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/TracepointTestApp.cc b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/TracepointTestApp.cc index 5bfe8649f95..ae8acdff923 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/TracepointTestApp.cc +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/data/launch/src/TracepointTestApp.cc @@ -73,8 +73,8 @@ unsigned int __stdcall testTracepoints(void *threadid) void *testTracepoints(void *threadid) #endif { - int tid = (int)threadid; - printf("Hello World! It's me, thread #%d!\n", tid); + long tid = (long)threadid; + printf("Hello World! It's me, thread #%ld!\n", tid); int lIntVar = 12345; double lDoubleVar = 12345.12345; diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/pom.xml b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/pom.xml index 5423cfb4202..9b9554e9b4e 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/pom.xml +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/pom.xml @@ -24,15 +24,53 @@ --> + + + production + + -Dcdt.tests.dsf.gdb.path=/opt/public/download-staging.priv/tools/cdt/gdb + + + + + + maven-antrun-plugin + + + clean + clean + + + + + + + run + + + + prepare + validate + + + + + + + run + + + + org.eclipse.tycho tycho-surefire-plugin ${tycho-version} true - -Xms256m -Xmx512m -XX:MaxPermSize=256M + -Xms256m -Xmx512m -XX:MaxPermSize=256M ${gdbPathOption} **/AutomatedSuite.* diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java index 8ba587e339c..9d0bffb8ccf 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/framework/BaseTestCase.java @@ -21,6 +21,8 @@ import org.eclipse.cdt.debug.core.ICDTLaunchConfigurationConstants; import org.eclipse.cdt.dsf.datamodel.IDMEvent; import org.eclipse.cdt.dsf.debug.service.IRunControl.ISuspendedDMEvent; import org.eclipse.cdt.dsf.gdb.IGDBLaunchConfigurationConstants; +import org.eclipse.cdt.dsf.gdb.internal.GdbDebugOptions; +import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; import org.eclipse.cdt.dsf.gdb.launching.GdbLaunch; import org.eclipse.cdt.dsf.mi.service.command.events.IMIDMEvent; import org.eclipse.cdt.dsf.mi.service.command.events.MIStoppedEvent; @@ -218,10 +220,10 @@ public class BaseTestCase { protected void doLaunch() throws Exception { boolean remote = launchAttributes.get(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_START_MODE).equals(IGDBLaunchConfigurationConstants.DEBUGGER_MODE_REMOTE); - System.out.println("===================================================================================================="); - System.out.println(String.format("Running test: %s using GDB: %s remote %s", - testName.getMethodName(), launchAttributes.get(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME), remote ? "on" : "off")); - System.out.println("===================================================================================================="); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace("===============================================================================================\n"); + System.out.println(String.format("%s \"%s\" launching %s %s", + GdbPlugin.getDebugTime(), testName.getMethodName(), launchAttributes.get(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME), remote ? "with gdbserver" : "")); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace("===============================================================================================\n"); boolean postMortemLaunch = launchAttributes.get(ICDTLaunchConfigurationConstants.ATTR_DEBUGGER_START_MODE) .equals(ICDTLaunchConfigurationConstants.DEBUGGER_MODE_CORE); @@ -320,7 +322,7 @@ public class BaseTestCase { BufferedReader reader = new BufferedReader(r); String line; while ((line = reader.readLine()) != null) { - System.out.println(line); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(line + "\n"); line = line.trim(); if (line.startsWith("Listening on port")) { break; @@ -351,8 +353,15 @@ public class BaseTestCase { public static void setGdbProgramNamesLaunchAttributes(String version) { // See bugzilla 303811 for why we have to append ".exe" on Windows boolean isWindows = Platform.getOS().equals(Platform.OS_WIN32); - setGlobalLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME, "gdb." + version + (isWindows ? ".exe" : "")); - setGlobalLaunchAttribute(ATTR_DEBUG_SERVER_NAME, "gdbserver." + version + (isWindows ? ".exe" : "")); + String gdbPath = System.getProperty("cdt.tests.dsf.gdb.path"); + String debugName = "gdb." + version + (isWindows ? ".exe" : ""); + String debugServerName = "gdbserver." + version + (isWindows ? ".exe" : ""); + if (gdbPath != null) { + debugName = gdbPath + "/" + debugName; + debugServerName = gdbPath + "/" + debugServerName; + } + setGlobalLaunchAttribute(IGDBLaunchConfigurationConstants.ATTR_DEBUG_NAME, debugName); + setGlobalLaunchAttribute(ATTR_DEBUG_SERVER_NAME, debugServerName); } protected void setGdbVersion() { diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/AutomatedSuite.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/AutomatedSuite.java index b1dd875c211..64f7246de54 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/AutomatedSuite.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/AutomatedSuite.java @@ -10,7 +10,7 @@ *******************************************************************************/ package org.eclipse.cdt.tests.dsf.gdb.tests; -import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_4.Suite_7_4; +import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_5.Suite_7_5; import org.junit.runner.RunWith; import org.junit.runners.Suite; @@ -21,7 +21,7 @@ import org.junit.runners.Suite; @RunWith(Suite.class) @Suite.SuiteClasses({ - Suite_7_4.class, + Suite_7_5.class, // Can't run the Remote test just yet because they // have the same names on the local tests, which is // not handled by JUnit (https://bugs.eclipse.org/172256) diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIBreakpointsTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIBreakpointsTest.java index 37dee117646..08fd209f524 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIBreakpointsTest.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIBreakpointsTest.java @@ -37,7 +37,8 @@ import org.eclipse.cdt.dsf.debug.service.IFormattedValues.FormattedValueDMContex import org.eclipse.cdt.dsf.debug.service.IFormattedValues.FormattedValueDMData; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.cdt.dsf.debug.service.IStack.IFrameDMContext; -import org.eclipse.cdt.dsf.internal.DsfPlugin; +import org.eclipse.cdt.dsf.gdb.internal.GdbDebugOptions; +import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; import org.eclipse.cdt.dsf.mi.service.MIBreakpointDMData; import org.eclipse.cdt.dsf.mi.service.MIBreakpoints; import org.eclipse.cdt.dsf.mi.service.MIBreakpoints.MIBreakpointDMContext; @@ -240,7 +241,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(IBreakpointsAddedEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got bp added event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp added event\n"); fBreakpointEvents[BP_ADDED]++; fBreakpointEventCount++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); @@ -251,7 +252,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(IBreakpointsUpdatedEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got bp updated event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp updated event\n"); fBreakpointEvents[BP_UPDATED]++; fBreakpointEventCount++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); @@ -262,7 +263,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(IBreakpointsRemovedEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got bp removed event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp removed event\n"); fBreakpointEvents[BP_REMOVED]++; fBreakpointEventCount++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); @@ -273,7 +274,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(MIBreakpointHitEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got bp hit event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp hit event\n"); fBreakpointEvents[BP_HIT]++; fBreakpointEventCount++; fBreakpointRef = e.getNumber(); @@ -284,7 +285,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(MIWatchpointTriggerEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got wp hit event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got wp hit event\n"); fBreakpointEvents[WP_HIT]++; fBreakpointEventCount++; fBreakpointRef = e.getNumber(); @@ -295,7 +296,7 @@ public class MIBreakpointsTest extends BaseTestCase { @DsfServiceEventHandler public void eventDispatched(MIWatchpointScopeEvent e) { synchronized (lock) { - System.out.println(DsfPlugin.getDebugTime() + " Got wp scope event"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got wp scope event\n"); fBreakpointEvents[WP_OOS]++; fBreakpointEventCount++; fBreakpointRef = e.getNumber(); diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java index b205d223238..f3e548d4440 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MICatchpointsTest.java @@ -43,7 +43,8 @@ import org.eclipse.cdt.dsf.debug.service.IFormattedValues.FormattedValueDMContex import org.eclipse.cdt.dsf.debug.service.IFormattedValues.FormattedValueDMData; import org.eclipse.cdt.dsf.debug.service.IRunControl.IContainerDMContext; import org.eclipse.cdt.dsf.debug.service.IStack.IFrameDMContext; -import org.eclipse.cdt.dsf.internal.DsfPlugin; +import org.eclipse.cdt.dsf.gdb.internal.GdbDebugOptions; +import org.eclipse.cdt.dsf.gdb.internal.GdbPlugin; import org.eclipse.cdt.dsf.mi.service.MIBreakpointDMData; import org.eclipse.cdt.dsf.mi.service.MIBreakpoints; import org.eclipse.cdt.dsf.mi.service.MIBreakpoints.MIBreakpointDMContext; @@ -225,7 +226,7 @@ public class MICatchpointsTest extends BaseTestCase { synchronized (fEventHandlerLock) { fBreakpointEvents[BP_ADDED]++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); - System.out.println(DsfPlugin.getDebugTime() + " Got bp added event (#" + fBreakpointRef + ")"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp added event (#" + fBreakpointRef + ")\n"); fEventHandlerLock.notifyAll(); } } @@ -235,7 +236,7 @@ public class MICatchpointsTest extends BaseTestCase { synchronized (fEventHandlerLock) { fBreakpointEvents[BP_UPDATED]++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); - System.out.println(DsfPlugin.getDebugTime() + " Got bp updated event (#" + fBreakpointRef + ")"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp updated event (#" + fBreakpointRef + ")\n"); fEventHandlerLock.notifyAll(); } } @@ -245,7 +246,7 @@ public class MICatchpointsTest extends BaseTestCase { synchronized (fEventHandlerLock) { fBreakpointEvents[BP_REMOVED]++; fBreakpointRef = ((MIBreakpointDMContext) e.getBreakpoints()[0]).getReference(); - System.out.println(DsfPlugin.getDebugTime() + " Got bp removed event (#" + fBreakpointRef + ")"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp removed event (#" + fBreakpointRef + ")\n"); fEventHandlerLock.notifyAll(); } } @@ -255,7 +256,7 @@ public class MICatchpointsTest extends BaseTestCase { synchronized (fEventHandlerLock) { fBreakpointEvents[BP_HIT]++; fBreakpointRef = e.getNumber(); - System.out.println(DsfPlugin.getDebugTime() + " Got bp hit event (#" + fBreakpointRef + ")"); + if(GdbDebugOptions.DEBUG) GdbDebugOptions.trace(GdbPlugin.getDebugTime() + " Got bp hit event (#" + fBreakpointRef + ")\n"); fEventHandlerLock.notifyAll(); } } diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java index bffe6680735..770c169db83 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/MIRegistersTest.java @@ -14,7 +14,6 @@ package org.eclipse.cdt.tests.dsf.gdb.tests; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertTrue; -import java.util.Arrays; import java.util.LinkedList; import java.util.List; @@ -43,10 +42,12 @@ import org.eclipse.cdt.dsf.debug.service.IRunControl.IExecutionDMContext; import org.eclipse.cdt.dsf.debug.service.IRunControl.StepType; import org.eclipse.cdt.dsf.debug.service.IStack.IFrameDMContext; import org.eclipse.cdt.dsf.debug.service.command.ICommandControlService; +import org.eclipse.cdt.dsf.mi.service.IMICommandControl; import org.eclipse.cdt.dsf.mi.service.IMIExecutionDMContext; import org.eclipse.cdt.dsf.mi.service.IMIProcesses; import org.eclipse.cdt.dsf.mi.service.MIProcesses; import org.eclipse.cdt.dsf.mi.service.command.events.MIStoppedEvent; +import org.eclipse.cdt.dsf.mi.service.command.output.MIDataListRegisterNamesInfo; import org.eclipse.cdt.dsf.service.DsfServicesTracker; import org.eclipse.cdt.dsf.service.DsfSession; import org.eclipse.cdt.tests.dsf.gdb.framework.AsyncCompletionWaitor; @@ -54,7 +55,6 @@ import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; import org.eclipse.cdt.tests.dsf.gdb.framework.BaseTestCase; import org.eclipse.cdt.tests.dsf.gdb.framework.SyncUtil; import org.eclipse.cdt.tests.dsf.gdb.launching.TestsPlugin; -import org.eclipse.core.runtime.Platform; import org.junit.Assert; import org.junit.Ignore; import org.junit.Test; @@ -62,18 +62,40 @@ import org.junit.runner.RunWith; @RunWith(BackgroundRunner.class) public class MIRegistersTest extends BaseTestCase { + // Static list of register names as obtained directly from GDB. + // We make it static it does not get re-set for every test + protected static List fRegisterNames = null; - protected List get_X86_REGS() { - List list = new LinkedList(Arrays.asList("eax","ecx","edx","ebx","esp","ebp","esi","edi","eip","eflags", - "cs","ss","ds","es","fs","gs","st0","st1","st2","st3", - "st4","st5","st6","st7","fctrl","fstat","ftag","fiseg","fioff","foseg", - "fooff","fop","xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7", - "mxcsr","orig_eax","mm0","mm1","mm2","mm3","mm4","mm5","mm6","mm7")); - // On Windows, gdb doesn't report "orig_eax" as a register. Apparently it does on Linux - if (Platform.getOS().equals(Platform.OS_WIN32)) { - list.remove("orig_eax"); - } - return list; + protected List get_X86_REGS() throws Throwable { + if (fRegisterNames == null) { + // The tests must run on different machines, so the set of registers can change. + // To deal with this we ask GDB for the list of registers. + // Note that we send an MI Command in this code and do not use the IRegister service; + // this is because we want to test the service later, comparing it to what we find + // by asking GDB directly. + Query query = new Query() { + @Override + protected void execute(DataRequestMonitor rm) { + IMICommandControl controlService = fServicesTracker.getService(IMICommandControl.class); + controlService.queueCommand( + controlService.getCommandFactory().createMIDataListRegisterNames(fContainerDmc), rm); + } + }; + fSession.getExecutor().execute(query); + + MIDataListRegisterNamesInfo data = query.get(); + String[] names = data.getRegisterNames(); + + // Remove registers with empty names since the service also + // remove them. I don't know why GDB returns such empty names. + fRegisterNames = new LinkedList(); + for (String name : names) { + if (!name.isEmpty()) { + fRegisterNames.add(name); + } + } + } + return fRegisterNames; } /* diff --git a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_2/MIRegistersTest_7_2.java b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_2/MIRegistersTest_7_2.java index a7bcd4d7a8d..d2bac5c558c 100644 --- a/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_2/MIRegistersTest_7_2.java +++ b/dsf-gdb/org.eclipse.cdt.tests.dsf.gdb/src/org/eclipse/cdt/tests/dsf/gdb/tests/tests_7_2/MIRegistersTest_7_2.java @@ -10,14 +10,9 @@ *******************************************************************************/ package org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_2; -import java.util.Arrays; -import java.util.LinkedList; -import java.util.List; - import org.eclipse.cdt.tests.dsf.gdb.framework.BackgroundRunner; import org.eclipse.cdt.tests.dsf.gdb.tests.ITestConstants; import org.eclipse.cdt.tests.dsf.gdb.tests.tests_7_1.MIRegistersTest_7_1; -import org.eclipse.core.runtime.Platform; import org.junit.runner.RunWith; @RunWith(BackgroundRunner.class) @@ -26,23 +21,4 @@ public class MIRegistersTest_7_2 extends MIRegistersTest_7_1 { protected void setGdbVersion() { setGdbProgramNamesLaunchAttributes(ITestConstants.SUFFIX_GDB_7_2); } - - // GDB's list of registers is different with GDB 7.2 - @Override - protected List get_X86_REGS() { - List list = new LinkedList(Arrays.asList("eax","ecx","edx","ebx","esp","ebp","esi","edi","eip","eflags", - "cs","ss","ds","es","fs","gs","st0","st1","st2","st3", - "st4","st5","st6","st7","fctrl","fstat","ftag","fiseg","fioff","foseg", - "fooff","fop","xmm0","xmm1","xmm2","xmm3","xmm4","xmm5","xmm6","xmm7", - "mxcsr",/*"","","","","","","","",*/"orig_eax", - "al","cl","dl","bl","ah","ch","dh","bh","ax","cx", - "dx","bx",/*"",*/"bp","si","di","mm0","mm1","mm2","mm3", - "mm4","mm5","mm6","mm7")); - // On Windows, gdb doesn't report "orig_eax" as a register. Apparently it does on Linux - if (Platform.getOS().equals(Platform.OS_WIN32)) { - list.remove("orig_eax"); - } - return list; - } - } From 111b6ba1852165dd558a23938e703e5fdd47dfb4 Mon Sep 17 00:00:00 2001 From: Martin Oberhuber Date: Mon, 14 Jan 2013 12:36:51 -0800 Subject: [PATCH 13/68] Bug 397652 - Exporting a PDOM fails due to wrong index-in-sync check Fixes an incorrect workaround from bug 229989 comment 6: It is perfectly valid for one location to map to multiple index files. Also adds better error reporting for out-of-sync files, and adds API to allow exporting a PDOM without any index-in-sync check. Change-Id: I63a7d36a2de465f9994cc9b9698688e3ad6850ee --- .../cdt/internal/core/pdom/PDOMManager.java | 87 +++++++++----- .../core/pdom/export/GeneratePDOM.java | 110 +++++++++++------- 2 files changed, 124 insertions(+), 73 deletions(-) diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java index 0728d56c8ba..b111d0e90c3 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/PDOMManager.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2005, 2012 QNX Software Systems and others. + * Copyright (c) 2005, 2013 QNX Software Systems 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 @@ -13,6 +13,7 @@ * Tim Kelly (Nokia) * Anna Dushistova (MontaVista) * Marc-Andre Laperle + * Martin Oberhuber (Wind River) - [397652] fix up-to-date check for PDOM *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom; @@ -23,6 +24,7 @@ import java.io.InputStream; import java.io.OutputStream; import java.util.ArrayDeque; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.HashSet; import java.util.Iterator; @@ -93,6 +95,7 @@ import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.ISafeRunnable; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.ListenerList; +import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.OperationCanceledException; import org.eclipse.core.runtime.Path; @@ -109,6 +112,7 @@ import org.eclipse.core.runtime.preferences.IPreferencesService; import org.eclipse.core.runtime.preferences.InstanceScope; import com.ibm.icu.text.MessageFormat; +import com.ibm.icu.text.SimpleDateFormat; /** * Manages PDOM updates and events associated with them. Provides methods for index access. @@ -1529,11 +1533,25 @@ public class PDOMManager implements IWritableIndexManager, IListener { * @throws CoreException */ public boolean isProjectContentSynced(ICProject cproject) throws CoreException { + IStatus s = getProjectContentSyncState(cproject); + return s == null; + } + + /** + * Checks whether the index is in sync with the file system. + * @param cproject the project to check + * @return null when the content in the project fragment of the specified project's index + * is complete (contains all sources) and up to date; or an @link{IStatus} indicating the first + * occurrence of an index file found not up-to-date, along with its include trail. + * @throws CoreException in case of a file access or other internal error + */ + public IStatus getProjectContentSyncState(ICProject cproject) throws CoreException { if (!"true".equals(IndexerPreferences.get(cproject.getProject(), IndexerPreferences.KEY_INDEX_ALL_FILES, null))) //$NON-NLS-1$ - return true; // no check performed in this case + return null; // No check is performed in this case Set sources= new HashSet(); cproject.accept(new TranslationUnitCollector(sources, null, new NullProgressMonitor())); + IStatus syncStatus = null; try { IIndex index= getIndex(cproject); @@ -1543,8 +1561,9 @@ public class PDOMManager implements IWritableIndexManager, IListener { IResource resource= tu.getResource(); if (resource instanceof IFile && isSubjectToIndexing(tu.getLanguage())) { IIndexFileLocation location= IndexLocationFactory.getWorkspaceIFL((IFile) resource); - if (!areSynchronized(new HashSet(), index, resource, location)) { - return false; + syncStatus = areSynchronized(new HashSet(), index, resource, location); + if (syncStatus != null) { + return syncStatus; } } } @@ -1555,11 +1574,11 @@ public class PDOMManager implements IWritableIndexManager, IListener { CCorePlugin.log(e); } - return true; + return null; } private boolean isSubjectToIndexing(ILanguage language) { - final int linkageID=language.getLinkageID(); + final int linkageID = language.getLinkageID(); for (int id : IDS_FOR_LINKAGES_TO_INDEX) { if (linkageID == id) return true; @@ -1568,45 +1587,57 @@ public class PDOMManager implements IWritableIndexManager, IListener { } /** - * Recursively checks that the specified file, and its include are up-to-date. + * Recursively checks that the specified file, and its includes are up-to-date. * @param trail a set of previously checked include file locations * @param index the index to check against * @param resource the resource to check from the workspace * @param location the location to check from the index - * @return whether the specified file, and its includes are up-to-date. + * @return null when whether the specified file, and its includes are up-to-date, + * or a MultiStatus indicating the file found to be not in sync along with it include trail. * @throws CoreException */ - private static boolean areSynchronized(Set trail, IIndex index, IResource resource, IIndexFileLocation location) throws CoreException { + private static MultiStatus areSynchronized(Set trail, IIndex index, + IResource resource, IIndexFileLocation location) throws CoreException { if (!trail.contains(location)) { trail.add(location); - IIndexFile[] file= index.getFiles(location); + IIndexFile[] files= index.getFiles(location); - // pre-includes may be listed twice (191989) - if (file.length < 1 || file.length > 2) - return false; + if (files.length <= 0) + return new MultiStatus(CCorePlugin.PLUGIN_ID, IStatus.OK, "No index file found for: " + location, null); //$NON-NLS-1$ - if (resource.getLocalTimeStamp() != file[0].getTimestamp()) - return false; + for (IIndexFile file : files) { + long diff = resource.getLocalTimeStamp() - file.getTimestamp(); + if (diff != 0) { + return new MultiStatus(CCorePlugin.PLUGIN_ID, IStatus.OK, + "Index timestamp for '" //$NON-NLS-1$ + + file.getLocation().getFullPath() + + "' is " + diff + " msec older than " //$NON-NLS-1$ //$NON-NLS-2$ + + location + + "(" + SimpleDateFormat.getDateTimeInstance().format(new Date(resource.getLocalTimeStamp())) //$NON-NLS-1$ + + ")", null); //$NON-NLS-1$ + } - // if it is up-to-date, the includes have not changed and may - // be read from the index. - IIndexInclude[] includes= index.findIncludes(file[0]); - for (IIndexInclude inc : includes) { - IIndexFileLocation newLocation= inc.getIncludesLocation(); - if (newLocation != null) { - String path= newLocation.getFullPath(); - if (path != null) { - IResource newResource= ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path)); - if (!areSynchronized(trail, index, newResource, newLocation)) { - return false; + // If it is up-to-date, the includes have not changed and may be read from the index. + IIndexInclude[] includes= index.findIncludes(file); + for (IIndexInclude inc : includes) { + IIndexFileLocation newLocation= inc.getIncludesLocation(); + if (newLocation != null) { + String path= newLocation.getFullPath(); + if (path != null) { + IResource newResource= ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path)); + MultiStatus m = areSynchronized(trail, index, newResource, newLocation); + if (m != null) { + m.add(new Status(IStatus.INFO, CCorePlugin.PLUGIN_ID, + "Included by " + file.getLocation().getFullPath())); //$NON-NLS-1$ + return m; + } } } } } } - - return true; + return null; } public boolean isFileIndexedUnconditionally(IIndexFileLocation ifl) { diff --git a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/export/GeneratePDOM.java b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/export/GeneratePDOM.java index fbd6182c35b..6312b599510 100644 --- a/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/export/GeneratePDOM.java +++ b/core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/pdom/export/GeneratePDOM.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2007, 2009 Symbian Software Systems and others. + * Copyright (c) 2007, 2013 Symbian Software Systems 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 @@ -8,11 +8,11 @@ * Contributors: * Andrew Ferguson (Symbian) - Initial implementation * Markus Schorn (Wind River Systems) + * Martin Oberhuber (Wind River) - [397652] fix up-to-date check for PDOM *******************************************************************************/ package org.eclipse.cdt.internal.core.pdom.export; import java.io.File; -import com.ibm.icu.text.MessageFormat; import java.util.Map; import org.eclipse.cdt.core.CCorePlugin; @@ -26,9 +26,12 @@ import org.eclipse.cdt.internal.core.pdom.WritablePDOM; import org.eclipse.cdt.internal.core.pdom.indexer.IndexerPreferences; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.MultiStatus; import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.core.runtime.Status; +import com.ibm.icu.text.MessageFormat; + /** * An ISafeRunnable which *