Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: tools/binary_size/libsupersize/function_signature_test.py

Issue 2856203004: supersize: Fix name normalization of top-level lambdas (Closed)
Patch Set: rebase Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright 2017 The Chromium Authors. All rights reserved. 2 # Copyright 2017 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 import logging 6 import logging
7 import unittest 7 import unittest
8 8
9 import function_signature 9 import function_signature
10 10
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 'const::{lambda(v8::Object**)#1}>', 59 'const::{lambda(v8::Object**)#1}>',
60 '(v8::RelocInfo, v8::Foo<(v8::PointerDirection)1>::Bar(v8::Heap*)::' 60 '(v8::RelocInfo, v8::Foo<(v8::PointerDirection)1>::Bar(v8::Heap*)::'
61 '{lambda(v8::SlotType)#2}::operator()(v8::SlotType) const::' 61 '{lambda(v8::SlotType)#2}::operator()(v8::SlotType) const::'
62 '{lambda(v8::Object**)#1})') 62 '{lambda(v8::Object**)#1})')
63 check('', 63 check('',
64 'WTF::StringAppend<WTF::String, WTF::String>::operator WTF::String', 64 'WTF::StringAppend<WTF::String, WTF::String>::operator WTF::String',
65 '()', 65 '()',
66 ' const') 66 ' const')
67 # Make sure []s are not removed from the name part. 67 # Make sure []s are not removed from the name part.
68 check('', 'Foo', '()', ' [virtual thunk]') 68 check('', 'Foo', '()', ' [virtual thunk]')
69 # Template function that accepts an anonymous lambda.
70 check('',
71 'blink::FrameView::ForAllNonThrottledFrameViews<blink::FrameView::Pre'
72 'Paint()::{lambda(FrameView&)#2}>',
73 '(blink::FrameView::PrePaint()::{lambda(FrameView&)#2} const&)', '')
69 74
70 # SkArithmeticImageFilter.cpp has class within function body. e.g.: 75 # SkArithmeticImageFilter.cpp has class within function body. e.g.:
71 # ArithmeticFP::onCreateGLSLInstance() looks like: 76 # ArithmeticFP::onCreateGLSLInstance() looks like:
72 # class ArithmeticFP { 77 # class ArithmeticFP {
73 # GrGLSLFragmentProcessor* onCreateGLSLInstance() const { 78 # GrGLSLFragmentProcessor* onCreateGLSLInstance() const {
74 # class GLSLFP { 79 # class GLSLFP {
75 # void emitCode(EmitArgs& args) { ... } 80 # void emitCode(EmitArgs& args) { ... }
76 # }; 81 # };
77 # ... 82 # ...
78 # } 83 # }
79 # }; 84 # };
80 SIG = '(anonymous namespace)::Foo::Baz() const::GLSLFP::onData(Foo, Bar)' 85 SIG = '(anonymous namespace)::Foo::Baz() const::GLSLFP::onData(Foo, Bar)'
81 got_full, got_name = function_signature.Parse(SIG) 86 got_full, got_name = function_signature.Parse(SIG)
82 self.assertEqual('(anonymous namespace)::Foo::Baz', got_name) 87 self.assertEqual('(anonymous namespace)::Foo::Baz', got_name)
83 self.assertEqual(SIG, got_full) 88 self.assertEqual(SIG, got_full)
84 89
90 # Top-level lambda.
91 # Note: Inline lambdas do not seem to be broken into their own symbols.
92 SIG = 'cc::{lambda(cc::PaintOp*)#63}::_FUN(cc::PaintOp*)'
93 got_full, got_name = function_signature.Parse(SIG)
94 self.assertEqual('cc::{lambda#63}', got_name)
95 self.assertEqual('cc::{lambda#63}(cc::PaintOp*)', got_full)
96
85 97
86 if __name__ == '__main__': 98 if __name__ == '__main__':
87 logging.basicConfig(level=logging.DEBUG, 99 logging.basicConfig(level=logging.DEBUG,
88 format='%(levelname).1s %(relativeCreated)6d %(message)s') 100 format='%(levelname).1s %(relativeCreated)6d %(message)s')
89 unittest.main() 101 unittest.main()
OLDNEW
« no previous file with comments | « tools/binary_size/libsupersize/function_signature.py ('k') | tools/binary_size/libsupersize/models.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698