mirror of
https://github.com/tianocore/edk2
synced 2026-08-27 00:23:19 -04:00
395 lines
9.1 KiB
C
395 lines
9.1 KiB
C
/** @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
|