Index: src/test/org/apache/hadoop/hbase/TestDeleteAll.java =================================================================== --- src/test/org/apache/hadoop/hbase/TestDeleteAll.java (revision 674314) +++ src/test/org/apache/hadoop/hbase/TestDeleteAll.java (working copy) @@ -111,35 +111,70 @@ region_incommon.put(lock, colD, cellData(2, flush).getBytes()); region_incommon.commit(lock, t2); - if (flush) {region_incommon.flushcache();} - + if (flush) { + region_incommon.flushcache(); +// region_incommon.compactStores(true); + } + // call delete all at a timestamp, make sure only the most recent stuff is left behind region.deleteAll(row, t1); - if (flush) {region_incommon.flushcache();} - assertCellValueEquals(region, row, colA, t0, cellData(0, flush)); - assertCellValueEquals(region, row, colA, t1, null); - assertCellValueEquals(region, row, colA, t2, null); - assertCellValueEquals(region, row, colD, t0, cellData(0, flush)); - assertCellValueEquals(region, row, colD, t1, null); - assertCellValueEquals(region, row, colD, t2, null); - + + if (flush) { + region_incommon.flushcache(); +// region_incommon.compactStores(true); + } + + assertCellValueEqualsWithManyStrategies(region, row, colA, t0, cellData(0, flush)); + assertCellValueEqualsWithManyStrategies(region, row, colA, t1, null); + assertCellValueEqualsWithManyStrategies(region, row, colA, t2, null); + assertCellValueEqualsWithManyStrategies(region, row, colD, t0, cellData(0, flush)); + assertCellValueEqualsWithManyStrategies(region, row, colD, t1, null); + assertCellValueEqualsWithManyStrategies(region, row, colD, t2, null); + // call delete all w/o a timestamp, make sure nothing is left. region.deleteAll(row, HConstants.LATEST_TIMESTAMP); - if (flush) {region_incommon.flushcache();} - assertCellValueEquals(region, row, colA, t0, null); - assertCellValueEquals(region, row, colA, t1, null); - assertCellValueEquals(region, row, colA, t2, null); - assertCellValueEquals(region, row, colD, t0, null); - assertCellValueEquals(region, row, colD, t1, null); - assertCellValueEquals(region, row, colD, t2, null); + + if (flush) { + region_incommon.flushcache(); +// region_incommon.compactStores(true); + } + assertCellValueEqualsWithManyStrategies(region, row, colA, t0, null); + assertCellValueEqualsWithManyStrategies(region, row, colA, t1, null); + assertCellValueEqualsWithManyStrategies(region, row, colA, t2, null); + assertCellValueEqualsWithManyStrategies(region, row, colD, t0, null); + assertCellValueEqualsWithManyStrategies(region, row, colD, t1, null); + assertCellValueEqualsWithManyStrategies(region, row, colD, t2, null); + } - + + private void assertCellValueEqualsWithManyStrategies(final HRegion region, final Text row, + final Text column, final long timestamp, final String value) + throws IOException { + assertCellValueEqualsWithGetFull(region, row, column, timestamp, value); + assertCellValueEqualsWithGet(region, row, column, timestamp, value); + } + + private void assertCellValueEqualsWithGetFull(final HRegion region, final Text row, + final Text column, final long timestamp, final String value) + throws IOException{ + Map result = region.getFull(row, timestamp); + byte[] cellValue = result.get(column); + assertCellValueEquals(region, row, column, timestamp, value, cellValue); + } + + private void assertCellValueEqualsWithGet(final HRegion region, final Text row, + final Text column, final long timestamp, final String value) + throws IOException{ + byte[][] result = region.get(row, column, timestamp, 1); + byte[] cellValue = (result == null || result.length == 0) ? null : result[0]; + assertCellValueEquals(region, row, column, timestamp, value, cellValue); + } + private void assertCellValueEquals(final HRegion region, final Text row, - final Text column, final long timestamp, final String value) + final Text column, final long timestamp, final String value, final byte[] cellValueIn) throws IOException { - Map result = region.getFull(row, timestamp); - byte[] cell_value = result.get(column); + String cell_value = (cellValueIn == null) ? null : new String(cellValueIn); if(value == null){ assertEquals(column.toString() + " at timestamp " + timestamp, null, cell_value); } else {