MCPcopy Create free account
hub / github.com/KDE/kdiff3 / testTwoWayDiffLineChanged

Method testTwoWayDiffLineChanged

src/autotests/DiffTest.cpp:122–183  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

120 }
121
122 void testTwoWayDiffLineChanged()
123 {
124 SourceDataMoc simData, simData2;
125 QTemporaryFile testFile2, testFile3;
126 FileAccess file2;
127
128 std::shared_ptr<const LineDataVector> lineData;
129 ManualDiffHelpList manualDiffList;
130 DiffList diffList, expectedDiffList;
131 Diff3LineList diff3List, expectedDiff3;
132
133 testFile2.open();
134 testFile2.write(u8"1\n2\n3\n");
135 testFile2.close();
136 // Verify that we actcually wrote the test file.
137 file2 = FileAccess(testFile2.fileName());
138 QVERIFY(file2.exists());
139 QVERIFY(file2.isFile());
140 QVERIFY(file2.isReadable());
141 QVERIFY(file2.size() > 0);
142
143 testFile3.open();
144 testFile3.write(u8"1\n4\n3\n");
145 testFile3.close();
146
147 simData2.setFilename(testFile2.fileName());
148 simData.setFilename(testFile3.fileName());
149
150 simData.readAndPreprocess("UTF-8", true);
151 QVERIFY(simData.getErrors().isEmpty());
152 QVERIFY(simData.hasData());
153
154 lineData = simData.getLineDataForDisplay();
155 QVERIFY(simData.hasData());
156 // Verify basic line data structure.
157 QCOMPARE(lineData->size() - 1, 4);
158
159 simData2.readAndPreprocess("UTF-8", true);
160 QVERIFY(simData2.getErrors().isEmpty());
161 QVERIFY(simData2.hasData());
162
163 manualDiffList.runDiff(simData.getLineDataForDiff(), simData.getSizeLines(), simData2.getLineDataForDiff(), simData2.getSizeLines(), diffList, e_SrcSelector::A, e_SrcSelector::B);
164 /*
165 Verify DiffList generated by runDiff.
166 */
167 expectedDiffList = {{1, 1, 1}, {2, 0, 0}};
168 QVERIFY(expectedDiffList == diffList);
169
170 /*
171 Verify Diff3List generated by calcDiff3LineListUsingAB.
172 */
173 diff3List.calcDiff3LineListUsingAB(&diffList);
174 QCOMPARE(diff3List.size(), 4);
175 // This hard codes the known good result of the above for comparison.
176 // In general this should not be changed unless you know what your doing.
177 expectedDiff3 = {Diff3LineMoc(0, 0, LineRef::invalid, false, false, true, false, false, false),
178 Diff3LineMoc(1, 1, LineRef::invalid, false, false, false, false, false, false),
179 Diff3LineMoc(2, 2, LineRef::invalid, false, false, true, false, false, false),

Callers

nothing calls this directly

Calls 15

Diff3LineMocClass · 0.85
openMethod · 0.80
closeMethod · 0.80
fileNameMethod · 0.80
setFilenameMethod · 0.80
readAndPreprocessMethod · 0.80
hasDataMethod · 0.80
runDiffMethod · 0.80
getSizeLinesMethod · 0.80
FileAccessClass · 0.50
writeMethod · 0.45

Tested by

no test coverage detected