## @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
##
{
    ## 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)
    }
}
