Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1344)

Unified Diff: third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc

Issue 2705373005: Revert of Update Crashpad to 6da9708e7cc93e2e1772439d51646e47583cb225 (Closed)
Patch Set: Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
diff --git a/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc b/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
index 8999abe0661979655e1980a97f2aed01c4aa932e..730c2b799a64482ab228c24f6676e80471f55bad 100644
--- a/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
+++ b/third_party/crashpad/crashpad/minidump/test/minidump_context_test_util.cc
@@ -23,7 +23,6 @@
#include "gtest/gtest.h"
#include "snapshot/cpu_context.h"
#include "snapshot/test/test_cpu_context.h"
-#include "test/hex_string.h"
namespace crashpad {
namespace test {
@@ -57,7 +56,6 @@ void InitializeMinidumpContextX86(MinidumpContextX86* context, uint32_t seed) {
context->ss = value++ & 0xffff;
InitializeCPUContextX86Fxsave(&context->fxsave, &value);
- CPUContextX86::FxsaveToFsave(context->fxsave, &context->fsave);
context->dr0 = value++;
context->dr1 = value++;
@@ -67,6 +65,30 @@ void InitializeMinidumpContextX86(MinidumpContextX86* context, uint32_t seed) {
context->dr6 = value++;
context->dr7 = value++;
+ // Copy the values that are aliased between the fxsave area
+ // (context->extended_registers) and the floating-point save area
+ // (context->float_save).
+ context->float_save.control_word = context->fxsave.fcw;
+ context->float_save.status_word = context->fxsave.fsw;
+ context->float_save.tag_word = CPUContextX86::FxsaveToFsaveTagWord(
+ context->fxsave.fsw, context->fxsave.ftw, context->fxsave.st_mm);
+ context->float_save.error_offset = context->fxsave.fpu_ip;
+ context->float_save.error_selector = context->fxsave.fpu_cs;
+ context->float_save.data_offset = context->fxsave.fpu_dp;
+ context->float_save.data_selector = context->fxsave.fpu_ds;
+ for (size_t st_mm_index = 0;
+ st_mm_index < arraysize(context->fxsave.st_mm);
+ ++st_mm_index) {
+ for (size_t byte = 0;
+ byte < arraysize(context->fxsave.st_mm[st_mm_index].st);
+ ++byte) {
+ size_t st_index =
+ st_mm_index * arraysize(context->fxsave.st_mm[st_mm_index].st) + byte;
+ context->float_save.register_area[st_index] =
+ context->fxsave.st_mm[st_mm_index].st[byte];
+ }
+ }
+
// Set this field last, because it has no analogue in CPUContextX86.
context->float_save.spare_0 = value++;
}
@@ -166,31 +188,37 @@ void ExpectMinidumpContextFxsave(const FxsaveType* expected,
st_mm_index < arraysize(expected->st_mm);
++st_mm_index) {
SCOPED_TRACE(base::StringPrintf("st_mm_index %" PRIuS, st_mm_index));
- EXPECT_EQ(BytesToHexString(expected->st_mm[st_mm_index].st,
- arraysize(expected->st_mm[st_mm_index].st)),
- BytesToHexString(observed->st_mm[st_mm_index].st,
- arraysize(observed->st_mm[st_mm_index].st)));
- EXPECT_EQ(
- BytesToHexString(expected->st_mm[st_mm_index].st_reserved,
- arraysize(expected->st_mm[st_mm_index].st_reserved)),
- BytesToHexString(observed->st_mm[st_mm_index].st_reserved,
- arraysize(observed->st_mm[st_mm_index].st_reserved)));
+ for (size_t byte = 0;
+ byte < arraysize(expected->st_mm[st_mm_index].st);
+ ++byte) {
+ EXPECT_EQ(expected->st_mm[st_mm_index].st[byte],
+ observed->st_mm[st_mm_index].st[byte]) << "byte " << byte;
+ }
+ for (size_t byte = 0;
+ byte < arraysize(expected->st_mm[st_mm_index].st_reserved);
+ ++byte) {
+ EXPECT_EQ(expected->st_mm[st_mm_index].st_reserved[byte],
+ observed->st_mm[st_mm_index].st_reserved[byte])
+ << "byte " << byte;
+ }
}
for (size_t xmm_index = 0;
xmm_index < arraysize(expected->xmm);
++xmm_index) {
- EXPECT_EQ(BytesToHexString(expected->xmm[xmm_index],
- arraysize(expected->xmm[xmm_index])),
- BytesToHexString(observed->xmm[xmm_index],
- arraysize(observed->xmm[xmm_index])))
- << "xmm_index " << xmm_index;
+ SCOPED_TRACE(base::StringPrintf("xmm_index %" PRIuS, xmm_index));
+ for (size_t byte = 0; byte < arraysize(expected->xmm[xmm_index]); ++byte) {
+ EXPECT_EQ(expected->xmm[xmm_index][byte], observed->xmm[xmm_index][byte])
+ << "byte " << byte;
+ }
+ }
+ for (size_t byte = 0; byte < arraysize(expected->reserved_4); ++byte) {
+ EXPECT_EQ(expected->reserved_4[byte], observed->reserved_4[byte])
+ << "byte " << byte;
+ }
+ for (size_t byte = 0; byte < arraysize(expected->available); ++byte) {
+ EXPECT_EQ(expected->available[byte], observed->available[byte])
+ << "byte " << byte;
}
- EXPECT_EQ(
- BytesToHexString(expected->reserved_4, arraysize(expected->reserved_4)),
- BytesToHexString(observed->reserved_4, arraysize(observed->reserved_4)));
- EXPECT_EQ(
- BytesToHexString(expected->available, arraysize(expected->available)),
- BytesToHexString(observed->available, arraysize(observed->available)));
}
} // namespace
@@ -208,19 +236,22 @@ void ExpectMinidumpContextX86(
EXPECT_EQ(expected.dr6, observed->dr6);
EXPECT_EQ(expected.dr7, observed->dr7);
- EXPECT_EQ(expected.fsave.fcw, observed->fsave.fcw);
- EXPECT_EQ(expected.fsave.fsw, observed->fsave.fsw);
- EXPECT_EQ(expected.fsave.ftw, observed->fsave.ftw);
- EXPECT_EQ(expected.fsave.fpu_ip, observed->fsave.fpu_ip);
- EXPECT_EQ(expected.fsave.fpu_cs, observed->fsave.fpu_cs);
- EXPECT_EQ(expected.fsave.fpu_dp, observed->fsave.fpu_dp);
- EXPECT_EQ(expected.fsave.fpu_ds, observed->fsave.fpu_ds);
- for (size_t index = 0; index < arraysize(expected.fsave.st); ++index) {
- EXPECT_EQ(BytesToHexString(expected.fsave.st[index],
- arraysize(expected.fsave.st[index])),
- BytesToHexString(observed->fsave.st[index],
- arraysize(observed->fsave.st[index])))
- << "index " << index;
+ EXPECT_EQ(expected.float_save.control_word,
+ observed->float_save.control_word);
+ EXPECT_EQ(expected.float_save.status_word, observed->float_save.status_word);
+ EXPECT_EQ(expected.float_save.tag_word, observed->float_save.tag_word);
+ EXPECT_EQ(expected.float_save.error_offset,
+ observed->float_save.error_offset);
+ EXPECT_EQ(expected.float_save.error_selector,
+ observed->float_save.error_selector);
+ EXPECT_EQ(expected.float_save.data_offset, observed->float_save.data_offset);
+ EXPECT_EQ(expected.float_save.data_selector,
+ observed->float_save.data_selector);
+ for (size_t index = 0;
+ index < arraysize(expected.float_save.register_area);
+ ++index) {
+ EXPECT_EQ(expected.float_save.register_area[index],
+ observed->float_save.register_area[index]) << "index " << index;
}
if (snapshot) {
EXPECT_EQ(0u, observed->float_save.spare_0);

Powered by Google App Engine
This is Rietveld 408576698