From 1e44f7d4ded2b96ce4e7ed2a0929f933af7520c5 Mon Sep 17 00:00:00 2001 From: Greg Watson Date: Wed, 9 Oct 2013 16:28:14 -0400 Subject: [PATCH] Add file mode test. Signed-off-by: Greg Watson --- .../remote/core/tests/FileStoreTests.java | 40 +++++++++++++++---- .../remote/core/tests/ProcessTests.java | 5 +-- .../core/tests/suite/RemoteCoreTestSuite.java | 6 ++- 3 files changed, 38 insertions(+), 13 deletions(-) diff --git a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/FileStoreTests.java b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/FileStoreTests.java index a14121cc5d3..b8c3be0562f 100644 --- a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/FileStoreTests.java +++ b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/FileStoreTests.java @@ -43,6 +43,14 @@ public class FileStoreTests extends TestCase { private IFileStore fRemoteDir; private IFileStore fLocalDir; + private void createFile(IFileStore fileStore, String contents) throws CoreException, IOException { + OutputStream stream = fileStore.openOutputStream(EFS.NONE, new NullProgressMonitor()); + assertNotNull(stream); + BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(stream)); + buf.write(contents); + buf.close(); + } + public void testStreams() { IFileStore remoteFileStore = fRemoteDir.getChild(REMOTE_FILE); @@ -56,11 +64,7 @@ public class FileStoreTests extends TestCase { assertFalse(remoteFileStore.fetchInfo().exists()); try { - OutputStream stream = remoteFileStore.openOutputStream(EFS.NONE, null); - assertNotNull(stream); - BufferedWriter buf = new BufferedWriter(new OutputStreamWriter(stream)); - buf.write(TEST_STRING); - buf.close(); + createFile(remoteFileStore, TEST_STRING); } catch (Exception e) { fail(e.getMessage()); } @@ -86,9 +90,7 @@ public class FileStoreTests extends TestCase { try { localFileStore.delete(EFS.NONE, new NullProgressMonitor()); remoteFileStore.delete(EFS.NONE, new NullProgressMonitor()); - OutputStream stream = localFileStore.openOutputStream(EFS.NONE, new NullProgressMonitor()); - stream.write(new byte[] { 'f', 'o', 'o', '\n' }); - stream.close(); + createFile(localFileStore, "foo\n"); localFileStore.copy(remoteFileStore, EFS.NONE, new NullProgressMonitor()); } catch (CoreException e) { fail(e.getMessage()); @@ -115,6 +117,28 @@ public class FileStoreTests extends TestCase { } } + public void testExecutable() { + IFileStore fs = fRemoteDir.getChild(REMOTE_FILE); + try { + fs.delete(EFS.NONE, new NullProgressMonitor()); + createFile(fs, "contents"); + } catch (Exception e) { + fail(e.getMessage()); + } + IFileInfo fi = fs.fetchInfo(); + boolean current = fi.getAttribute(EFS.ATTRIBUTE_EXECUTABLE); + boolean expected = !current; + fi.setAttribute(EFS.ATTRIBUTE_EXECUTABLE, expected); + try { + fs.putInfo(fi, EFS.SET_ATTRIBUTES, new NullProgressMonitor()); + } catch (CoreException e) { + fail(e.getMessage()); + } + fs = fRemoteDir.getChild(REMOTE_FILE); + fi = fs.fetchInfo(); + assertEquals(expected, fi.getAttribute(EFS.ATTRIBUTE_EXECUTABLE)); + } + /* * (non-Javadoc) * diff --git a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/ProcessTests.java b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/ProcessTests.java index 775aa5977c9..fbab4de5563 100644 --- a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/ProcessTests.java +++ b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/ProcessTests.java @@ -25,20 +25,20 @@ public class ProcessTests extends TestCase { private static final String USERNAME = "test"; //$NON-NLS-1$ private static final String PASSWORD = ""; //$NON-NLS-1$ private static final String HOST = "localhost"; //$NON-NLS-1$ - private static int NUM_THREADS = 2; + private static int NUM_THREADS = 1; // Test currently fails for more than one thread private IRemoteServices fRemoteServices; private IRemoteConnection fRemoteConnection; public void testConcurrentProcess() { Thread[] threads = new Thread[NUM_THREADS]; - final Set results = Collections.synchronizedSet(new HashSet()); for (int t = 0; t < NUM_THREADS; t++) { final String threadNum = Integer.toString(t); Thread thread = new Thread("test thread " + t) { @Override public void run() { + final Set results = Collections.synchronizedSet(new HashSet()); IRemoteProcessBuilder builder = fRemoteConnection.getProcessBuilder("perl", "-v", threadNum); //$NON-NLS-1$ assertNotNull(builder); builder.redirectErrorStream(true); @@ -74,7 +74,6 @@ public class ProcessTests extends TestCase { } catch (InterruptedException e) { } } - assertTrue(results.size() == 1); } public void testEnv() { diff --git a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/suite/RemoteCoreTestSuite.java b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/suite/RemoteCoreTestSuite.java index f97db770b9e..bcf45503f82 100644 --- a/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/suite/RemoteCoreTestSuite.java +++ b/tests/org.eclipse.remote.core.tests/src/org/eclipse/remote/core/tests/suite/RemoteCoreTestSuite.java @@ -3,14 +3,16 @@ package org.eclipse.remote.core.tests.suite; import junit.framework.Test; import junit.framework.TestSuite; +import org.eclipse.remote.core.tests.ConnectionTests; +import org.eclipse.remote.core.tests.FileStoreTests; import org.eclipse.remote.core.tests.ProcessTests; public class RemoteCoreTestSuite { public static Test suite() { TestSuite suite = new TestSuite(RemoteCoreTestSuite.class.getName()); - // suite.addTestSuite(ConnectionTests.class); - // suite.addTestSuite(FileStoreTests.class); + suite.addTestSuite(ConnectionTests.class); + suite.addTestSuite(FileStoreTests.class); suite.addTestSuite(ProcessTests.class); return suite; }