/// <exception cref="System.IO.IOException"/> public virtual void Setup <_T0>(TaskInputOutputContext <_T0> context) { Configuration conf = context.GetConfiguration(); Path[] localFiles = context.GetLocalCacheFiles(); URI[] files = context.GetCacheFiles(); Path[] localArchives = context.GetLocalCacheArchives(); URI[] archives = context.GetCacheArchives(); FileSystem fs = LocalFileSystem.Get(conf); // Check that 2 files and 2 archives are present NUnit.Framework.Assert.AreEqual(2, localFiles.Length); NUnit.Framework.Assert.AreEqual(2, localArchives.Length); NUnit.Framework.Assert.AreEqual(2, files.Length); NUnit.Framework.Assert.AreEqual(2, archives.Length); // Check the file name NUnit.Framework.Assert.IsTrue(files[0].GetPath().EndsWith("distributed.first")); NUnit.Framework.Assert.IsTrue(files[1].GetPath().EndsWith("distributed.second.jar" )); // Check lengths of the files NUnit.Framework.Assert.AreEqual(1, fs.GetFileStatus(localFiles[0]).GetLen()); NUnit.Framework.Assert.IsTrue(fs.GetFileStatus(localFiles[1]).GetLen() > 1); // Check extraction of the archive NUnit.Framework.Assert.IsTrue(fs.Exists(new Path(localArchives[0], "distributed.jar.inside3" ))); NUnit.Framework.Assert.IsTrue(fs.Exists(new Path(localArchives[1], "distributed.jar.inside4" ))); // Check the class loaders Log.Info("Java Classpath: " + Runtime.GetProperty("java.class.path")); ClassLoader cl = Sharpen.Thread.CurrentThread().GetContextClassLoader(); // Both the file and the archive were added to classpath, so both // should be reachable via the class loader. NUnit.Framework.Assert.IsNotNull(cl.GetResource("distributed.jar.inside2")); NUnit.Framework.Assert.IsNotNull(cl.GetResource("distributed.jar.inside3")); NUnit.Framework.Assert.IsNull(cl.GetResource("distributed.jar.inside4")); // Check that the symlink for the renaming was created in the cwd; NUnit.Framework.Assert.IsTrue("symlink distributed.first.symlink doesn't exist", symlinkFile.Exists()); NUnit.Framework.Assert.AreEqual("symlink distributed.first.symlink length not 1", 1, symlinkFile.Length()); //This last one is a difference between MRv2 and MRv1 NUnit.Framework.Assert.IsTrue("second file should be symlinked too", expectedAbsentSymlinkFile .Exists()); }