| Index: syzygy/agent/common/stack_walker_unittest.cc
|
| diff --git a/syzygy/agent/common/stack_walker_x86_unittest.cc b/syzygy/agent/common/stack_walker_unittest.cc
|
| similarity index 90%
|
| rename from syzygy/agent/common/stack_walker_x86_unittest.cc
|
| rename to syzygy/agent/common/stack_walker_unittest.cc
|
| index ed099a71ab24b77a63be77e1f97808ff67b86fa3..31e567ad36e6e6a0993e77f511847efeafd9a505 100644
|
| --- a/syzygy/agent/common/stack_walker_x86_unittest.cc
|
| +++ b/syzygy/agent/common/stack_walker_unittest.cc
|
| @@ -12,7 +12,7 @@
|
| // See the License for the specific language governing permissions and
|
| // limitations under the License.
|
|
|
| -#include "syzygy/agent/common/stack_walker_x86.h"
|
| +#include "syzygy/agent/common/stack_walker.h"
|
|
|
| #include <windows.h>
|
|
|
| @@ -22,17 +22,18 @@
|
| namespace agent {
|
| namespace common {
|
|
|
| +
|
| namespace {
|
|
|
| -class StackWalkerX86Test : public testing::Test {
|
| +class StackWalkerTest : public testing::Test {
|
| public:
|
| - StackWalkerX86Test()
|
| + StackWalkerTest()
|
| : dummy_ebp_(nullptr), dummy_esp_(nullptr), dummy_ret_(0u) {
|
| ::memset(frames_, 0, sizeof(frames_));
|
| ::memset(frames2_, 0, sizeof(frames2_));
|
| ::memset(dummy_stack_, 0, sizeof(dummy_stack_));
|
| }
|
| -
|
| +#ifndef _WIN64
|
| static const uintptr_t kBaseRet = 0x1000000u;
|
|
|
| void Push(uintptr_t value) {
|
| @@ -134,6 +135,8 @@ class StackWalkerX86Test : public testing::Test {
|
| PopEbp();
|
| }
|
|
|
| +#endif // !defined _WIN64
|
| +
|
| static const size_t kMaxFrames = 100;
|
| void* frames_[kMaxFrames];
|
| void* frames2_[kMaxFrames];
|
| @@ -146,7 +149,9 @@ class StackWalkerX86Test : public testing::Test {
|
|
|
| } // namespace
|
|
|
| -TEST_F(StackWalkerX86Test, ValidWalk) {
|
| +#ifndef _WIN64
|
| +
|
| +TEST_F(StackWalkerTest, ValidWalk) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
| BuildValidFrame(2);
|
| @@ -157,7 +162,7 @@ TEST_F(StackWalkerX86Test, ValidWalk) {
|
| ExpectSuccessfulWalk(2, 2);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopsWhenFrameTooSmall) {
|
| +TEST_F(StackWalkerTest, WalkStopsWhenFrameTooSmall) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -173,7 +178,7 @@ TEST_F(StackWalkerX86Test, WalkStopsWhenFrameTooSmall) {
|
| ExpectSuccessfulWalk(2, 1);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopsAtNonIncreasingBasePointer) {
|
| +TEST_F(StackWalkerTest, WalkStopsAtNonIncreasingBasePointer) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -188,7 +193,7 @@ TEST_F(StackWalkerX86Test, WalkStopsAtNonIncreasingBasePointer) {
|
| ExpectSuccessfulWalk(3, 1);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopsAtUnalignedBasePointer) {
|
| +TEST_F(StackWalkerTest, WalkStopsAtUnalignedBasePointer) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -203,7 +208,7 @@ TEST_F(StackWalkerX86Test, WalkStopsAtUnalignedBasePointer) {
|
| ExpectSuccessfulWalk(3, 1);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopsAtInvalidReturnAddress) {
|
| +TEST_F(StackWalkerTest, WalkStopsAtInvalidReturnAddress) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -217,7 +222,7 @@ TEST_F(StackWalkerX86Test, WalkStopsAtInvalidReturnAddress) {
|
| ExpectSuccessfulWalk(2, 0);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopsAtInvalidBasePointer) {
|
| +TEST_F(StackWalkerTest, WalkStopsAtInvalidBasePointer) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -232,7 +237,7 @@ TEST_F(StackWalkerX86Test, WalkStopsAtInvalidBasePointer) {
|
| ExpectSuccessfulWalk(3, 1);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, WalkStopAtOverflowingBasePointer) {
|
| +TEST_F(StackWalkerTest, WalkStopAtOverflowingBasePointer) {
|
| BuildValidFrame(0);
|
| ExpectSuccessfulWalk(2, 0);
|
|
|
| @@ -247,11 +252,13 @@ TEST_F(StackWalkerX86Test, WalkStopAtOverflowingBasePointer) {
|
| ExpectSuccessfulWalk(3, 1);
|
| }
|
|
|
| -TEST_F(StackWalkerX86Test, CompareToCaptureStackBackTrace) {
|
| +#endif // !defined _WIN64
|
| +
|
| +TEST_F(StackWalkerTest, CompareToCaptureStackBackTrace) {
|
| // Use the OS stack walker to get the number of frames. Skip the top frame
|
| // (in this function) as WalkStack and CaptureStackBackTrace won't have the
|
| // same return address.
|
| - size_t num_frames =
|
| + uint32_t num_frames =
|
| ::CaptureStackBackTrace(1, kMaxFrames, frames_, nullptr);
|
|
|
| while (num_frames > 0) {
|
|
|