use of org.eclipse.linuxtools.internal.rdt.proxy.RDTCommandLauncher in project linuxtools by eclipse.
the class CommandLauncherProxyTest method testRemoteCommandLauncher.
@Test
public void testRemoteCommandLauncher() {
IRemoteCommandLauncher cl = null;
Process p = null;
IPath commandPath, changeToDirectory;
String[] args, env;
try {
cl = proxyManager.getLauncher(syncProject.getProject());
assertTrue("Should have returned a remote launcher", cl instanceof RDTCommandLauncher);
} catch (CoreException e) {
fail("Should have returned a launcher: " + e.getCause());
}
commandPath = new Path("uptime");
args = new String[] { "-s" };
env = new String[] { "PATH=/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin" };
changeToDirectory = new Path("/tmp");
try {
p = cl.execute(commandPath, args, env, changeToDirectory, new NullProgressMonitor());
assertNotNull(p);
p.waitFor();
assertEquals("Process exited with failure", 0, p.exitValue());
} catch (Exception e) {
fail("Unable to execute " + commandPath + " on remote machine: " + e.getMessage());
}
InputStream actualIS = p.getInputStream();
int v = -1;
try {
v = actualIS.read();
} catch (IOException e) {
fail("Failed to read output of command executed remotely: " + e.getMessage());
}
// Ensure something can be read
assertTrue(v != -1);
/*
* Test it opens connection before execute.
*/
IRemoteConnection conn = getConnection();
conn.close();
assertFalse(conn.isOpen());
try {
p = cl.execute(new Path("ls"), new String[] {}, new String[] {}, null, new NullProgressMonitor());
assertNotNull(p);
p.waitFor();
assertEquals("Process exited with failure", 0, p.exitValue());
} catch (CoreException | InterruptedException e) {
fail("Failed to open connection to execute a command: " + e.getMessage());
}
}
use of org.eclipse.linuxtools.internal.rdt.proxy.RDTCommandLauncher in project linuxtools by eclipse.
the class RemoteProxyManagerTest method testGetLauncher.
@Test
public void testGetLauncher() {
IRemoteCommandLauncher cl;
try {
/*
* Test launcher got for local URIs and project
*/
cl = proxyManager.getLauncher(localProject.getLocationURI());
assertTrue("Should have returned a local launcher", cl instanceof LocalLauncher);
cl = proxyManager.getLauncher(localProject.getProject());
assertTrue("Should have returned a local launcher", cl instanceof LocalLauncher);
/*
* Test launcher got for remote project and URI
*/
cl = proxyManager.getLauncher(URI.create("ssh://" + CONNECTION_NAME + "/path/to/file"));
assertTrue("Should have returned a remote file proxy", cl instanceof RDTCommandLauncher);
cl = proxyManager.getLauncher(syncProject.getProject());
assertTrue("Should have returned a remote launcher", cl instanceof RDTCommandLauncher);
/*
* Test launcher got for jsch scheme
*/
cl = proxyManager.getLauncher(URI.create("jsch://" + USERNAME + "@" + HOST + ":22/path/to/file"));
assertTrue("Should have returned a remote file proxy", cl instanceof SSHCommandLauncher);
} catch (CoreException e) {
fail("Should have returned a launcher: " + e.getCause());
}
/*
* Test the proxy for unsupported URIs
*/
try {
// As of org.eclipse.remote 2.0, remotetools scheme is no longer
// support
cl = proxyManager.getLauncher(URI.create("remotetools://MyConnection/path/to/file"));
fail("remotetools scheme should not be recognized");
} catch (CoreException e) {
assertTrue(e.getMessage(), true);
}
}
Aggregations