From 7c953f917140986a5a9a1ced95ef85d9f905b378 Mon Sep 17 00:00:00 2001 From: Josh Rosen Date: Mon, 11 May 2015 16:11:25 -0700 Subject: [PATCH] Add test that covers UnsafeShuffleSortDataFormat.swap(). --- .../unsafe/UnsafeShuffleSorterSuite.java | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/core/src/test/java/org/apache/spark/shuffle/unsafe/UnsafeShuffleSorterSuite.java b/core/src/test/java/org/apache/spark/shuffle/unsafe/UnsafeShuffleSorterSuite.java index 080145b90554a..3fc73b04888ee 100644 --- a/core/src/test/java/org/apache/spark/shuffle/unsafe/UnsafeShuffleSorterSuite.java +++ b/core/src/test/java/org/apache/spark/shuffle/unsafe/UnsafeShuffleSorterSuite.java @@ -18,6 +18,7 @@ package org.apache.spark.shuffle.unsafe; import java.util.Arrays; +import java.util.Random; import org.junit.Assert; import org.junit.Test; @@ -107,4 +108,25 @@ public void testBasicSorting() throws Exception { } Assert.assertFalse(iter.hasNext()); } + + @Test + public void testSortingManyNumbers() throws Exception { + UnsafeShuffleSorter sorter = new UnsafeShuffleSorter(4); + int[] numbersToSort = new int[128000]; + Random random = new Random(16); + for (int i = 0; i < numbersToSort.length; i++) { + numbersToSort[i] = random.nextInt(PackedRecordPointer.MAXIMUM_PARTITION_ID); + sorter.insertRecord(0, numbersToSort[i]); + } + Arrays.sort(numbersToSort); + int[] sorterResult = new int[numbersToSort.length]; + UnsafeShuffleSorter.UnsafeShuffleSorterIterator iter = sorter.getSortedIterator(); + int j = 0; + while (iter.hasNext()) { + iter.loadNext(); + sorterResult[j] = iter.packedRecordPointer.getPartitionId(); + j += 1; + } + Assert.assertArrayEquals(numbersToSort, sorterResult); + } }