Commit 74acf004 authored by Angie Chiang's avatar Angie Chiang Committed by James Zern

register_state_check: simplify Check() methods

- make Check() void as the EXPECT's are sufficient to document failure

cumulatively this has the effect of avoiding reporting incorrect Check()
failures due to earlier test failures.

This CL is ported over from
f8c27d164 register_state_check: simplify Check() methods

Change-Id: I1b65aa769c69c2a52b2e0b363f1c4432965ee89f
parent da9e4afe
......@@ -49,7 +49,7 @@ namespace libaom_test {
class RegisterStateCheck {
public:
RegisterStateCheck() { initialized_ = StoreRegisters(&pre_context_); }
~RegisterStateCheck() { EXPECT_TRUE(Check()); }
~RegisterStateCheck() { Check(); }
private:
static bool StoreRegisters(CONTEXT *const context) {
......@@ -62,10 +62,10 @@ class RegisterStateCheck {
}
// Compares the register state. Returns true if the states match.
bool Check() const {
if (!initialized_) return false;
void Check() const {
ASSERT_TRUE(initialized_);
CONTEXT post_context;
if (!StoreRegisters(&post_context)) return false;
ASSERT_TRUE(StoreRegisters(&post_context));
const M128A *xmm_pre = &pre_context_.Xmm6;
const M128A *xmm_post = &post_context.Xmm6;
......@@ -74,7 +74,6 @@ class RegisterStateCheck {
++xmm_pre;
++xmm_post;
}
return !testing::Test::HasNonfatalFailure();
}
bool initialized_;
......@@ -105,7 +104,7 @@ namespace libaom_test {
class RegisterStateCheck {
public:
RegisterStateCheck() { initialized_ = StoreRegisters(pre_store_); }
~RegisterStateCheck() { EXPECT_TRUE(Check()); }
~RegisterStateCheck() { Check(); }
private:
static bool StoreRegisters(int64_t store[8]) {
......@@ -114,15 +113,14 @@ class RegisterStateCheck {
}
// Compares the register state. Returns true if the states match.
bool Check() const {
if (!initialized_) return false;
void Check() const {
ASSERT_TRUE(initialized_);
int64_t post_store[8];
aom_push_neon(post_store);
for (int i = 0; i < 8; ++i) {
EXPECT_EQ(pre_store_[i], post_store[i])
<< "d" << i + 8 << " has been modified";
}
return !testing::Test::HasNonfatalFailure();
}
bool initialized_;
......@@ -159,12 +157,12 @@ class RegisterStateCheckMMX {
RegisterStateCheckMMX() {
__asm__ volatile("fstenv %0" : "=rm"(pre_fpu_env_));
}
~RegisterStateCheckMMX() { EXPECT_TRUE(Check()); }
~RegisterStateCheckMMX() { Check(); }
private:
// Checks the FPU tag word pre/post execution, returning false if not cleared
// to 0xffff.
bool Check() const {
void Check() const {
EXPECT_EQ(0xffff, pre_fpu_env_[4])
<< "FPU was in an inconsistent state prior to call";
......@@ -172,7 +170,6 @@ class RegisterStateCheckMMX {
__asm__ volatile("fstenv %0" : "=rm"(post_fpu_env));
EXPECT_EQ(0xffff, post_fpu_env[4])
<< "FPU was left in an inconsistent state after call";
return !testing::Test::HasNonfatalFailure();
}
uint16_t pre_fpu_env_[14];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment