xref: /aosp_15_r20/external/google-breakpad/src/client/mac/handler/testcases/dwarftests.mm (revision 9712c20fc9bbfbac4935993a2ca0b3958c5adad2)
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
60