summaryrefslogtreecommitdiffstats
path: root/courgette/courgette_tool.cc
Commit message (Collapse)AuthorAgeFilesLines
* Add -supported command line option to describe if a given file is supporteddgarrett@chromium.org2011-11-211-7/+51
| | | | | | | | | | | | and what type of executable it is, if it is. BUG=None TEST=None Review URL: http://codereview.chromium.org/8558009 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110993 0039d316-1c4b-4281-b951-d872f2087c98
* Switching all wstrings in courgette_tool to FilePaths.dgarrett@chromium.org2011-11-181-57/+35
| | | | | | | | | | | | | Presubmit checks now consider the presence of wstring to be an error, so switching all wstrings in courgette_tool to FilePath's as evanm had already called out in a TODO. BUG=chromiumos:22693 Review URL: http://codereview.chromium.org/8498032 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@110611 0039d316-1c4b-4281-b951-d872f2087c98
* Start refactoring to reduce executable type knowledge.dgarrett@chromium.org2011-10-211-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This creates executable detection functions, a globally shared enum for describing an executable type, and reduces the number of classes and locations with executable specific knowledge. These changes, along with moving architecture specific classes into their own files should make it easier to produce special purpose clients that only contain the code required to apply their own form of patch. DisassemblerWin32EXE, ImagePE, CourgetteWin32X86PatchGenerator, and CourgetteWin32X86Patcher, and ensemble handling are all heavily affected here. This should have no effect on the behavior of the system yet, and is instead all prep-work. This is the same as an earlier CL, except that ParseHeader will now return an error for 64 bit PE executables, and resource only DLLs. This is because the detection factories depend on ParseHeader to decide if a given file is supported. BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/7920004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103879 0039d316-1c4b-4281-b951-d872f2087c98 Review URL: http://codereview.chromium.org/8344037 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106793 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 103879 - Start refactoring to reduce executable type knowledge.laforge@chromium.org2011-10-111-14/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | This creates executable detection functions, a globally shared enum for describing an executable type, and reduces the number of classes and locations with executable specific knowledge. These changes, along with moving architecture specific classes into their own files should make it easier to produce special purpose clients that only contain the code required to apply their own form of patch. DisassemblerWin32EXE, ImagePE, CourgetteWin32X86PatchGenerator, and CourgetteWin32X86Patcher, and ensemble handling are all heavily affected here. This should have no effect on the behavior of the system yet, and is instead all prep-work. BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/7920004 TBR=dgarrett@chromium.org Review URL: http://codereview.chromium.org/8234012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@104926 0039d316-1c4b-4281-b951-d872f2087c98
* Start refactoring to reduce executable type knowledge.dgarrett@chromium.org2011-10-041-13/+14
| | | | | | | | | | | | | | | | | | | | | | | | This creates executable detection functions, a globally shared enum for describing an executable type, and reduces the number of classes and locations with executable specific knowledge. These changes, along with moving architecture specific classes into their own files should make it easier to produce special purpose clients that only contain the code required to apply their own form of patch. DisassemblerWin32EXE, ImagePE, CourgetteWin32X86PatchGenerator, and CourgetteWin32X86Patcher, and ensemble handling are all heavily affected here. This should have no effect on the behavior of the system yet, and is instead all prep-work. BUG=None TEST=Unittests Review URL: http://codereview.chromium.org/7920004 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@103879 0039d316-1c4b-4281-b951-d872f2087c98
* Rename CommandLine::GetArgs(), update callers.msw@chromium.org2011-07-131-3/+4
| | | | | | | | | BUG=73195 TEST=none Review URL: http://codereview.chromium.org/7352006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@92448 0039d316-1c4b-4281-b951-d872f2087c98
* Make courgette compiler on clang and linux x64 buildersgrt@chromium.org2011-04-061-2/+4
| | | | | | | | | BUG=none TEST=none TBR=tommi Review URL: http://codereview.chromium.org/6802013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80667 0039d316-1c4b-4281-b951-d872f2087c98
* Switch out use of std::string and std::vector for large allocations for a ↵tommi@chromium.org2011-04-061-10/+29
| | | | | | | | | | | | | | | | | buffer class that doesn't throw exceptions. The new buffer class is pretty simple and relies on the MemoryAllocator class that I previously to back large allocations with mapped files when memory is scarce. That reduced the number of crashes quite a bit but we still crash on machines that are simply out of diskspace as well. So, the right thing to do is to expect and handle failures which is what this cl is all about. What we should see once this has landed is that crash dumps due to courgette running out of disk space should disappear from crash/ and instead we should see the number of users that run into this particular problem in dashboards. TEST=Courgette out-of-memory/out-of-diskspace errors should disappear from crash/ BUG=74777 Review URL: http://codereview.chromium.org/6677141 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@80648 0039d316-1c4b-4281-b951-d872f2087c98
* Improved memory usage while applying patch.sra@chromium.org2011-02-231-10/+42
| | | | | | | | | | | | | | | | | | | | | | | Reduced total size of allocations from 520MB to 318MB. The general technique is to allocate the correct size rather than grow into the correct size and overshoot. 1. Find file sizes and allocate buffers of that size for the input files. 2. Pre-allocate a buffer for the collected inputs for the final diff. 3. Calculate the size for (2) during compression and include it in the patch header. The courgette.exe command line tool now calls the same ApplyEnsemblePatch entry point that is called by the installer. This ensures measurements of courgette.exe are a better reflection of the installer. BUG=72459 Review URL: http://codereview.chromium.org/6546008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@75787 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-111-4/+6
| | | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70920 Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70977 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70920 - Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-101-6/+4
| | | | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Review URL: http://codereview.chromium.org/6070006 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/6099012 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70923 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-101-4/+6
| | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=70782 Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70920 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 70782 - Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-071-6/+4
| | | | | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Review URL: http://codereview.chromium.org/6070006 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/6100007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70783 0039d316-1c4b-4281-b951-d872f2087c98
* Made logging not look up --enable-dcheck from command lineakalin@chromium.org2011-01-071-4/+6
| | | | | | | | | | | | Made --enable-dcheck a parameter to InitLogging() and fixed up all callsites. BUG=62736 TEST=Manual Review URL: http://codereview.chromium.org/6070006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@70782 0039d316-1c4b-4281-b951-d872f2087c98
* Also build a 64-bit exe version of the 32-bit courgettebradnelson@google.com2010-12-211-1/+1
| | | | | | | | | | | | utility + library to support larger input sizes. BUG=63793 TEST=None Review URL: http://codereview.chromium.org/5096007 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@69779 0039d316-1c4b-4281-b951-d872f2087c98
* Call InitLogging() for courgette.akalin@chromium.org2010-11-161-0/+7
| | | | | | | | | | | BUG=None TEST=Manually Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=66208 Review URL: http://codereview.chromium.org/5038002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66236 0039d316-1c4b-4281-b951-d872f2087c98
* Revert 66208 - Call InitLogging() for courgette.akalin@chromium.org2010-11-161-6/+0
| | | | | | | | | | | | BUG=None TEST=Manually Review URL: http://codereview.chromium.org/5038002 TBR=akalin@chromium.org Review URL: http://codereview.chromium.org/5066001 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66218 0039d316-1c4b-4281-b951-d872f2087c98
* Call InitLogging() for courgette.akalin@chromium.org2010-11-161-0/+6
| | | | | | | | | BUG=None TEST=Manually Review URL: http://codereview.chromium.org/5038002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@66208 0039d316-1c4b-4281-b951-d872f2087c98
* Convert more callers of the integer/string functions to usingbrettw@chromium.org2010-07-311-8/+4
| | | | | | | | | | string_number_conversions.h TEST=it compiles BUG=none Review URL: http://codereview.chromium.org/3013046 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@54454 0039d316-1c4b-4281-b951-d872f2087c98
* Remove deprecated CommandLine::GetLooseValues(), rename to args().evan@chromium.org2010-07-211-1/+9
| | | | | | | | | | | | | | | It returned a wstring, when really we wanted the native encoded strings. Fixing the majority of callers actually simplified them in many cases because the callers wanted native strings too. Since I'm touching every caller, I gave it a more useful name. I'm not sure where "loose" came from but it never made sense to me. BUG=24672 Review URL: http://codereview.chromium.org/3028010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@53193 0039d316-1c4b-4281-b951-d872f2087c98
* Use GetSwitchValueASCII.tony@chromium.org2009-11-061-2/+2
| | | | | | | | | | | | BUG=24672 TEST=None Original patch by Thiago Farina <thiago.farina@gmail.com> at http://codereview.chromium.org/296004 Review URL: http://codereview.chromium.org/373013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@31269 0039d316-1c4b-4281-b951-d872f2087c98
* Use ASCII strings for switch names.evan@chromium.org2009-10-131-10/+10
| | | | | | Review URL: http://codereview.chromium.org/270062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@28779 0039d316-1c4b-4281-b951-d872f2087c98
* Coverity fixes to keep coverity quiet.sra@chromium.org2009-07-221-3/+4
| | | | | | | | | | | | | | | | | Only the first issue is remotely interesting. * Possibility (low) of using NULL SinkStream* courgette tool 'gen1a' command. * Added initializers for all class members to several constructors. * return 0 at end of from wmain. BUG=none TEST=existing Review URL: http://codereview.chromium.org/155820 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21253 0039d316-1c4b-4281-b951-d872f2087c98
* Code changes to get the code to compile under GCC.sra@google.com2009-07-181-3/+16
| | | | | | | | | | | | Courgette still only knows how to compress Windows x86 executables. But now you can compress them on linux. BUG=none TEST=none Review URL: http://codereview.chromium.org/149597 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21042 0039d316-1c4b-4281-b951-d872f2087c98
* Fix leaks found by Coverity Prevent.sra@chromium.org2009-05-301-1/+1
| | | | | | | | | BUG=none TEST=none Review URL: http://codereview.chromium.org/115947 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@17272 0039d316-1c4b-4281-b951-d872f2087c98
* Move Courgettesra@chromium.org2009-05-081-0/+404
from src\third_party\courgette to src\courgette and src\courgette\third_party Fixed #includes Added properties to ignore generated files: C:\c5\src>svn pg svn:ignore courgette courgette.xcodeproj courgette.sln courgette_fuzz.vcproj courgette_lib.vcproj courgette_minimal_tool.vcproj courgette_tool.vcproj courgette.vcproj courgette_unittests.vcproj SConstruct courgette_fuzz.scons courgette_lib.scons courgette_main.scons courgette_minimal_tool.scons courgette.scons courgette_tool.scons courgette_unittests.scons Review URL: http://codereview.chromium.org/115062 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@15692 0039d316-1c4b-4281-b951-d872f2087c98