/** @file MockShellLib.h Google Test mocks for ShellLib Copyright (c) Microsoft Corporation. SPDX-License-Identifier: BSD-2-Clause-Patent **/ #ifndef MOCK_SHELL_LIB_H_ #define MOCK_SHELL_LIB_H_ #include #include extern "C" { #include #include } struct MockShellLib { MOCK_INTERFACE_DECLARATION (MockShellLib); MOCK_FUNCTION_DECLARATION ( CHAR16 *, FullyQualifyPath, (IN CONST CHAR16 *Path) ); MOCK_FUNCTION_DECLARATION ( EFI_FILE_INFO *, ShellGetFileInfo, (IN SHELL_FILE_HANDLE FileHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellSetFileInfo, (IN SHELL_FILE_HANDLE FileHandle, IN EFI_FILE_INFO *FileInfo) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellOpenFileByDevicePath, (IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath, OUT SHELL_FILE_HANDLE *FileHandle, IN UINT64 OpenMode, IN UINT64 Attributes) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellOpenFileByName, (IN CONST CHAR16 *FileName, OUT SHELL_FILE_HANDLE *FileHandle, IN UINT64 OpenMode, IN UINT64 Attributes) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCreateDirectory, (IN CONST CHAR16 *DirectoryName, OUT SHELL_FILE_HANDLE *FileHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellReadFile, (IN SHELL_FILE_HANDLE FileHandle, IN OUT UINTN *ReadSize, OUT VOID *Buffer) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellWriteFile, (IN SHELL_FILE_HANDLE FileHandle, IN OUT UINTN *BufferSize, IN VOID *Buffer) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCloseFile, (IN SHELL_FILE_HANDLE *FileHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellDeleteFile, (IN SHELL_FILE_HANDLE *FileHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellSetFilePosition, (IN SHELL_FILE_HANDLE FileHandle, IN UINT64 Position) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellGetFilePosition, (IN SHELL_FILE_HANDLE FileHandle, OUT UINT64 *Position) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellFlushFile, (IN SHELL_FILE_HANDLE FileHandle) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellFindFirstFile, (IN SHELL_FILE_HANDLE DirHandle, OUT EFI_FILE_INFO **Buffer) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellFindNextFile, (IN SHELL_FILE_HANDLE DirHandle, IN OUT EFI_FILE_INFO *Buffer, IN OUT BOOLEAN *NoFile) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellGetFileSize, (IN SHELL_FILE_HANDLE FileHandle, OUT UINT64 *Size) ); MOCK_FUNCTION_DECLARATION ( BOOLEAN, ShellGetExecutionBreakFlag, () ); MOCK_FUNCTION_DECLARATION ( CONST CHAR16 *, ShellGetEnvironmentVariable, (IN CONST CHAR16 *EnvKey) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellSetEnvironmentVariable, (IN CONST CHAR16 *EnvKey, IN CONST CHAR16 *EnvVal, IN BOOLEAN Volatile) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellExecute, (IN EFI_HANDLE *ParentHandle, IN CHAR16 *CommandLine, IN BOOLEAN Output, IN CHAR16 **EnvironmentVariables, OUT EFI_STATUS *Status) ); MOCK_FUNCTION_DECLARATION ( CONST CHAR16 *, ShellGetCurrentDir, (IN CHAR16 *CONST DeviceName OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( VOID, ShellSetPageBreakMode, (IN BOOLEAN CurrentState) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellOpenFileMetaArg, (IN CHAR16 *Arg, IN UINT64 OpenMode, IN OUT EFI_SHELL_FILE_INFO **ListHead) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCloseFileMetaArg, (IN OUT EFI_SHELL_FILE_INFO **ListHead) ); MOCK_FUNCTION_DECLARATION ( CHAR16 *, ShellFindFilePath, (IN CONST CHAR16 *FileName) ); MOCK_FUNCTION_DECLARATION ( CHAR16 *, ShellFindFilePathEx, (IN CONST CHAR16 *FileName, IN CONST CHAR16 *FileExtension) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCommandLineParseEx, (IN CONST SHELL_PARAM_ITEM *CheckList, OUT LIST_ENTRY **CheckPackage, OUT CHAR16 **ProblemParam OPTIONAL, IN BOOLEAN AutoPageBreak, IN BOOLEAN AlwaysAllowNumbers) ); MOCK_FUNCTION_DECLARATION ( VOID, ShellCommandLineFreeVarList, (IN LIST_ENTRY *CheckPackage) ); MOCK_FUNCTION_DECLARATION ( BOOLEAN, ShellCommandLineGetFlag, (IN CONST LIST_ENTRY *CONST CheckPackage, IN CONST CHAR16 *CONST KeyString) ); MOCK_FUNCTION_DECLARATION ( CONST CHAR16 *, ShellCommandLineGetValue, (IN CONST LIST_ENTRY *CheckPackage, IN CHAR16 *KeyString) ); MOCK_FUNCTION_DECLARATION ( CONST CHAR16 *, ShellCommandLineGetRawValue, (IN CONST LIST_ENTRY *CONST CheckPackage, IN UINTN Position) ); MOCK_FUNCTION_DECLARATION ( UINTN, ShellCommandLineGetCount, (IN CONST LIST_ENTRY *CheckPackage) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCommandLineCheckDuplicate, (IN CONST LIST_ENTRY *CheckPackage, OUT CHAR16 **Param) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellInitialize, () ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellIsDirectory, (IN CONST CHAR16 *DirName) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellIsFile, (IN CONST CHAR16 *Name) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellIsFileInPath, (IN CONST CHAR16 *Name) ); MOCK_FUNCTION_DECLARATION ( UINTN, ShellStrToUintn, (IN CONST CHAR16 *String) ); MOCK_FUNCTION_DECLARATION ( UINTN, ShellHexStrToUintn, (IN CONST CHAR16 *String) ); MOCK_FUNCTION_DECLARATION ( CHAR16 *, StrnCatGrow, (IN OUT CHAR16 **Destination, IN OUT UINTN *CurrentSize, IN CONST CHAR16 *Source, IN UINTN Count) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellCopySearchAndReplace, (IN CONST CHAR16 *SourceString, IN OUT CHAR16 *NewString, IN UINTN NewSize, IN CONST CHAR16 *FindTarget, IN CONST CHAR16 *ReplaceWith, IN CONST BOOLEAN SkipPreCarrot, IN CONST BOOLEAN ParameterReplacing) ); MOCK_FUNCTION_DECLARATION ( BOOLEAN, ShellIsHexaDecimalDigitCharacter, (IN CHAR16 Char) ); MOCK_FUNCTION_DECLARATION ( BOOLEAN, ShellIsDecimalDigitCharacter, (IN CHAR16 Char) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellPromptForResponse, (IN SHELL_PROMPT_REQUEST_TYPE Type, IN CHAR16 *Prompt OPTIONAL, IN OUT VOID **Response OPTIONAL) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellPromptForResponseHii, (IN SHELL_PROMPT_REQUEST_TYPE Type, IN CONST EFI_STRING_ID HiiFormatStringId, IN CONST EFI_HII_HANDLE HiiFormatHandle, IN OUT VOID **Response) ); MOCK_FUNCTION_DECLARATION ( BOOLEAN, ShellIsHexOrDecimalNumber, (IN CONST CHAR16 *String, IN CONST BOOLEAN ForceHex, IN CONST BOOLEAN StopAtSpace) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellConvertStringToUint64, (IN CONST CHAR16 *String, OUT UINT64 *Value, IN CONST BOOLEAN ForceHex, IN CONST BOOLEAN StopAtSpace) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellFileExists, (IN CONST CHAR16 *Name) ); MOCK_FUNCTION_DECLARATION ( CHAR16 *, ShellFileHandleReturnLine, (IN SHELL_FILE_HANDLE Handle, IN OUT BOOLEAN *Ascii) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellFileHandleReadLine, (IN SHELL_FILE_HANDLE Handle, IN OUT CHAR16 *Buffer, IN OUT UINTN *Size, IN BOOLEAN Truncate, IN OUT BOOLEAN *Ascii) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellDeleteFileByName, (IN CONST CHAR16 *FileName) ); MOCK_FUNCTION_DECLARATION ( EFI_STATUS, ShellPrintHelp, (IN CONST CHAR16 *CommandToGetHelpOn, IN CONST CHAR16 *SectionToGetHelpOn, IN BOOLEAN PrintCommandText) ); }; #endif