## @file
# CI configuration for MdeModulePkg
#
# Copyright (c) Microsoft Corporation
# Copyright (c) 2020, Intel Corporation. All rights reserved.<BR>
# (C) Copyright 2021 Hewlett Packard Enterprise Development LP<BR>
# SPDX-License-Identifier: BSD-2-Clause-Patent
##
{
    "PrEval": {
        "DscPath": "MdeModulePkg.dsc",
    },
    ## options defined .pytool/Plugin/LicenseCheck
    "LicenseCheck": {
        "IgnoreFiles": []
    },
    "EccCheck": {
        ## Exception sample looks like below:
        ## "ExceptionList": [
        ##     "<ErrorID>", "<KeyWord>"
        ## ]
        "ExceptionList": [
            "8005", "UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGE.UID",
            "8005", "UNIVERSAL_PAYLOAD_PCI_ROOT_BRIDGE.HID",
            "8001", "UefiSortLibUnitTestMain",
        ],
        ## Both file path and directory path are accepted.
        "IgnoreFiles": [
            "Library/LzmaCustomDecompressLib",
            "Library/BrotliCustomDecompressLib",
            "Universal/RegularExpressionDxe"
        ]
    },
    ## options defined ci/Plugin/CompilerPlugin
    "CompilerPlugin": {
        "DscPath": "MdeModulePkg.dsc"
    },
    ## options defined ci/Plugin/HostUnitTestCompilerPlugin
    "HostUnitTestCompilerPlugin": {
        "DscPath": "Test/MdeModulePkgHostTest.dsc"
    },

    ## options defined ci/Plugin/CharEncodingCheck
    "CharEncodingCheck": {
        "IgnoreFiles": [
            "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/test/testc.c",
            "MdeModulePkg/Universal/RegularExpressionDxe/oniguruma/windows/testc.c"
        ]
    },

    ## options defined ci/Plugin/DependencyCheck
    "DependencyCheck": {
        "AcceptableDependencies": [
            "MdePkg/MdePkg.dec",
            "MdeModulePkg/MdeModulePkg.dec",
            "StandaloneMmPkg/StandaloneMmPkg.dec",
            "ArmPkg/ArmPkg.dec"  # this should be fixed by promoting an abstraction
        ],
        # For host based unit tests
        "AcceptableDependencies-HOST_APPLICATION":[
            "UnitTestFrameworkPkg/UnitTestFrameworkPkg.dec"
        ],
        # For UEFI shell based apps
        "AcceptableDependencies-UEFI_APPLICATION":[],
        "IgnoreInf": []
    },

    ## options defined ci/Plugin/DscCompleteCheck
    "DscCompleteCheck": {
        "IgnoreInf": [],
        "DscPath": "MdeModulePkg.dsc"
    },
    ## options defined ci/Plugin/HostUnitTestDscCompleteCheck
    "HostUnitTestDscCompleteCheck": {
        "IgnoreInf": [""],
        "DscPath": "Test/MdeModulePkgHostTest.dsc"
    },

    ## options defined ci/Plugin/GuidCheck
    "GuidCheck": {
        "IgnoreGuidName": [],
        "IgnoreGuidValue": ["00000000-0000-0000-0000-000000000000"],
        "IgnoreFoldersAndFiles": [],
        "IgnoreDuplicates": [
            "gEfiPeiMmAccessPpiGuid=gPeiSmmAccessPpiGuid",
            "gPeiSmmControlPpiGuid=gEfiPeiMmControlPpiGuid",
            "gEfiPeiMmCommunicationPpiGuid=gEfiPeiSmmCommunicationPpiGuid",
        ]
    },

    ## options defined ci/Plugin/LibraryClassCheck
    "LibraryClassCheck": {
        "IgnoreHeaderFile": []
    },

    ## options defined ci/Plugin/SpellCheck
    "SpellCheck": {
        "AuditOnly": True,           # Fails test but run in AuditOnly mode to collect log
        "IgnoreStandardPaths": [     # Standard Plugin defined paths that should be ignore
            "*.c", "*.asm", "*.h", "*.nasm", "*.s", "*.asl", "*.inf"
        ],
        "IgnoreFiles": [             # use gitignore syntax to ignore errors in matching files
            "Library/LzmaCustomDecompressLib/Sdk/DOC/*"
        ],
        "ExtendWords": [           # words to extend to the dictionary for this package
            "LIGHTGRAY",
            "DARKGRAY",
            "LIGHTBLUE",
            "LIGHTGREEN",
            "LIGHTCYAN",
            "LIGHTRED",
            "LIGHTMAGENTA",
            "FVMAIN",
            "VARCHECKPCD",
            "Getxx",
            "lzturbo",
            "musthave",
            "canthave"
        ],
        "AdditionalIncludePaths": [] # Additional paths to spell check relative to package root (wildcards supported)
    }
}
