Skip to content

Commit

Permalink
Add test case: testDoAuditSystemPatchedWithIrrelevantErrata
Browse files Browse the repository at this point in the history
  • Loading branch information
HoussemNasri committed Sep 4, 2023
1 parent 737d5ce commit fe18cc2
Showing 1 changed file with 51 additions and 5 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -134,22 +134,20 @@ void testDoAuditSystemPatched() throws Exception {

extractAndSaveVulnerablePackages(ovalRoot);

Set<Cve> cves = Set.of(cve);
User user = createTestUser();

Errata errata = createTestErrata(user, cves);
Channel channel = createTestChannel(user, errata);
Channel channel = createTestChannel(user);
Set<Channel> channels = Set.of(channel);

Server server = createTestServer(user, channels);
server.setCpe("cpe:/o:opensuse:leap:15.4");

Package unpatched = createTestPackage(user, channel, "noarch");
unpatched.setPackageName(createTestPackageName("kernel-debug-base"));
Package patched = createLaterTestPackage(user, errata, channel, unpatched,
Package patched = createLaterTestPackage(user, null, channel, unpatched,
"0", "4.12.14", "150100.197.137.2");

createTestInstalledPackage(createLeap15_4_Package(user, errata, channel), server);
createTestInstalledPackage(createLeap15_4_Package(user, null, channel), server);
createTestInstalledPackage(patched, server);

CVEAuditManager.populateCVEChannels();
Expand Down Expand Up @@ -371,6 +369,54 @@ void testDoAuditSystemAffectedPatchInapplicable() throws Exception {
assertEquals(PatchStatus.AFFECTED_PATCH_INAPPLICABLE, systemAuditResult.getPatchStatus());
}

@Test
void testDoAuditSystemAffectedPatchInapplicableSuccessorChannel() {

}

/**
* Verify that bnc#833783 is fixed:
* Test that irrelevant packages do not alter a system's PATCHED status
*
* @throws Exception if anything goes wrong
*/
@Test
public void testDoAuditSystemPatchedWithIrrelevantErrata() throws Exception {
OvalRootType ovalRoot = ovalParser.parse(TestUtils
.findTestData("/com/redhat/rhn/manager/audit/test/oval/oval-def-1.xml"));

Cve cve = createTestCve("CVE-2022-2991");

extractAndSaveVulnerablePackages(ovalRoot);

Set<Cve> cves = Set.of(cve);
User user = createTestUser();

Errata errata = createTestErrata(user, cves);
Channel channel = createTestChannel(user, errata);
Set<Channel> channels = Set.of(channel);

Server server = createTestServer(user, channels);
server.setCpe("cpe:/o:opensuse:leap:15.4");

Package unpatched = createTestPackage(user, channel, "noarch");
unpatched.setPackageName(createTestPackageName("kernel-debug-base"));
Package patched = createLaterTestPackage(user, errata, channel, unpatched,
"0", "4.12.14", "150100.197.137.2");

createTestInstalledPackage(createLeap15_4_Package(user, errata, channel), server);
createTestInstalledPackage(patched, server);

CVEAuditManager.populateCVEChannels();

List<CVEAuditManager.CVEPatchStatus> results = CVEAuditManager.listSystemsByPatchStatus(user, cve.getName())
.collect(Collectors.toList());

CVEAuditSystemBuilder systemAuditResult = CVEAuditManagerOVAL.doAuditSystem(cve.getName(), results, server);

assertEquals(PatchStatus.PATCHED, systemAuditResult.getPatchStatus());
}

/**
* This package is used to distinguish openSUSE Leap 15.4 distributions. We use very often in tests, so
* it's abstracted here
Expand Down

0 comments on commit fe18cc2

Please sign in to comment.