-
Notifications
You must be signed in to change notification settings - Fork 133
fix: updated Clangd test case based on latest changes #1338
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -17,7 +17,6 @@ | |||||||||||||||||||||||||
| import org.eclipse.swtbot.eclipse.finder.SWTWorkbenchBot; | ||||||||||||||||||||||||||
| import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotEditor; | ||||||||||||||||||||||||||
| import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView; | ||||||||||||||||||||||||||
| import org.eclipse.swtbot.swt.finder.exceptions.WidgetNotFoundException; | ||||||||||||||||||||||||||
| import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner; | ||||||||||||||||||||||||||
| import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell; | ||||||||||||||||||||||||||
| import org.junit.After; | ||||||||||||||||||||||||||
|
|
@@ -32,7 +31,6 @@ | |||||||||||||||||||||||||
| import com.espressif.idf.ui.test.common.utility.TestWidgetWaitUtility; | ||||||||||||||||||||||||||
| import com.espressif.idf.ui.test.operations.EnvSetupOperations; | ||||||||||||||||||||||||||
| import com.espressif.idf.ui.test.operations.ProjectTestOperations; | ||||||||||||||||||||||||||
| import com.espressif.idf.ui.test.operations.selectors.LaunchBarTargetSelector; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| /** | ||||||||||||||||||||||||||
| * Test class to test Clangd / Clang-Format files functionality | ||||||||||||||||||||||||||
|
|
@@ -125,15 +123,11 @@ public void givenNewProjectsAreCreatedAndBuiltWhenPreferencesOpenedThenClangdArg | |||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| @Test | ||||||||||||||||||||||||||
| public void givenNewProjectIsCreatedWhenBuiltThenClangdDriversUpdateOnTargetWhenChangeTargetAndBuiltThenClangdDriversUpdateOnTargetChange() | ||||||||||||||||||||||||||
| throws Exception | ||||||||||||||||||||||||||
| public void givenNewProjectIsCreatedThenClangdAndQueryDriversPathsAreUpdated() throws Exception | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| Fixture.givenNewProjectIsCreated("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| Fixture.whenProjectIsBuiltUsingContextMenu("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| Fixture.thenClangdDriversUpdateOnSelectedTarget(); | ||||||||||||||||||||||||||
| Fixture.whenChangeTarget(); | ||||||||||||||||||||||||||
| Fixture.whenProjectIsBuiltUsingContextMenu("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| Fixture.thenClangdDriversUpdateOnSelectedTarget(); | ||||||||||||||||||||||||||
| Fixture.thenClangdPathUpdateOnSelectedTarget(); | ||||||||||||||||||||||||||
| Fixture.thenQueryDriversUpdateOnSelectedTarget(); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static class Fixture | ||||||||||||||||||||||||||
|
|
@@ -142,22 +136,13 @@ private static class Fixture | |||||||||||||||||||||||||
| private static String category; | ||||||||||||||||||||||||||
| private static String subCategory; | ||||||||||||||||||||||||||
| private static String projectName; | ||||||||||||||||||||||||||
| private static LaunchBarTargetSelector launchBarTargetSelector; | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void loadEnv() throws Exception | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| bot = WorkBenchSWTBot.getBot(); | ||||||||||||||||||||||||||
| EnvSetupOperations.setupEspressifEnv(bot); | ||||||||||||||||||||||||||
| bot.sleep(1000); | ||||||||||||||||||||||||||
| ProjectTestOperations.deleteAllProjects(bot); | ||||||||||||||||||||||||||
| try | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| launchBarTargetSelector = new LaunchBarTargetSelector(bot); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| catch (WidgetNotFoundException e) | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| launchBarTargetSelector = new LaunchBarTargetSelector(bot, false); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void givenNewEspressifIDFProjectIsSelected(String category, String subCategory) | ||||||||||||||||||||||||||
|
|
@@ -197,17 +182,16 @@ private static void whenNewProjectIsSelected(String projectName) throws Exceptio | |||||||||||||||||||||||||
| bot.sleep(1000); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenClangdDriversUpdateOnSelectedTarget() throws Exception | ||||||||||||||||||||||||||
| private static void thenClangdPathUpdateOnSelectedTarget() throws Exception | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| whenOpenClangdPreferences(); | ||||||||||||||||||||||||||
| thenCompareActualClangdDriversWithExpected("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| closePreferencesDialog(); | ||||||||||||||||||||||||||
| thenCompareActualClangdPathWithExpected("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void whenChangeTarget() throws Exception | ||||||||||||||||||||||||||
| private static void thenQueryDriversUpdateOnSelectedTarget() throws Exception | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| Fixture.thenLaunchTargetIsSelectedFromLaunchTargets("esp32s2"); | ||||||||||||||||||||||||||
| Fixture.closeTargetDialog(); | ||||||||||||||||||||||||||
| thenCompareActualQueryDriversWithExpected("NewProjectClangFilesTest6"); | ||||||||||||||||||||||||||
| closePreferencesDialog(); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
Comment on lines
+191
to
195
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major Use the Line 193 hardcodes Apply this diff to use the field: - thenCompareActualQueryDriversWithExpected("NewProjectClangFilesTest6");
+ thenCompareActualQueryDriversWithExpected(projectName);📝 Committable suggestion
Suggested change
|
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenClangdFileIsPresent() throws IOException | ||||||||||||||||||||||||||
|
|
@@ -282,11 +266,6 @@ private static void thenClangdFileContentCheckedAgain(String projectName) throws | |||||||||||||||||||||||||
| "CompileFlags:\n" + " CompilationDatabase: " + buildPath + "\n" + " Remove: [-m*, -f*]", bot)); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| public static void thenLaunchTargetIsSelectedFromLaunchTargets(String launchTargetName) | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| launchBarTargetSelector.select(launchTargetName); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenClangFormatContentChecked() throws Exception | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| bot.cTabItem(".clang-format").activate(); | ||||||||||||||||||||||||||
|
|
@@ -410,13 +389,6 @@ private static String getExpectedBuildFolderPATHforClangdAdditionalArgument(Stri | |||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static String getXtensaToolchainPathBasedOnTheTargetConfigured() throws IOException | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| String toolchain = IDFUtil.getToolchainExePathForActiveTarget(); | ||||||||||||||||||||||||||
| Path toolchainPath = Paths.get(toolchain); | ||||||||||||||||||||||||||
| return toolchainPath.toAbsolutePath().toString(); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenCompareActualClangdArgumentWithExpected(String projectName) throws IOException | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| SWTBotShell prefrencesShell = bot.shell("Preferences"); | ||||||||||||||||||||||||||
|
|
@@ -425,12 +397,20 @@ private static void thenCompareActualClangdArgumentWithExpected(String projectNa | |||||||||||||||||||||||||
| assertTrue(expectedClangdPath.equals(actualClangdPath)); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenCompareActualClangdDriversWithExpected(String projectName) throws IOException | ||||||||||||||||||||||||||
| private static void thenCompareActualQueryDriversWithExpected(String projectName) throws IOException | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| SWTBotShell prefrencesShell = bot.shell("Preferences"); | ||||||||||||||||||||||||||
| String actualQueryDriversPath = prefrencesShell.bot().textWithLabel("Drivers").getText(); | ||||||||||||||||||||||||||
| String expectedQueryDriversPath = "**"; | ||||||||||||||||||||||||||
| assertEquals(expectedQueryDriversPath, actualQueryDriversPath); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
Comment on lines
+400
to
+406
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🛠️ Refactor suggestion | 🟠 Major Remove unused parameter and clarify the expected value. The method has two issues:
Apply this diff to remove the unused parameter: - private static void thenCompareActualQueryDriversWithExpected(String projectName) throws IOException
+ private static void thenCompareActualQueryDriversWithExpected() throws IOException
{
SWTBotShell prefrencesShell = bot.shell("Preferences");
String actualQueryDriversPath = prefrencesShell.bot().textWithLabel("Drivers").getText();
- String expectedQueryDriversPath = "**";
+ // "**" matches all drivers in the query driver path
+ String expectedQueryDriversPath = "**";
assertEquals(expectedQueryDriversPath, actualQueryDriversPath);
}And update the call site at line 193: - thenCompareActualQueryDriversWithExpected(projectName);
+ thenCompareActualQueryDriversWithExpected();
🤖 Prompt for AI Agents |
||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void thenCompareActualClangdPathWithExpected(String projectName) throws IOException | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| SWTBotShell prefrencesShell = bot.shell("Preferences"); | ||||||||||||||||||||||||||
| String actualDriversPath = prefrencesShell.bot().textWithLabel("Drivers").getText(); | ||||||||||||||||||||||||||
| String expectedDriversPath = "**"; | ||||||||||||||||||||||||||
| assertEquals(expectedDriversPath, actualDriversPath); | ||||||||||||||||||||||||||
| String actualClangdPath = prefrencesShell.bot().textWithLabel("Path").getText(); | ||||||||||||||||||||||||||
| String expectedClangdPath = "bin"; | ||||||||||||||||||||||||||
| assertTrue(actualClangdPath.contains(expectedClangdPath)); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void whenProjectIsBuiltUsingContextMenu(String projectName) throws IOException | ||||||||||||||||||||||||||
|
|
@@ -454,18 +434,10 @@ private static void whenOpenClangdPreferences() throws Exception | |||||||||||||||||||||||||
| private static void closePreferencesDialog() | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| SWTBotShell preferencesShell = bot.shell("Preferences"); | ||||||||||||||||||||||||||
| preferencesShell.bot().button("Cancel").click(); // Or "Apply and Close" | ||||||||||||||||||||||||||
| preferencesShell.bot().button("Cancel").click(); | ||||||||||||||||||||||||||
| TestWidgetWaitUtility.waitWhileDialogIsVisible(bot, "Preferences", 10000); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void closeTargetDialog() | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| TestWidgetWaitUtility.waitForDialogToAppear(bot, "IDF Launch Target Changed", 10000); | ||||||||||||||||||||||||||
| SWTBotShell preferencesShell = bot.shell("IDF Launch Target Changed"); | ||||||||||||||||||||||||||
| preferencesShell.bot().button("Yes").click(); // Or "Apply and Close" | ||||||||||||||||||||||||||
| TestWidgetWaitUtility.waitWhileDialogIsVisible(bot, "IDF Launch Target Changed", 10000); | ||||||||||||||||||||||||||
| } | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
| private static void cleanTestEnv() | ||||||||||||||||||||||||||
| { | ||||||||||||||||||||||||||
| TestWidgetWaitUtility.waitForOperationsInProgressToFinishAsync(bot); | ||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion | 🟠 Major
Use the
projectNamefield instead of hardcoding the project name.Line 188 hardcodes
"NewProjectClangFilesTest6"instead of using theprojectNamefield available in theFixtureclass. This makes the code brittle and violates the DRY principle.Apply this diff to use the field:
📝 Committable suggestion
🤖 Prompt for AI Agents