/// <summary>Call all the constructors and verify the delegation is working properly</summary> /// <exception cref="System.Exception"/> public virtual void TestBlockLocationConstructors() { // BlockLocation loc; loc = new BlockLocation(); CheckBlockLocation(loc); loc = new BlockLocation(null, null, 1, 2); CheckBlockLocation(loc, 1, 2, false); loc = new BlockLocation(null, null, null, 1, 2); CheckBlockLocation(loc, 1, 2, false); loc = new BlockLocation(null, null, null, 1, 2, true); CheckBlockLocation(loc, 1, 2, true); loc = new BlockLocation(null, null, null, null, 1, 2, true); CheckBlockLocation(loc, 1, 2, true); }
/// <exception cref="System.Exception"/> private static void CheckBlockLocation(BlockLocation loc, string[] names, string[] hosts, string[] cachedHosts, string[] topologyPaths, long offset, long length, bool corrupt) { NUnit.Framework.Assert.IsNotNull(loc.GetHosts()); NUnit.Framework.Assert.IsNotNull(loc.GetCachedHosts()); NUnit.Framework.Assert.IsNotNull(loc.GetNames()); NUnit.Framework.Assert.IsNotNull(loc.GetTopologyPaths()); Assert.AssertArrayEquals(hosts, loc.GetHosts()); Assert.AssertArrayEquals(cachedHosts, loc.GetCachedHosts()); Assert.AssertArrayEquals(names, loc.GetNames()); Assert.AssertArrayEquals(topologyPaths, loc.GetTopologyPaths()); Assert.Equal(offset, loc.GetOffset()); Assert.Equal(length, loc.GetLength()); Assert.Equal(corrupt, loc.IsCorrupt()); }
/// <exception cref="System.Exception"/> private static void CheckBlockLocation(BlockLocation loc, long offset, long length , bool corrupt) { CheckBlockLocation(loc, EmptyStrArray, EmptyStrArray, EmptyStrArray, EmptyStrArray , offset, length, corrupt); }
/// <exception cref="System.Exception"/> private static void CheckBlockLocation(BlockLocation loc) { CheckBlockLocation(loc, 0, 0, false); }
public virtual void TestFixBlockLocations() { { // do some tests where start == 0 // case 1: range starts before current har block and ends after BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 0, 20, 5); Assert.Equal(b[0].GetOffset(), 5); Assert.Equal(b[0].GetLength(), 10); } { // case 2: range starts in current har block and ends after BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 0, 20, 15); Assert.Equal(b[0].GetOffset(), 0); Assert.Equal(b[0].GetLength(), 5); } { // case 3: range starts before current har block and ends in // current har block BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 0, 10, 5); Assert.Equal(b[0].GetOffset(), 5); Assert.Equal(b[0].GetLength(), 5); } { // case 4: range starts and ends in current har block BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 0, 6, 12); Assert.Equal(b[0].GetOffset(), 0); Assert.Equal(b[0].GetLength(), 6); } { // now try a range where start == 3 // case 5: range starts before current har block and ends after BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 3, 20, 5); Assert.Equal(b[0].GetOffset(), 5); Assert.Equal(b[0].GetLength(), 10); } { // case 6: range starts in current har block and ends after BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 3, 20, 15); Assert.Equal(b[0].GetOffset(), 3); Assert.Equal(b[0].GetLength(), 2); } { // case 7: range starts before current har block and ends in // current har block BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 3, 7, 5); Assert.Equal(b[0].GetOffset(), 5); Assert.Equal(b[0].GetLength(), 5); } { // case 8: range starts and ends in current har block BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 10, 10) }; HarFileSystem.FixBlockLocations(b, 3, 3, 12); Assert.Equal(b[0].GetOffset(), 3); Assert.Equal(b[0].GetLength(), 3); } { // test case from JIRA MAPREDUCE-1752 BlockLocation[] b = new BlockLocation[] { new BlockLocation(null, null, 512, 512) , new BlockLocation(null, null, 1024, 512) }; HarFileSystem.FixBlockLocations(b, 0, 512, 896); Assert.Equal(b[0].GetOffset(), 0); Assert.Equal(b[0].GetLength(), 128); Assert.Equal(b[1].GetOffset(), 128); Assert.Equal(b[1].GetLength(), 384); } }
/// <exception cref="System.IO.IOException"/> public HdfsBlockLocation(BlockLocation loc, LocatedBlock block) : base(loc) { // Initialize with data from passed in BlockLocation this.block = block; }