diff --git a/.azurepipelines/MuDevOpsWrapper.yml b/.azurepipelines/MuDevOpsWrapper.yml index 5950bd9308..e838283829 100644 --- a/.azurepipelines/MuDevOpsWrapper.yml +++ b/.azurepipelines/MuDevOpsWrapper.yml @@ -19,7 +19,7 @@ resources: type: github endpoint: microsoft name: microsoft/mu_devops - ref: refs/tags/v9.1.9 + ref: refs/tags/v10.0.0 parameters: - name: do_ci_build diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000000..625449502b --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +* -text diff --git a/.github/workflows/auto-approve.yml b/.github/workflows/auto-approve.yml index 4d8c5ec178..23b9389ffe 100644 --- a/.github/workflows/auto-approve.yml +++ b/.github/workflows/auto-approve.yml @@ -29,5 +29,5 @@ jobs: if: | github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'uefibot' - uses: microsoft/mu_devops/.github/workflows/AutoApprover.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/AutoApprover.yml@v10.0.0 secrets: inherit diff --git a/.github/workflows/auto-merge.yml b/.github/workflows/auto-merge.yml index 84cf27a116..4f37dd5f5a 100644 --- a/.github/workflows/auto-merge.yml +++ b/.github/workflows/auto-merge.yml @@ -32,5 +32,5 @@ jobs: if: | github.event.pull_request.user.login == 'dependabot[bot]' || github.event.pull_request.user.login == 'uefibot' - uses: microsoft/mu_devops/.github/workflows/AutoMerger.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/AutoMerger.yml@v10.0.0 secrets: inherit diff --git a/.github/workflows/issue-assignment.yml b/.github/workflows/issue-assignment.yml index 94735ebcdb..79196ea3b2 100644 --- a/.github/workflows/issue-assignment.yml +++ b/.github/workflows/issue-assignment.yml @@ -23,4 +23,4 @@ jobs: contents: read issues: write - uses: microsoft/mu_devops/.github/workflows/IssueAssignment.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/IssueAssignment.yml@v10.0.0 diff --git a/.github/workflows/label-issues.yml b/.github/workflows/label-issues.yml index dd78cb86be..ffad0ec08f 100644 --- a/.github/workflows/label-issues.yml +++ b/.github/workflows/label-issues.yml @@ -36,4 +36,4 @@ jobs: contents: read pull-requests: write - uses: microsoft/mu_devops/.github/workflows/Labeler.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/Labeler.yml@v10.0.0 diff --git a/.github/workflows/label-sync.yml b/.github/workflows/label-sync.yml index c8b8f2a427..c42746422d 100644 --- a/.github/workflows/label-sync.yml +++ b/.github/workflows/label-sync.yml @@ -28,4 +28,4 @@ jobs: permissions: issues: write - uses: microsoft/mu_devops/.github/workflows/LabelSyncer.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/LabelSyncer.yml@v10.0.0 diff --git a/.github/workflows/release-draft.yml b/.github/workflows/release-draft.yml index f171216053..94e45e70f0 100644 --- a/.github/workflows/release-draft.yml +++ b/.github/workflows/release-draft.yml @@ -32,5 +32,5 @@ jobs: contents: write pull-requests: write - uses: microsoft/mu_devops/.github/workflows/ReleaseDrafter.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/ReleaseDrafter.yml@v10.0.0 secrets: inherit diff --git a/.github/workflows/stale.yml b/.github/workflows/stale.yml index fc34d6bf0a..5b94e82283 100644 --- a/.github/workflows/stale.yml +++ b/.github/workflows/stale.yml @@ -29,4 +29,4 @@ jobs: issues: write pull-requests: write - uses: microsoft/mu_devops/.github/workflows/Stale.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/Stale.yml@v10.0.0 diff --git a/.github/workflows/triage-issues.yml b/.github/workflows/triage-issues.yml index 3c68005d89..49780aaedb 100644 --- a/.github/workflows/triage-issues.yml +++ b/.github/workflows/triage-issues.yml @@ -23,4 +23,4 @@ jobs: permissions: issues: write - uses: microsoft/mu_devops/.github/workflows/IssueTriager.yml@v9.1.9 + uses: microsoft/mu_devops/.github/workflows/IssueTriager.yml@v10.0.0 diff --git a/UefiTestingPkg/FunctionalSystemTests/MorLockTestApp/MorLockTestApp.c b/UefiTestingPkg/FunctionalSystemTests/MorLockTestApp/MorLockTestApp.c index 51552355e4..0c78636548 100644 --- a/UefiTestingPkg/FunctionalSystemTests/MorLockTestApp/MorLockTestApp.c +++ b/UefiTestingPkg/FunctionalSystemTests/MorLockTestApp/MorLockTestApp.c @@ -776,7 +776,28 @@ MorLockv2ShouldBeLockable ( UNIT_TEST_STATUS EFIAPI -MorLockv2ShouldReportCorrectly ( +MorLockv2LockedWithoutKeyShouldReportCorrectly ( + IN UNIT_TEST_CONTEXT Context + ) +{ + EFI_STATUS Status; + UINT8 MorLock; + + UT_LOG_VERBOSE ("%a()\n", __FUNCTION__); + + Status = GetMorLockVariable (&MorLock); + + UT_LOG_VERBOSE ("%a - Status = %r, MorLock = %d\n", __FUNCTION__, Status, MorLock); + + UT_ASSERT_NOT_EFI_ERROR (Status); + UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITHOUT_KEY); + + return UNIT_TEST_PASSED; +} // MorLockv2LockedWithoutKeyShouldReportCorrectly() + +UNIT_TEST_STATUS +EFIAPI +MorLockv2LockedWithKeyShouldReportCorrectly ( IN UNIT_TEST_CONTEXT Context ) { @@ -793,7 +814,7 @@ MorLockv2ShouldReportCorrectly ( UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITH_KEY); return UNIT_TEST_PASSED; -} // MorLockv2ShouldReportCorrectly() +} // MorLockv2LockedWithKeyShouldReportCorrectly() UNIT_TEST_STATUS EFIAPI @@ -1040,7 +1061,7 @@ MorLockv2ShouldNotClearWithWrongKey ( // Verify that mode is still enabled. Status = GetMorLockVariable (&MorLock); UT_ASSERT_NOT_EFI_ERROR (Status); - UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITH_KEY); + UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITHOUT_KEY); return UNIT_TEST_PASSED; } // MorLockv2ShouldNotClearWithWrongKey() @@ -1181,7 +1202,7 @@ MorLockv2ShouldSetClearSet ( // Verify that mode is still enabled. Status = GetMorLockVariable (&MorLock); UT_ASSERT_NOT_EFI_ERROR (Status); - UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITH_KEY); + UT_ASSERT_EQUAL (MorLock, MOR_LOCK_DATA_LOCKED_WITHOUT_KEY); return UNIT_TEST_PASSED; } // MorLockv2ShouldSetClearSet() @@ -1296,14 +1317,14 @@ MorLockTestApp ( // reboots. So let's say this is for efficiency. // AddTestCase (MorLockV2Tests, "Should be able to set the v2 MORLock", "Security.MOR.LockV2.SetLock", MorLockv2ShouldBeLockable, MorLockShouldNotBeSet, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should report version correctly when locked with MORLock v2", "Security.MOR.LockV2.LockVersion", MorLockv2ShouldReportCorrectly, NULL, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should only return one byte when reading MORLock v2", "Security.MOR.LockV2.LockSize", MorLockv2ShouldOnlyReturnOneByte, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should not return the key contents when locked with MORLock v2", "Security.MOR.LockV2.LockDataProtection", MorLockv2ShouldNotReturnKey, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should not be able to change the MOR control when locked with MORLock v2", "Security.MOR.LockV2.Lock", MorControlShouldNotChange, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should not be able to change the key when locked with MORLock v2", "Security.MOR.LockV2.LockImmutable", MorLockv2ShouldNotChangeWhenLocked, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should not be able to change to MORLock v1 when locked with MORLock v2", "Security.MOR.LockV2.ChangeToV1Lock", MorLockv2ShouldNotChangeTov1, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "Should not be able to delete the MORLock when locked with MORLock v2", "Security.MOR.LockV2.LockDelete", MorLockv2ShouldNotBeDeleteable, MorLockv2ShouldReportCorrectly, NULL, NULL); - AddTestCase (MorLockV2Tests, "MORLock v2 should clear after reboot", "Security.MOR.MorLockV2.ClearOnReboot", MorLockShouldClearAfterReboot, MorLockv2ShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should report version correctly when locked with MORLock v2", "Security.MOR.LockV2.LockVersion", MorLockv2LockedWithKeyShouldReportCorrectly, NULL, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should only return one byte when reading MORLock v2", "Security.MOR.LockV2.LockSize", MorLockv2ShouldOnlyReturnOneByte, MorLockv2LockedWithKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should not return the key contents when locked with MORLock v2", "Security.MOR.LockV2.LockDataProtection", MorLockv2ShouldNotReturnKey, MorLockv2LockedWithKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should not be able to change the MOR control when locked with MORLock v2", "Security.MOR.LockV2.Lock", MorControlShouldNotChange, MorLockv2LockedWithKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should not be able to change the key when locked with MORLock v2", "Security.MOR.LockV2.LockImmutable", MorLockv2ShouldNotChangeWhenLocked, MorLockv2LockedWithKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should not be able to change to MORLock v1 when locked with MORLock v2", "Security.MOR.LockV2.ChangeToV1Lock", MorLockv2ShouldNotChangeTov1, MorLockv2LockedWithoutKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "Should not be able to delete the MORLock when locked with MORLock v2", "Security.MOR.LockV2.LockDelete", MorLockv2ShouldNotBeDeleteable, MorLockv2LockedWithoutKeyShouldReportCorrectly, NULL, NULL); + AddTestCase (MorLockV2Tests, "MORLock v2 should clear after reboot", "Security.MOR.MorLockV2.ClearOnReboot", MorLockShouldClearAfterReboot, MorLockv2LockedWithoutKeyShouldReportCorrectly, NULL, NULL); // // End of tests that assume precedence. // From here on, each test is isolated and will clean up after itself. diff --git a/pip-requirements.txt b/pip-requirements.txt index ebd6910d0d..881a08c092 100644 --- a/pip-requirements.txt +++ b/pip-requirements.txt @@ -13,7 +13,7 @@ ## edk2-pytool-library==0.21.5 -edk2-pytool-extensions==0.27.4 +edk2-pytool-extensions==0.27.5 antlr4-python3-runtime==4.13.1 -regex==2024.4.28 -pygount==1.6.1 +regex==2024.5.15 +pygount==1.8.0