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))
Exemplo n.º 2
0
    def testDiffBetweenEmptyAndRegularFile(self):
        file1 = ''
        file2 = """abc
"""
        expectedOutput = """0a1
> abc"""
        diff = LinuxDiffer().diff(file1, file2)
        self.assertEqual(expectedOutput, diff)
Exemplo n.º 3
0
    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))
Exemplo n.º 6
0
 def testDiffBetweenEmptyFiles(self):
     file1 = ''
     file2 = ''
     expectedOutput = ''
     diff = LinuxDiffer().diff(file1, file2)
     self.assertEqual(expectedOutput, diff)
Exemplo n.º 7
0
 def testDiffBetweenSameFiles(self):
     file1 = self.getFile1()
     file2 = self.getFile1()
     expectedOutput = ''
     diff = LinuxDiffer().diff(file1, file2)
     self.assertEqual(expectedOutput, diff)