private static void AssertEqualFiles(string inFilePath, string outDirPath, string inDirPath) { var relative = ParaibaPath.GetRelativePath(inFilePath, inDirPath); var actualJava = ParaibaPath.GetFullPath(relative, outDirPath); Assert.That(File.ReadAllBytes(actualJava), Is.EqualTo(File.ReadAllBytes(inFilePath))); }
protected override long RegisterFile(FileInfo fileInfo) { var relativePath = ParaibaPath.GetRelativePath( fileInfo.FullName, BaseDirInfo.FullName); Console.WriteLine("Relative path: " + relativePath); return(Id++); }
public void CopyFile(FileInfo inFileInfo) { var relativePath = ParaibaPath.GetRelativePath( inFileInfo.FullName, BaseDirInfo.FullName); var outFileInfo = OutDirInfo.GetFile(relativePath); outFileInfo.Directory.Create(); inFileInfo.CopyTo(outFileInfo.FullName, true); }
public void WriteInstrumentedTestCode(LanguageSupport mode, FileInfo inFileInfo) { var relativePath = ParaibaPath.GetRelativePath(inFileInfo.FullName, BaseDirInfo.FullName); var outFileInfo = OutDirInfo.GetFile(relativePath); var code = InstrumentTestCase(mode, inFileInfo, BaseDirInfo); outFileInfo.Directory.Create(); File.WriteAllText(outFileInfo.FullName, code); }
public static string GetIdentifiedTest( FileInfo testFile, TestInfo info, LanguageSupport support, out string relativePath) { relativePath = ParaibaPath.GetRelativePath(testFile.FullName, info.BasePath); var ast = support.CodeToXml.GenerateFromFile(testFile.FullName); // テストケース識別用コードの埋め込み CodeTransformer.InsertIntoTestCase(info, ast, support, relativePath); // コード生成 return(support.XmlToCode.Generate(ast)); }
public static string GetCoveragedCode( FileInfo codeFile, CoverageInfo info, LanguageSupport support, out string relativePath) { relativePath = ParaibaPath.GetRelativePath(codeFile.FullName, info.BasePath); var ast = support.CodeToXml.GenerateFromFile(codeFile.FullName); // 測定用コードの埋め込み var path = relativePath; CodeTransformer.InstrumentStatementAndPredicate(info, ast, support, path); // コード生成 return(support.XmlToCode.Generate(ast)); }
private static TestInfo AnalyzeKleeTestFiles(DirectoryInfo testDirInfo) { var files = testDirInfo.EnumerateFiles("*.ktest"); var testInfo = new TestInfo(testDirInfo.FullName); testInfo.InitializeForStoringData(false); foreach (var file in files) { var relativePath = ParaibaPath.GetRelativePath(file.FullName, testDirInfo.FullName); var testCase = new TestCase(relativePath, file.FullName, new CodeRange()); testInfo.TestCases.Add(testCase); testCase.InitializeForStoringData(false); var dataPath = file.FullName + OccfNames.Record; CoverageDataReader.ReadFile(testInfo, new FileInfo(dataPath), testCase); } return(testInfo); }
private void MainFormDragDrop(object sender, DragEventArgs e) { if (e.Data.GetDataPresent(DataFormats.FileDrop)) { var filePathes = ((string[])e.Data.GetData(DataFormats.FileDrop)); txtBase.Text = Path.GetDirectoryName(filePathes[0]); var basePath = txtBase.Text.AddIfNotEndsWith('\\'); var files = filePathes.SelectMany(path => EnumerateFiles(path, "*")) .Select(path => ParaibaPath.GetRelativePath(path, basePath)); clbFiles.Items.Clear(); foreach (var file in files) { clbFiles.Items.Add(file); } SetFileCheckedWithCombBox(); } }
public void InsertInstrumentationCode(string fileName) { var profile = LanguageSupports.GetCoverageModeByClassName("Java"); CodeInsertTest.InsertInstrumentationCode(profile, fileName); var info = new CoverageInfo( Fixture.GetCoverageInputPath(), profile.Name, SharingMethod.SharedMemory); var inPath = Path.Combine(Fixture.GetCoverageInputPath(), fileName); var codeFile = new FileInfo(inPath); var relativePath = ParaibaPath.GetRelativePath(codeFile.FullName, info.BasePath); var ast = profile.CodeToXml.GenerateFromFile(codeFile.FullName); File.WriteAllText(Fixture.GetOutputPath(fileName) + ".xml", ast.ToString()); // 測定用コードの埋め込み var path = relativePath; CodeTransformer.InstrumentStatementAndPredicate(info, ast, profile, path); File.WriteAllText(Fixture.GetOutputPath(fileName) + ".modified.xml", ast.ToString()); }
/// <summary> /// Instruments test code for measuring code coverage and returns the modifieid code. /// </summary> /// <param name="support">A support to measure coverage.</param> /// <param name="fileInfo">A <c>FileInfo</c> instance to be instrumented.</param> /// <param name="baseDirInfo">A <c>DirectoryInfo</c> instance of base directory.</param> /// <returns>The modified test code.</returns> public string InstrumentTestCase( LanguageSupport support, FileInfo fileInfo, DirectoryInfo baseDirInfo) { var relativePath = ParaibaPath.GetRelativePath(fileInfo.FullName, baseDirInfo.FullName); var root = support.CodeToXml.GenerateFromFile(fileInfo.FullName); var inserter = support.AstTransformer; var fileId = RegisterFile(fileInfo); var targets = support.AstAnalyzer.FindTestCases(root); foreach (var target in targets) { var testCaseId = RegisterTestCase(fileId); inserter.InsertTestCaseId(target, testCaseId, relativePath); } // Add import for logging executed items inserter.InsertImport(root); return(support.XmlToCode.Generate(root)); }