Beispiel #1
0
        public void LoadTest()
        {
#if false
            bool GENERATE_MINI_ISO = true;
#endif
            Dvd9Xbox360 Dvd9Xbox360;
            MapStream   mapStream;
            ProxyStreamReadWriteAnalyzer FileStreamAnalyzed;
            Stream FileStream;

#if false
            if (GENERATE_MINI_ISO)
            {
                //var FilePath = @"I:\isos\360\Tales of Vesperia [PAL] [Multi3] [English] [Xbox360].iso";
                var FilePath = @"E:\Isos\360\games\Tales of Vesperia [PAL] [Multi3] [English] [Xbox360].iso";
                FileStream = File.OpenRead(FilePath);
            }
            else
#endif
            {
                mapStream  = MapStream.Unserialize(new MemoryStream(File.OpenRead(Utils.TestInputPath + "/mini_iso.bin").ReadAll()));
                FileStream = mapStream;
            }

            FileStreamAnalyzed = new ProxyStreamReadWriteAnalyzer(FileStream);
            Dvd9Xbox360        = new Dvd9Xbox360().Load(FileStreamAnalyzed);

            Assert.AreEqual(
                "EntryStruct(FullName='/snd/config.bin', Offset=366721, Size=3040, Attributes=File)",
                Dvd9Xbox360.RootEntry["/snd/config.bin"].ToString()
                );
            var Stream     = Dvd9Xbox360.RootEntry["/snd/config.bin"].Open();
            var TextReaded = Stream.ReadString(4, Encoding.UTF8);

            Assert.AreEqual("nusc", TextReaded);

#if false
            if (GENERATE_MINI_ISO)
            {
                // Analyze.
                mapStream = FileStreamAnalyzed.ConvertSpacesToMapStream(FileStreamAnalyzed.ReadUsage.JoinWithThresold(Thresold: 32));
                SerializerUtils.SerializeToMemoryStream(mapStream.Serialize).CopyToFile(Utils.TestInputPath + "/mini_iso.bin");
            }
#endif
        }
Beispiel #2
0
        public void TestReadAnalyzing()
        {
            var ZeroStream     = new ZeroStream(0x1000000);
            var StreamAnalyzer = new ProxyStreamReadWriteAnalyzer(ZeroStream);

            StreamAnalyzer.Position = 100;
            StreamAnalyzer.ReadBytes(8);
            StreamAnalyzer.Position = 104;
            StreamAnalyzer.ReadBytes(8);

            StreamAnalyzer.Position = 200;
            StreamAnalyzer.ReadBytes(16);

            var Usage = StreamAnalyzer.ReadUsage;

            Assert.AreEqual(
                "Space(Min=100, Max=112),Space(Min=200, Max=216)",
                Usage.ToStringArray()
                );
        }