diff --git a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceArchiveBaseTest.java b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceArchiveBaseTest.java index 61577561c04..c95448e97ee 100644 --- a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceArchiveBaseTest.java +++ b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceArchiveBaseTest.java @@ -7,6 +7,7 @@ * * Contributors: * Johnson Ma (Wind River) - [195402] Extracted from FileServiceArchiveTest + * Xuan Chen (IBM) [333874] - Added more logging code to track junit failure *******************************************************************************/ package org.eclipse.rse.tests.subsystems.files; @@ -17,6 +18,7 @@ import org.eclipse.core.filesystem.IFileStore; import org.eclipse.core.resources.IWorkspace; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.NullProgressMonitor; import org.eclipse.rse.core.model.ISystemResourceSet; import org.eclipse.rse.core.model.SystemRemoteResourceSet; import org.eclipse.rse.core.model.SystemWorkspaceResourceSet; @@ -920,8 +922,10 @@ public abstract class FileServiceArchiveBaseTest extends FileServiceBaseTest { //now, verify the content of the local file IFileStore localFile = temp.getChild(fileContentToVerifyName1); + File actualFile = localFile.toLocalFile(EFS.NONE, new NullProgressMonitor()); + assertTrue("The file does not exist", actualFile.exists()); //Check the content of the download file: - boolean sameContent = compareContent(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null)); + boolean sameContent = compareContent1(getContents(fileContentString1), localFile.openInputStream(EFS.NONE, null)); assertTrue(sameContent); diff --git a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceBaseTest.java b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceBaseTest.java index c4ca7df24d6..bc00afbc800 100644 --- a/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceBaseTest.java +++ b/rse/tests/org.eclipse.rse.tests/src/org/eclipse/rse/tests/subsystems/files/FileServiceBaseTest.java @@ -13,6 +13,7 @@ * - * Martin Oberhuber (Wind River) - [195402] Add constructor with test name * David Dykstal (IBM) [230821] fix IRemoteFileSubSystem API to be consistent with IFileService + * Xuan Chen (IBM) [333874] - Added more logging code to track junit failure *******************************************************************************/ package org.eclipse.rse.tests.subsystems.files; @@ -338,6 +339,44 @@ public class FileServiceBaseTest extends RSEBaseConnectionTestCase { } } + /** + * + * + * Returns a boolean value indicating whether or not the contents + * of the given streams are considered to be equal. Closes both input streams. + * @param a input stream a + * @param b input stream b + * @return if both stream are consider to be equal + */ + public boolean compareContent1(InputStream a, InputStream b) { + int c, d; + if (a == null && b == null) + return true; + try { + if (a == null || b == null) + { + fail("only one of the input stream is null"); + return false; + } + while ((c = a.read()) == (d = b.read()) && (c != -1 && d != -1)) { + //body not needed + } + if (c == -1 && d == -1) + { + return true; + } + String msg = "difference: c is " + c + " but d is " + d; + fail(msg); + return false; + } catch (IOException e) { + fail("IOException: " + e.getMessage()); + return false; + } finally { + assertClose(a); + assertClose(b); + } + } + /** * Copy the data from the input stream to the output stream. * Close both streams when finished.