Updated code to be compliant with style guidelines

git-svn-id: http://google-breakpad.googlecode.com/svn/trunk@264 4c0a9323-5329-0410-9bdc-e9ce6186880e
This commit is contained in:
nealsid 2008-04-29 23:49:39 +00:00
parent 4c39c138fe
commit d906d0f7c9
9 changed files with 184 additions and 69 deletions

View file

@ -29,7 +29,7 @@
// breakpad_nlist.h // breakpad_nlist.h
// //
// This file is meant to provide a header for clients of the modified // This file is meant to provide a header for clients of the modified
// nlist function implemented to work on 64-bit. // nlist function implemented to work on 64-bit.
#ifndef CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__ #ifndef CLIENT_MAC_HANDLER_BREAKPAD_NLIST_H__

View file

@ -166,10 +166,10 @@ void* ReadTaskMemory(task_port_t target_task,
&local_length); &local_length);
if(kr != NULL) { if (kr != NULL) {
*kr = r; *kr = r;
} }
if (r == KERN_SUCCESS) { if (r == KERN_SUCCESS) {
result = malloc(length); result = malloc(length);
if (result != NULL) { if (result != NULL) {

View file

@ -275,7 +275,7 @@ bool MinidumpGenerator::WriteStackFromStartAddress(
size, size,
&kr); &kr);
if(stack_memory == NULL) { if (stack_memory == NULL) {
return false; return false;
} }

View file

@ -1,37 +1,62 @@
/* // Copyright (c) 2008, Google Inc.
* DynamicImagesTests.cpp // All rights reserved
* minidump_test // Redistribution and use in source and binary forms, with or without
* // modification, are permitted provided that the following conditions are
* Created by Neal Sidhwaney on 4/17/08. // met:
* Copyright 2008 Google Inc. All rights reserved. //
* // * Redistributions of source code must retain the above copyright
*/ // notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "DynamicImagesTests.h" //
#include "dynamic_images.h" // DynamicImagesTests.cpp
// minidump_test
//
// Created by Neal Sidhwaney on 4/17/08.
// Copyright 2008 Google Inc. All rights reserved.
//
DynamicImagesTests test2(TEST_INVOCATION(DynamicImagesTests, ReadTaskMemoryTest)); #include "client/mac/handler/testcases/DynamicImagesTests.h"
#include "client/mac/handler/dynamic_images.h"
DynamicImagesTests test2(TEST_INVOCATION(DynamicImagesTests,
ReadTaskMemoryTest));
DynamicImagesTests::DynamicImagesTests(TestInvocation *invocation) DynamicImagesTests::DynamicImagesTests(TestInvocation *invocation)
: TestCase(invocation) : TestCase(invocation) {
{
} }
DynamicImagesTests::~DynamicImagesTests() DynamicImagesTests::~DynamicImagesTests() {
{
} }
void DynamicImagesTests::ReadTaskMemoryTest() void DynamicImagesTests::ReadTaskMemoryTest() {
{
kern_return_t kr; kern_return_t kr;
// pick test2 as a symbol we know to be valid to read // pick test2 as a symbol we know to be valid to read
// anything will work, really // anything will work, really
void *addr = (void*)&test2; void *addr = reinterpret_cast<void*>(&test2);
void *buf; void *buf;
fprintf(stderr, "reading 0x%p\n",addr);
fprintf(stderr, "reading 0x%p\n", addr);
buf = google_breakpad::ReadTaskMemory(mach_task_self(), buf = google_breakpad::ReadTaskMemory(mach_task_self(),
addr, addr,
getpagesize(), getpagesize(),
@ -41,8 +66,7 @@ void DynamicImagesTests::ReadTaskMemoryTest()
CPTAssert(buf != NULL); CPTAssert(buf != NULL);
CPTAssert(0 == memcmp(buf,(const void*)addr,getpagesize())); CPTAssert(0 == memcmp(buf, (const void*)addr, getpagesize()));
free(buf); free(buf);
} }

View file

@ -1,19 +1,51 @@
/* // Copyright (c) 2008, Google Inc.
* DynamicImagesTests.h // All rights reserved
* minidump_test // Redistribution and use in source and binary forms, with or without
* // modification, are permitted provided that the following conditions are
* Created by Neal Sidhwaney on 4/17/08. // met:
* Copyright 2008 Google Inc. All rights reserved. //
* // * Redistributions of source code must retain the above copyright
*/ // notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// DynamicImagesTests.h
// minidump_test
//
// Created by Neal Sidhwaney on 4/17/08.
// Copyright 2008 Google Inc. All rights reserved.
//
//
#ifndef _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__
#define _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__
#include <CPlusTest/CPlusTest.h> #include <CPlusTest/CPlusTest.h>
class DynamicImagesTests : public TestCase { class DynamicImagesTests : public TestCase {
public: public:
DynamicImagesTests(TestInvocation* invocation); explicit DynamicImagesTests(TestInvocation* invocation);
virtual ~DynamicImagesTests(); virtual ~DynamicImagesTests();
void ReadTaskMemoryTest(); void ReadTaskMemoryTest();
}; };
#endif /* _CLIENT_MAC_HANDLER_TESTCASES_DYNAMICIMAGESTESTS_H__ */

View file

@ -1,15 +1,42 @@
/* // Copyright (c) 2008, Google Inc.
* breakpad_nlist_test.cc // All rights reserved
* minidump_test // Redistribution and use in source and binary forms, with or without
* // modification, are permitted provided that the following conditions are
* Created by Neal Sidhwaney on 4/13/08. // met:
* Copyright 2008 Google Inc. All rights reserved. //
* // * Redistributions of source code must retain the above copyright
*/ // notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "breakpad_nlist_test.h" //
// breakpad_nlist_test.cc
// minidump_test
//
// Created by Neal Sidhwaney on 4/13/08.
// Copyright 2008 Google Inc. All rights reserved.
//
#include "client/mac/handler/testcases/breakpad_nlist_test.h"
#include <mach-o/nlist.h> #include <mach-o/nlist.h>
#include "breakpad_nlist_64.h" #include "client/mac/handler/breakpad_nlist_64.h"
BreakpadNlistTest test1(TEST_INVOCATION(BreakpadNlistTest, CompareToNM)); BreakpadNlistTest test1(TEST_INVOCATION(BreakpadNlistTest, CompareToNM));
@ -28,13 +55,13 @@ void BreakpadNlistTest::CompareToNM() {
system("/usr/bin/nm -arch ppc64 /usr/lib/dyld > /tmp/dyld-namelist.txt"); system("/usr/bin/nm -arch ppc64 /usr/lib/dyld > /tmp/dyld-namelist.txt");
#endif #endif
FILE *fd = fopen("/tmp/dyld-namelist.txt","rt"); FILE *fd = fopen("/tmp/dyld-namelist.txt", "rt");
char oneNMAddr[30]; char oneNMAddr[30];
char symbolType; char symbolType;
char symbolName[500]; char symbolName[500];
while(!feof(fd)) { while (!feof(fd)) {
fscanf(fd,"%s %c %s",oneNMAddr, &symbolType, symbolName); fscanf(fd, "%s %c %s", oneNMAddr, &symbolType, symbolName);
breakpad_nlist symbolList[2]; breakpad_nlist symbolList[2];
breakpad_nlist &list = symbolList[0]; breakpad_nlist &list = symbolList[0];
@ -44,7 +71,7 @@ void BreakpadNlistTest::CompareToNM() {
symbolNames[1] = "\0"; symbolNames[1] = "\0";
breakpad_nlist_64("/usr/lib/dyld",&list, symbolNames); breakpad_nlist_64("/usr/lib/dyld",&list, symbolNames);
uint64_t nmAddr = strtol(oneNMAddr,NULL,16); uint64_t nmAddr = strtol(oneNMAddr,NULL,16);
if(!IsSymbolMoreThanOnceInDyld(symbolName)) { if (!IsSymbolMoreThanOnceInDyld(symbolName)) {
CPTAssert(nmAddr == symbolList[0].n_value); CPTAssert(nmAddr == symbolList[0].n_value);
} }
} }
@ -53,7 +80,7 @@ void BreakpadNlistTest::CompareToNM() {
} }
bool BreakpadNlistTest::IsSymbolMoreThanOnceInDyld(const char *symbolName) { bool BreakpadNlistTest::IsSymbolMoreThanOnceInDyld(const char *symbolName) {
//These are the symbols that occur more than once when nm dumps // These are the symbols that occur more than once when nm dumps
// the symbol table of /usr/lib/dyld. Our nlist program returns // the symbol table of /usr/lib/dyld. Our nlist program returns
// the first address because it's doing a search so we need to exclude // the first address because it's doing a search so we need to exclude
// these from causing the test to fail // these from causing the test to fail
@ -68,14 +95,12 @@ bool BreakpadNlistTest::IsSymbolMoreThanOnceInDyld(const char *symbolName) {
bool found = false; bool found = false;
for(int i = 0; multipleSymbols[i][0]; i++) { for (int i = 0; multipleSymbols[i][0]; i++) {
if(!strcmp(multipleSymbols[i],symbolName)) { if (!strcmp(multipleSymbols[i], symbolName)) {
found = true; found = true;
break; break;
} }
} }
return found; return found;
} }

View file

@ -1,16 +1,48 @@
/* // Copyright (c) 2008, Google Inc.
* breakpad_nlist_test.h // All rights reserved
* minidump_test // Redistribution and use in source and binary forms, with or without
* // modification, are permitted provided that the following conditions are
* Created by Neal Sidhwaney on 4/13/08. // met:
* Copyright 2008 Google Inc. All rights reserved. //
* // * Redistributions of source code must retain the above copyright
*/ // notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google Inc. nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
//
// breakpad_nlist_test.h
// minidump_test
//
// Created by Neal Sidhwaney on 4/13/08.
// Copyright 2008 Google Inc. All rights reserved.
//
//
#ifndef CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__
#define CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__
#include <CPlusTest/CPlusTest.h> #include <CPlusTest/CPlusTest.h>
class BreakpadNlistTest : public TestCase { class BreakpadNlistTest : public TestCase {
private:
private:
// nm dumps multiple addresses for the same symbol in // nm dumps multiple addresses for the same symbol in
// /usr/lib/dyld. So we track those so we don't report failures // /usr/lib/dyld. So we track those so we don't report failures
@ -18,8 +50,8 @@ private:
// for the duplicate symbols. // for the duplicate symbols.
bool IsSymbolMoreThanOnceInDyld(const char *symbolName); bool IsSymbolMoreThanOnceInDyld(const char *symbolName);
public: public:
BreakpadNlistTest(TestInvocation* invocation); explicit BreakpadNlistTest(TestInvocation* invocation);
virtual ~BreakpadNlistTest(); virtual ~BreakpadNlistTest();
@ -27,3 +59,5 @@ public:
output of every symbol to what our nlist implementation returns */ output of every symbol to what our nlist implementation returns */
void CompareToNM(); void CompareToNM();
}; };
#endif /* CLIENT_MAC_HANDLER_TESTCASES_BREAKPAD_NLIST_TEST_H__*/