~ubuntu-branches/ubuntu/raring/qtwebkit-source/raring-proposed

« back to all changes in this revision

Viewing changes to Tools/Scripts/webkitperl/run-leaks_unittest/run-leaks-report-v1.0.pl

  • Committer: Package Import Robot
  • Author(s): Jonathan Riddell
  • Date: 2013-02-18 14:24:18 UTC
  • Revision ID: package-import@ubuntu.com-20130218142418-eon0jmjg3nj438uy
Tags: upstream-2.3
ImportĀ upstreamĀ versionĀ 2.3

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#!/usr/bin/perl -w
 
2
 
 
3
# Copyright (C) 2011 Apple Inc. All rights reserved.
 
4
#
 
5
# Redistribution and use in source and binary forms, with or without
 
6
# modification, are permitted provided that the following conditions
 
7
# are met:
 
8
# 1.  Redistributions of source code must retain the above copyright
 
9
#     notice, this list of conditions and the following disclaimer.
 
10
# 2.  Redistributions in binary form must reproduce the above copyright
 
11
#     notice, this list of conditions and the following disclaimer in the
 
12
#     documentation and/or other materials provided with the distribution.
 
13
#
 
14
# THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND ANY
 
15
# EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 
16
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 
17
# DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR ANY
 
18
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 
19
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
 
20
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
 
21
# ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 
22
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 
23
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
24
 
 
25
# tests run-leaks using original leaks report version 1.0
 
26
 
 
27
use strict;
 
28
use warnings;
 
29
 
 
30
use File::Spec;
 
31
use FindBin;
 
32
use lib File::Spec->catdir($FindBin::Bin, "..");
 
33
use Test::More;
 
34
use LoadAsModule qw(RunLeaks run-leaks);
 
35
 
 
36
my @input = split(/\n/, <<EOF);
 
37
Process 1602: 86671 nodes malloced for 13261 KB
 
38
Process 1602: 8 leaks for 160 total leaked bytes.
 
39
Leak: 0x114d54708  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
40
        
 
41
        0x18571798 0x00000001 0x00000000 0x00000000     ..W.............
 
42
Leak: 0x1184b92b8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
43
        
 
44
        0x184b9048 0x00000001 0x00000000 0x00000000     H.K.............
 
45
Leak: 0x1184c84c8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
46
        
 
47
        0x1854e3d8 0x00000001 0x00000000 0x00000000     ..T.............
 
48
Leak: 0x11854e3d8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
49
        
 
50
        0x1854e360 0x00000001 0x00000000 0x00000000     `.T.............
 
51
Leak: 0x118571798  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
52
        
 
53
        0x184c84c8 0x00000001 0x00000000 0x00000000     ..L.............
 
54
Leak: 0x11858b498  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
55
        
 
56
        0x1858b4e0 0x00000001 0x00000000 0x00000000     ..X.............
 
57
Leak: 0x118572530  size=8  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
58
        
 
59
Leak: 0x118572538  size=8  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
60
        
 
61
EOF
 
62
 
 
63
my $expectedOutput =
 
64
[
 
65
  {
 
66
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
67
Leak: 0x114d54708  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
68
        
 
69
        0x18571798 0x00000001 0x00000000 0x00000000     ..W.............
 
70
EOF
 
71
    'callStack' => '',
 
72
    'address' => '0x114d54708',
 
73
    'size' => '24',
 
74
    'type' => '',
 
75
  },
 
76
  {
 
77
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
78
Leak: 0x1184b92b8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
79
        
 
80
        0x184b9048 0x00000001 0x00000000 0x00000000     H.K.............
 
81
EOF
 
82
    'callStack' => '',
 
83
    'address' => '0x1184b92b8',
 
84
    'size' => '24',
 
85
    'type' => '',
 
86
  },
 
87
 
 
88
  {
 
89
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
90
Leak: 0x1184c84c8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
91
        
 
92
        0x1854e3d8 0x00000001 0x00000000 0x00000000     ..T.............
 
93
EOF
 
94
    'callStack' => '',
 
95
    'address' => '0x1184c84c8',
 
96
    'size' => '24',
 
97
    'type' => '',
 
98
  },
 
99
 
 
100
  {
 
101
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
102
Leak: 0x11854e3d8  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
103
        
 
104
        0x1854e360 0x00000001 0x00000000 0x00000000     `.T.............
 
105
EOF
 
106
    'callStack' => '',
 
107
    'address' => '0x11854e3d8',
 
108
    'size' => '24',
 
109
    'type' => '',
 
110
  },
 
111
 
 
112
  {
 
113
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
114
Leak: 0x118571798  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
115
        
 
116
        0x184c84c8 0x00000001 0x00000000 0x00000000     ..L.............
 
117
EOF
 
118
    'callStack' => '',
 
119
    'address' => '0x118571798',
 
120
    'size' => '24',
 
121
    'type' => '',
 
122
  },
 
123
 
 
124
  {
 
125
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
126
Leak: 0x11858b498  size=24  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
127
        
 
128
        0x1858b4e0 0x00000001 0x00000000 0x00000000     ..X.............
 
129
EOF
 
130
    'callStack' => '',
 
131
    'address' => '0x11858b498',
 
132
    'size' => '24',
 
133
    'type' => '',
 
134
  },
 
135
 
 
136
  {
 
137
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
138
Leak: 0x118572530  size=8  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
139
        
 
140
EOF
 
141
    'callStack' => '',
 
142
    'address' => '0x118572530',
 
143
    'size' => '8',
 
144
    'type' => '',
 
145
  },
 
146
 
 
147
  {
 
148
    'leaksOutput' => join('', split(/\n/, <<EOF)),
 
149
Leak: 0x118572538  size=8  zone: JavaScriptCore FastMalloc_0x7fff70a09d20
 
150
        
 
151
EOF
 
152
    'callStack' => '',
 
153
    'address' => '0x118572538',
 
154
    'size' => '8',
 
155
    'type' => '',
 
156
  },
 
157
];
 
158
 
 
159
my $actualOutput = RunLeaks::parseLeaksOutput(@input);
 
160
 
 
161
plan(tests => 1);
 
162
is_deeply($actualOutput, $expectedOutput, "leaks Report Version 1.0 - no call stack");