From 040e50ec2859c1de70cd8e9f957474321774f293 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Tue, 11 Feb 2025 13:53:50 -0800 Subject: Rewrite Prereq tests after hardening and bypassing .NET GUI errors --- .../PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) (limited to 'src/test/burn/TestData/PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp') diff --git a/src/test/burn/TestData/PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp b/src/test/burn/TestData/PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp index 1fa71bc2..b8172e6b 100644 --- a/src/test/burn/TestData/PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp +++ b/src/test/burn/TestData/PrereqBaTests/ReplaceConfig/ReplaceConfig.cpp @@ -7,27 +7,31 @@ int __cdecl wmain( __in LPWSTR argv[] ) { + DWORD er = ERROR_SUCCESS; HRESULT hr = S_OK; - DWORD dwExitCode = 0; LPCWSTR wzDestinationFile = argc > 1 ? argv[1] : NULL; LPCWSTR wzGoodFile = argc > 2 ? argv[2] : NULL; - LPCWSTR wzBadFile = argc > 3 ? argv[3] : NULL; + LPCWSTR wzBackupFile = argc > 3 ? argv[3] : NULL; - if (argc != 4) + if (!wzDestinationFile || !*wzDestinationFile || !wzGoodFile || !*wzGoodFile) { ExitWithRootFailure(hr, E_INVALIDARG, "Invalid args"); } - if (!::MoveFileW(wzDestinationFile, wzBadFile)) + if (wzBackupFile && *wzBackupFile && !::CopyFileW(wzDestinationFile, wzBackupFile, FALSE)) { - ExitWithLastError(hr, "Failed to move bad file"); + er = ::GetLastError(); + if (ERROR_PATH_NOT_FOUND != er && ERROR_FILE_NOT_FOUND != er) + { + ExitOnWin32Error(er, hr, "Failed to copy to backup file"); + } } - if (!::MoveFileW(wzGoodFile, wzDestinationFile)) + if (!::CopyFileW(wzGoodFile, wzDestinationFile, FALSE)) { - ExitWithLastError(hr, "Failed to move good file"); + ExitWithLastError(hr, "Failed to copy in good file"); } LExit: - return FAILED(hr) ? (int)hr : (int)dwExitCode; + return FAILED(hr) ? (int)hr : (int)0; } -- cgit v1.2.3-55-g6feb