/ src / client / mac / handler / testcases / dwarftests.mm
dwarftests.mm
 1  // Copyright 2008 Google LLC
 2  // Redistribution and use in source and binary forms, with or without
 3  // modification, are permitted provided that the following conditions are
 4  // met:
 5  //
 6  //     * Redistributions of source code must retain the above copyright
 7  // notice, this list of conditions and the following disclaimer.
 8  //     * Redistributions in binary form must reproduce the above
 9  // copyright notice, this list of conditions and the following disclaimer
10  // in the documentation and/or other materials provided with the
11  // distribution.
12  //     * Neither the name of Google LLC nor the names of its
13  // contributors may be used to endorse or promote products derived from
14  // this software without specific prior written permission.
15  //
16  // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
17  // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
18  // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
19  // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
20  // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
21  // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
22  // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
23  // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
24  // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25  // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26  // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27  
28  //
29  //  dwarftests.m
30  //  minidump_test
31  //
32  //  Created by Neal Sidhwaney on 9/24/08.
33  //  Copyright 2008 Google LLC
34  //
35  
36  #import "dwarftests.h"
37  #import "dump_syms.h"
38  
39  @implementation dwarftests
40  - (void) testDWARFSymbolFileGeneration {
41    NSString *inputBreakpadSymbolFile = @"testcases/testdata/dump_syms_i386_breakpad.sym";
42    NSString *outputBreakpadSymbolFile = @"/tmp/dump_syms_i386.breakpad";
43  
44    DumpSymbols *dump = [[DumpSymbols alloc] initWithContentsOfFile:@"testcases/testdata/dump_syms_dwarf_data"];
45  
46    STAssertNotNil(dump, @"DumpSymbols is nil");
47    [dump setArchitecture:@"i386"];
48    [dump writeSymbolFile:outputBreakpadSymbolFile];
49    
50    NSData *d = [[NSData alloc] initWithContentsOfFile:inputBreakpadSymbolFile];
51    STAssertNotNil(d, @"Input breakpad symbol file not found");
52    
53    NSData *d1 = [[NSData alloc] initWithContentsOfFile:outputBreakpadSymbolFile]; 
54    STAssertNotNil(d1, @"Output breakpad symbol file not found");
55  
56    STAssertTrue([d isEqualToData:d1],
57    @"Symbol files were not equal!",nil);
58  }
59  @end