blob: 5a98cf969126da09811fb6a2ca6ec44388a3b277 [file] [log] [blame]
/** @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 <Library/GoogleTestLib.h>
#include <Library/FunctionMockLib.h>
extern "C" {
#include <Uefi.h>
#include <Library/ShellLib.h>
}
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