IGNITE-8346 Add FileDownloaderTest to PDS 2 suit. Uncomment test body + small refactoring. - Fixes #3888.
Signed-off-by: Alexey Goncharuk <[email protected]> Project: http://git-wip-us.apache.org/repos/asf/ignite/repo Commit: http://git-wip-us.apache.org/repos/asf/ignite/commit/086e630d Tree: http://git-wip-us.apache.org/repos/asf/ignite/tree/086e630d Diff: http://git-wip-us.apache.org/repos/asf/ignite/diff/086e630d Branch: refs/heads/ignite-6083 Commit: 086e630d600bfce04298a3f4d528009e1d5c2cac Parents: c57488a Author: Dmitriy Govorukhin <[email protected]> Authored: Mon Apr 23 11:26:02 2018 +0300 Committer: Alexey Goncharuk <[email protected]> Committed: Mon Apr 23 11:26:02 2018 +0300 ---------------------------------------------------------------------- .../persistence/file/FileDownloaderTest.java | 59 +++++++++++++++----- .../testsuites/IgniteCacheTestSuite6.java | 1 + .../ignite/testsuites/IgnitePdsTestSuite2.java | 3 + 3 files changed, 50 insertions(+), 13 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ignite/blob/086e630d/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/file/FileDownloaderTest.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/file/FileDownloaderTest.java b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/file/FileDownloaderTest.java index 6d6e0c8..6f01d93 100644 --- a/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/file/FileDownloaderTest.java +++ b/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/persistence/file/FileDownloaderTest.java @@ -18,27 +18,31 @@ package org.apache.ignite.internal.processors.cache.persistence.file; import java.io.File; +import java.io.IOException; import java.io.PrintWriter; import java.net.InetSocketAddress; +import java.nio.channels.SocketChannel; import java.nio.file.Files; import java.nio.file.Path; -import java.nio.file.StandardOpenOption; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import org.apache.ignite.IgniteCheckedException; +import java.util.concurrent.CountDownLatch; import org.apache.ignite.internal.util.future.GridFutureAdapter; -import org.apache.ignite.testframework.junits.GridAbstractTest; +import org.apache.ignite.internal.util.typedef.internal.U; import org.apache.ignite.testframework.junits.common.GridCommonAbstractTest; + +import static org.apache.ignite.testframework.GridTestUtils.runAsync; import static org.junit.Assert.*; /** * FileDownloader test */ public class FileDownloaderTest extends GridCommonAbstractTest { - + /** */ private static final Path DOWNLOADER_PATH = new File("download").toPath(); + + /** */ private static final Path UPLOADER_PATH = new File("upload").toPath(); + /** {@inheritDoc} */ @Override protected void beforeTest() throws Exception { super.beforeTest(); @@ -49,6 +53,7 @@ public class FileDownloaderTest extends GridCommonAbstractTest { UPLOADER_PATH.toFile().delete(); } + /** {@inheritDoc} */ @Override protected void afterTest() throws Exception { super.afterTest(); @@ -59,9 +64,12 @@ public class FileDownloaderTest extends GridCommonAbstractTest { UPLOADER_PATH.toFile().delete(); } + /*** + * + * @throws Exception If failed. + */ public void test() throws Exception { - //todo uncomment and fix - /* assertTrue(UPLOADER_PATH.toFile().createNewFile()); + assertTrue(UPLOADER_PATH.toFile().createNewFile()); assertTrue(!DOWNLOADER_PATH.toFile().exists()); PrintWriter writer = new PrintWriter(UPLOADER_PATH.toFile()); @@ -71,20 +79,45 @@ public class FileDownloaderTest extends GridCommonAbstractTest { writer.close(); - FileDownloader downloader = new FileDownloader(DOWNLOADER_PATH, Executors.newSingleThreadExecutor()); + FileDownloader downloader = new FileDownloader(log, DOWNLOADER_PATH); InetSocketAddress address = downloader.start(); - FileUploader uploader = new FileUploader(UPLOADER_PATH, address, Executors.newSingleThreadExecutor()); + GridFutureAdapter<Long> finishFut = new GridFutureAdapter<>(); + + FileUploader uploader = new FileUploader(UPLOADER_PATH); + + SocketChannel sc = null; + + try { + sc = SocketChannel.open(address); + } + catch (IOException e) { + U.warn(log, "Fail connect to " + address, e); + } + + CountDownLatch downLatch = new CountDownLatch(1); + + runAsync(() -> { + downloader.download(finishFut); + + downLatch.countDown(); + }); + + SocketChannel finalSc = sc; + + runAsync(() -> uploader.upload(finalSc, finishFut)); + + finishFut.get(); - long size = uploader.upload().get(); + downloader.download(finishFut.get(), null); - downloader.download(size).get(); + downLatch.await(); assertTrue(DOWNLOADER_PATH.toFile().exists()); assertEquals(UPLOADER_PATH.toFile().length(), DOWNLOADER_PATH.toFile().length()); - assertArrayEquals(Files.readAllBytes(UPLOADER_PATH), Files.readAllBytes(DOWNLOADER_PATH));*/ + assertArrayEquals(Files.readAllBytes(UPLOADER_PATH), Files.readAllBytes(DOWNLOADER_PATH)); } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/ignite/blob/086e630d/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java index 415479d..317a1c5 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgniteCacheTestSuite6.java @@ -41,6 +41,7 @@ import org.apache.ignite.internal.processors.cache.distributed.IgniteOptimisticT import org.apache.ignite.internal.processors.cache.distributed.IgniteOptimisticTxSuspendResumeTest; import org.apache.ignite.internal.processors.cache.distributed.IgnitePessimisticTxSuspendResumeTest; import org.apache.ignite.internal.processors.cache.persistence.IgnitePdsCacheAssignmentNodeRestartsTest; +import org.apache.ignite.internal.processors.cache.persistence.file.FileDownloaderTest; import org.apache.ignite.internal.processors.cache.transactions.TxOptimisticOnPartitionExchangeTest; import org.apache.ignite.internal.processors.cache.transactions.TxRollbackOnTimeoutNearCacheTest; import org.apache.ignite.internal.processors.cache.transactions.TxRollbackOnTimeoutNoDeadlockDetectionTest; http://git-wip-us.apache.org/repos/asf/ignite/blob/086e630d/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java ---------------------------------------------------------------------- diff --git a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java index 6d953cd..be3d005 100644 --- a/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java +++ b/modules/core/src/test/java/org/apache/ignite/testsuites/IgnitePdsTestSuite2.java @@ -46,6 +46,7 @@ import org.apache.ignite.internal.processors.cache.persistence.db.wal.IgniteWalS import org.apache.ignite.internal.processors.cache.persistence.db.wal.WalCompactionTest; import org.apache.ignite.internal.processors.cache.persistence.db.wal.crc.IgniteDataIntegrityTests; import org.apache.ignite.internal.processors.cache.persistence.db.wal.reader.IgniteWalReaderTest; +import org.apache.ignite.internal.processors.cache.persistence.file.FileDownloaderTest; /** * @@ -69,6 +70,8 @@ public class IgnitePdsTestSuite2 extends TestSuite { suite.addTestSuite(IgniteOfflineBaselineNodeFullApiSelfTest.class); suite.addTestSuite(IgniteOnlineNodeOutOfBaselineFullApiSelfTest.class); + suite.addTestSuite(FileDownloaderTest.class); + return suite; }
