18 Commits

Author SHA1 Message Date
Mark Mentovai
9c76cc60db Pull test utilities from MinidumpMemoryWriter’s test out into their own file.
These utilities are also useful to MinidumpThreadWriter’s test.

TEST=minidump_test MinidumpMemoryWriter.*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/639513002
2014-10-07 17:58:43 -04:00
Mark Mentovai
b677bc4ec0 Simplify MinidumpModuleWriter’s module name requirement implementation.
TEST=minidump_test MinidumpModuleWriter*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/633163002
2014-10-07 17:31:43 -04:00
Mark Mentovai
6d1af6922f Don’t use using directives (“using namespace”) in tests.
The contents of tests are moved into the namespace
crashpad::test::(anonymous namespace).

https://google-styleguide.googlecode.com/svn/trunk/cppguide.html#Namespaces

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/635883002
2014-10-07 17:28:50 -04:00
Mark Mentovai
e74a272ab5 Add MinidumpContextWriter test.
TEST=minidump_test MinidumpContextWriter.*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/628153004
2014-10-07 17:27:11 -04:00
Scott Graham
d198c50abe Convert COMPILE_ASSERT to static_assert
(Perhaps I should have just left it in mini_chromium, but anyway.)

R=mark@chromium.org
BUG=crashpad:1

Review URL: https://codereview.chromium.org/615923004
2014-10-01 12:29:01 -07:00
Mark Mentovai
5906513e30 MinidumpContext: fix some problems in AMD64 (x86_64) context enums.
This fixes a sloppy compliation error: “Redefinition of enumerator
'kMinidumpContextX86Xstate'”. It also fixes CONTEXT_FULL, which should
contain floating-point registers but not segment registers unlike the
its 32-bit x86 equivalent.

Some comments are revised to provide better, um, context.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/620663002
2014-09-30 17:22:35 -04:00
Mark Mentovai
cb2288d174 Add MinidumpContext (X86 and AMD64 variants) and their writers.
These are fairly simple classes and it’s not valuable to test them
individually. They will be tested as part of MinidumpThreadWriter and
MinidumpExceptionWriter.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/593583004
2014-09-24 13:34:45 -04:00
Mark Mentovai
9168ba47ac Fix minidump_module_writer_test 32-bit x86 build.
time_t is a typedef for long on Mac OS X. In 32-bit x86 (ILP32), long is
a signed 32-bit quantity, and its range does not contain the range of
uint32_t, used to store times in time_t fashion in minidump files. A
cast is necessary to make these EXPECT_* macros do the right thing. This
is not a problem in x86_64 (LP64) where long is a signed 64-bit
quantity, which does contain the range of uint32_t.

clang’s error was “error: comparison of integers of different signs:
'const long' and 'const unsigned int' [-Werror,-Wsign-compare]”

BUG=
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/491023005
2014-08-20 18:32:06 -04:00
Mark Mentovai
7090b209ad Use the gtest_main target for test executables.
There’s no need to build a separate copy of gtest_main.cc for each test
executable.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/465363004
2014-08-13 15:28:59 -07:00
Mark Mentovai
e0a79bec5e MinidumpMemoryWriter test: Don’t suffix uint64_t constants.
It’s not necessary.

TEST=minidump_test MinidumpMemoryWriter
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/467323003
2014-08-13 15:27:33 -07:00
Mark Mentovai
0ba9d2b065 Add MinidumpModuleWriter, MinidumpModuleListWriter, related classes, and
their test.

TEST=minidump_test MinidumpModuleTest
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/460933004
2014-08-13 15:26:21 -07:00
Mark Mentovai
3b2c6d32f4 Add MinidumpMemoryWriter, MinidumpMemoryListWriter, and their test.
TEST=minidump_test MinidumpMemoryWriter
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/459973002
2014-08-12 10:26:40 -07:00
Mark Mentovai
c73a97d4e3 Add MinidumpMiscInfoWriter and its test.
TEST=minidump_test MinidumpMiscInfoWriter
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/454073002
2014-08-11 11:42:12 -07:00
Mark Mentovai
aa3adf2c5b Add MinidumpSystemInfoWriter and its test.
TEST=minidump_test MinidumpSystemInfoWriter
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/435243002
2014-08-07 14:58:26 -04:00
Mark Mentovai
859560f70d Add MinidumpFileWriter and its test.
MinidumpFileWriter writes the top-level object to a minidump file. This
consists of a MINIDUMP_HEADER and a list of MINIDUMP_DIRECTORY entries
that point to streams, which are second-level objects in minidump files.
This change also adds the base class for stream writers,
MinidumpStreamWriter.

TEST=minidump_test MinidumpFileWriter*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/432863006
2014-08-03 18:47:34 -04:00
Mark Mentovai
d2675ce50b Introduce MinidumpStringWriter and its test.
MinidumpStringWriter is responsible for writing variable-length UTF-16
(MINIDUMP_STRING) and UTF-8 (MinidumpUTF8String) strings to minidump
files.

This change depends on https://codereview.chromium.org/430003003/ and
https://codereview.chromium.org/435013002/.

TEST=minidump_test MinidumpStringWriter.*
R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/431363002
2014-08-01 14:44:57 -04:00
Mark Mentovai
5ba343ccf1 Add minidump_extensions.h, which defines Crashpad/Breakpad extensions to
the standard minidump format defined in dbghelp.h.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/435013002
2014-08-01 14:37:20 -04:00
Mark Mentovai
995012534e Introduce MinidumpWritable, its dependencies, and their tests.
MinidumpWritable is the base class for all minidump-writing operations.

R=rsesek@chromium.org

Review URL: https://codereview.chromium.org/432003005
2014-08-01 12:48:28 -04:00