diff options
author | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-05 20:59:12 +0000 |
---|---|---|
committer | kuchhal@chromium.org <kuchhal@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2009-08-05 20:59:12 +0000 |
commit | c256c0b0e7a2ca6401528b33b325cb19a981762b (patch) | |
tree | 4f21b432be4673c51f0dc6b6e1b3264c075504b4 /chrome/installer/setup/setup_util.cc | |
parent | ba15f7a45453eaf4f4c928d0c8a572b48d6f7541 (diff) | |
download | chromium_src-c256c0b0e7a2ca6401528b33b325cb19a981762b.zip chromium_src-c256c0b0e7a2ca6401528b33b325cb19a981762b.tar.gz chromium_src-c256c0b0e7a2ca6401528b33b325cb19a981762b.tar.bz2 |
Add unit tests for unpacking and patching methods.
BUG=12849
TEST=none
Review URL: http://codereview.chromium.org/160623
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@22535 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/installer/setup/setup_util.cc')
-rw-r--r-- | chrome/installer/setup/setup_util.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/chrome/installer/setup/setup_util.cc b/chrome/installer/setup/setup_util.cc index 985d704..b90ec9c 100644 --- a/chrome/installer/setup/setup_util.cc +++ b/chrome/installer/setup/setup_util.cc @@ -10,7 +10,28 @@ #include "base/logging.h" #include "chrome/installer/util/master_preferences.h" #include "chrome/installer/util/util_constants.h" +#include "courgette/courgette.h" +#include "third_party/bspatch/mbspatch.h" + +int setup_util::ApplyDiffPatch(const std::wstring& src, + const std::wstring& patch, + const std::wstring& dest) { + LOG(INFO) << "Applying patch " << patch + << " to file " << src + << " and generating file " << dest; + + // Try Courgette first. Courgette checks the patch file first and fails + // quickly if the patch file does not have a valid Courgette header. + courgette::Status patch_status = + courgette::ApplyEnsemblePatch(src.c_str(), patch.c_str(), dest.c_str()); + if (patch_status == courgette::C_OK) { + return 0; + } else { + LOG(INFO) << "Failed to apply patch " << patch << " using courgette."; + } + return ApplyBinaryPatch(src.c_str(), patch.c_str(), dest.c_str()); +} DictionaryValue* setup_util::GetInstallPreferences( const CommandLine& cmd_line) { |