blob: 3c3cf0be8b1b48a96e85c2671aaa65d75d437921 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2010, 2015 Red Hat Inc..
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* Red Hat Incorporated - initial API and implementation
*******************************************************************************/
package org.eclipse.cdt.autotools.ui.tests;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.io.File;
import java.util.regex.Pattern;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
import org.eclipse.swtbot.eclipse.finder.widgets.SWTBotView;
import org.eclipse.swtbot.swt.finder.junit.SWTBotJunit4ClassRunner;
import org.eclipse.swtbot.swt.finder.waits.Conditions;
import org.eclipse.swtbot.swt.finder.widgets.SWTBotShell;
import org.junit.FixMethodOrder;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.MethodSorters;
@RunWith(SWTBotJunit4ClassRunner.class)
@FixMethodOrder(MethodSorters.NAME_ASCENDING)
public class TestMakeTargets extends AbstractTest {
@Test
// Verify we can build and run the info MakeTarget tool
public void t1canBuildAndAccessInfoTarget() throws Exception {
clickProjectContextMenu("Build Project");
// Wait until the project is built
SWTBotShell shell = bot.shell("Build Project");
bot.waitUntil(Conditions.shellCloses(shell), 120000);
IWorkspace workspace = ResourcesPlugin.getWorkspace();
assertNotNull(workspace);
IWorkspaceRoot root = workspace.getRoot();
assertNotNull(root);
IProject project = root.getProject(projectName);
assertNotNull(project);
IPath path = project.getLocation();
path = path.append("config.status");
File f = new File(path.toOSString());
assertTrue(f.exists());
f = new File(path.toOSString());
assertTrue(f.exists());
projectExplorer.bot().tree().getTreeItem(projectName).select();
clickContextMenu(projectExplorer.bot().tree().select(projectName), "Build Targets", "Build...");
shell = bot.shell("Build Targets");
shell.activate();
bot.table().getTableItem("info").select();
bot.button("Build").click();
SWTBotView consoleView = viewConsole("CDT Build Console");
Pattern p = Pattern.compile(".*make info.*", Pattern.DOTALL);
bot.waitUntil(consoleTextMatches(consoleView, p));
// Make Targets using right-click on project.
clickProjectContextMenu("Build Targets", "Build...");
shell = bot.shell("Build Targets");
shell.activate();
bot.table().getTableItem("check").select();
bot.button("Build").click();
consoleView = bot.viewByPartName("Console");
consoleView.setFocus();
p = Pattern.compile(".*make check.*Making check in src.*", Pattern.DOTALL);
bot.waitUntil(consoleTextMatches(consoleView, p));
}
}