def testExtractCodeWithEmptyDiffBetweenTwoCommits(self): gp = gitprovider.GitProvider(config.getRepoDir()) commits = gp.getAllVersions('trainDbScriptTest') commit1 = commits[-2] commit2 = commits[-2] file1 = gp.getFileContents('bugcode2.cpp', commit1) file2 = gp.getFileContents('bugcode2.cpp', commit2) diff = LinuxDiffer().diff(file1, file2) usedDiffs = [] bugData = self.getBugData() extractor = CodeExtractor(bugData) extractor.loadCodeFromText(file1, '\r\n', '\n') extractor.extractBugCode() extractor.loadDiff(diff) with self.assertRaises(ValueError): extractor.extractFixCode() bugCode = extractor.getBugCodeFragment() fixCode = extractor.getFixCodeFragment() usedDiffs = extractor.getUsedDiffs() expectedOutputFix = '' expectedOutputBug = """int main(void) { int a; a = 3; a = 0; if (a == 0) { """ self.assertEqual(expectedOutputBug, bugCode) self.assertEqual(expectedOutputFix, fixCode) self.assertEqual(0, len(usedDiffs))
def testDiffBetweenEmptyAndRegularFile(self): file1 = '' file2 = """abc """ expectedOutput = """0a1 > abc""" diff = LinuxDiffer().diff(file1, file2) self.assertEqual(expectedOutput, diff)
def testDiffBetweenDifferentFiles(self): file1 = self.getFile1() file2 = self.getFile2() expectedOutput = """9c9 < if (a == 0) --- > if (a != 0)""" diff = LinuxDiffer().diff(file1, file2) self.assertEqual(expectedOutput, diff) file1 = """abc """ file2 = """abc cdef """ expectedOutput = """1a2 > cdef""" diff = LinuxDiffer().diff(file1, file2) self.assertEqual(expectedOutput, diff)
def testDiffBetweenTwoCommits(self): gp = gitprovider.GitProvider(config.getRepoDir()) commits = gp.getAllVersions('trainDbScriptTest') commit1 = commits[-2] commit2 = commits[-3] file1 = gp.getFileContents('bugcode2.cpp', commit1) file2 = gp.getFileContents('bugcode2.cpp', commit2) diff = LinuxDiffer().diff(file1, file2) expectedOutput = """8d7 < a = 3;""" self.assertEqual(expectedOutput, diff)
def testExtractCodeWithDiffBetweenTwoCommitsMultiDiffInFragment(self): gp = gitprovider.GitProvider(config.getRepoDir()) commits = gp.getAllVersions('trainDbScriptTest') commit1 = commits[-6] commit2 = commits[-7] file1 = gp.getFileContents('bugcode3.cpp', commit1) file2 = gp.getFileContents('bugcode3.cpp', commit2) diff = LinuxDiffer().diff(file1, file2) usedDiffs = [] bugData = self.getBugData3() extractor = CodeExtractor(bugData) extractor.loadCodeFromText(file1, '\r\n', '\n') extractor.extractBugCode() extractor.loadDiff(diff) extractor.extractFixCode() bugCode = extractor.getBugCodeFragment() fixCode = extractor.getFixCodeFragment() usedDiffs = extractor.getUsedDiffs() expectedOutputFix = """{; int a; a = 0; a = 2; if (a != 0) {; int b = 1 / a; """ expectedOutputBug = """{ int a; a = 0; a = 2; if (a != 0) { int b = 1 / a; """ self.assertEqual(expectedOutputBug, bugCode) self.assertEqual(expectedOutputFix, fixCode) self.assertEqual(2, len(usedDiffs))
def testDiffBetweenEmptyFiles(self): file1 = '' file2 = '' expectedOutput = '' diff = LinuxDiffer().diff(file1, file2) self.assertEqual(expectedOutput, diff)
def testDiffBetweenSameFiles(self): file1 = self.getFile1() file2 = self.getFile1() expectedOutput = '' diff = LinuxDiffer().diff(file1, file2) self.assertEqual(expectedOutput, diff)