Example #1
0
        public void TestDontUseExistingSrcML()
        {
            //convert the test files and place in the xml directory
            ManualResetEvent resetEvent = new ManualResetEvent(false);
            var archive = new SrcMLArchive(ArchiveDirectory, false, new SrcMLGenerator(Path.Combine(SrcMLHelper.GetSrcMLRootDirectory(), SrcMLHelper.srcMLExecutableLocation)));

            archive.FileChanged += (o, e) => { resetEvent.Set(); };

            string[] sourceFiles = new[] { @"..\..\TestInputs\foo.c", @"..\..\TestInputs\baz.cpp", @"..\..\TestInputs\function_def.cpp" };

            foreach (var sourceFile in sourceFiles)
            {
                archive.AddOrUpdateFile(sourceFile);
                Assert.That(resetEvent.WaitOne(300), "Timed out waiting for " + sourceFile);
            }
            foreach (var sourceFile in sourceFiles)
            {
                Assert.That(archive.ContainsFile(sourceFile), sourceFile + " should be in the archive!");
            }
            archive.Dispose();

            //make new archive, and ignore existing srcml files in xml directory
            archive = new SrcMLArchive(ArchiveDirectory, false, new SrcMLGenerator(TestConstants.SrcmlPath));
            foreach (var sourceFile in sourceFiles)
            {
                Assert.IsFalse(archive.ContainsFile(sourceFile));
            }
            archive.Dispose();
        }