summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py')
-rw-r--r--chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py181
1 files changed, 16 insertions, 165 deletions
diff --git a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py
index de94c59f49e..24756d58e94 100644
--- a/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py
+++ b/chromium/third_party/blink/renderer/bindings/scripts/bind_gen/code_node_test.py
@@ -4,15 +4,13 @@
import unittest
-from .code_node import FunctionDefinitionNode
-from .code_node import LikelyExitNode
-from .code_node import LiteralNode
from .code_node import ListNode
+from .code_node import LiteralNode
from .code_node import SymbolNode
from .code_node import SymbolScopeNode
from .code_node import TextNode
-from .code_node import UnlikelyExitNode
-from .codegen_utils import render_code_node
+from .code_node import render_code_node
+from .codegen_accumulator import CodeGenAccumulator
from .mako_renderer import MakoRenderer
@@ -24,6 +22,8 @@ class CodeNodeTest(unittest.TestCase):
def assertRenderResult(self, node, expected):
if node.renderer is None:
node.set_renderer(MakoRenderer())
+ if node.accumulator is None:
+ node.set_accumulator(CodeGenAccumulator())
def simplify(text):
return "\n".join(
@@ -75,6 +75,14 @@ class CodeNodeTest(unittest.TestCase):
root.remove(root[-1])
self.assertRenderResult(root, "2,3,5")
+ def test_list_node_head_and_tail(self):
+ self.assertRenderResult(ListNode(), "")
+ self.assertRenderResult(ListNode(head="head"), "")
+ self.assertRenderResult(ListNode(tail="tail"), "")
+ self.assertRenderResult(
+ ListNode([TextNode("-content-")], head="head", tail="tail"),
+ "head-content-tail")
+
def test_nested_sequence(self):
"""Tests nested ListNodes."""
root = ListNode(separator=",")
@@ -96,7 +104,7 @@ class CodeNodeTest(unittest.TestCase):
Tests that use of SymbolNode inserts necessary SymbolDefinitionNode
appropriately.
"""
- root = SymbolScopeNode(separator_last="\n")
+ root = SymbolScopeNode(tail="\n")
root.register_code_symbols([
SymbolNode("var1", "int ${var1} = ${var2} + ${var3};"),
@@ -118,164 +126,6 @@ int var1 = var2 + var3;
(void)var1;
""")
- def test_symbol_definition_with_exit_branches(self):
- root = SymbolScopeNode(separator_last="\n")
-
- root.register_code_symbols([
- SymbolNode("var1", "int ${var1} = 1;"),
- SymbolNode("var2", "int ${var2} = 2;"),
- SymbolNode("var3", "int ${var3} = 3;"),
- SymbolNode("var4", "int ${var4} = 4;"),
- SymbolNode("var5", "int ${var5} = 5;"),
- SymbolNode("var6", "int ${var6} = 6;"),
- ])
-
- root.extend([
- TextNode("${var1};"),
- UnlikelyExitNode(
- cond=TextNode("${var2}"),
- body=SymbolScopeNode([
- TextNode("${var3};"),
- TextNode("return ${var4};"),
- ])),
- LikelyExitNode(
- cond=TextNode("${var5}"),
- body=SymbolScopeNode([
- TextNode("return ${var6};"),
- ])),
- TextNode("${var3};"),
- ])
-
- self.assertRenderResult(
- root, """\
-int var1 = 1;
-var1;
-int var2 = 2;
-int var3 = 3;
-if (var2) {
- var3;
- int var4 = 4;
- return var4;
-}
-int var5 = 5;
-if (var5) {
- int var6 = 6;
- return var6;
-}
-var3;
-""")
-
- def test_symbol_definition_with_nested_exit_branches(self):
- root = SymbolScopeNode(separator_last="\n")
-
- root.register_code_symbols([
- SymbolNode("var1", "int ${var1} = 1;"),
- SymbolNode("var2", "int ${var2} = 2;"),
- SymbolNode("var3", "int ${var3} = 3;"),
- SymbolNode("var4", "int ${var4} = 4;"),
- SymbolNode("var5", "int ${var5} = 5;"),
- SymbolNode("var6", "int ${var6} = 6;"),
- ])
-
- root.extend([
- UnlikelyExitNode(
- cond=LiteralNode("false"),
- body=SymbolScopeNode([
- UnlikelyExitNode(
- cond=LiteralNode("false"),
- body=SymbolScopeNode([
- TextNode("return ${var1};"),
- ])),
- LiteralNode("return;"),
- ])),
- LikelyExitNode(
- cond=LiteralNode("true"),
- body=SymbolScopeNode([
- LikelyExitNode(
- cond=LiteralNode("true"),
- body=SymbolScopeNode([
- TextNode("return ${var2};"),
- ])),
- LiteralNode("return;"),
- ])),
- ])
-
- self.assertRenderResult(
- root, """\
-if (false) {
- if (false) {
- int var1 = 1;
- return var1;
- }
- return;
-}
-if (true) {
- if (true) {
- int var2 = 2;
- return var2;
- }
- return;
-}
-""")
-
- def test_function_definition_minimum(self):
- root = SymbolScopeNode(separator_last="\n")
- root.append(
- FunctionDefinitionNode(
- name=LiteralNode("blink::bindings::func"),
- arg_decls=[],
- return_type=LiteralNode("void")))
-
- self.assertRenderResult(root, """\
-
-void blink::bindings::func() {
-
-}
-""")
-
- def test_function_definition_full(self):
- root = SymbolScopeNode(separator_last="\n")
-
- local_vars = [
- SymbolNode("var1", "int ${var1} = 1;"),
- SymbolNode("var2", "int ${var2} = 2;"),
- ]
-
- func_body = SymbolScopeNode([
- UnlikelyExitNode(
- cond=TextNode("${var1}"),
- body=SymbolScopeNode([TextNode("return ${var1};")])),
- TextNode("return ${var2};"),
- ])
-
- root.append(
- FunctionDefinitionNode(
- name=LiteralNode("blink::bindings::func"),
- arg_decls=[LiteralNode("int arg1"),
- LiteralNode("int arg2")],
- return_type=LiteralNode("void"),
- member_initializer_list=[
- LiteralNode("member1(0)"),
- LiteralNode("member2(\"str\")")
- ],
- local_vars=local_vars,
- body=func_body,
- comment=LiteralNode("// comment1\n// comment2")))
-
- self.assertRenderResult(
- root, """\
-// comment1
-// comment2
-void blink::bindings::func(int arg1, int arg2) : member1(0), member2("str") {
- int var1 = 1;
- if (var1) {
- return var1;
- }
- int var2 = 2;
- return var2;
-}
-""")
-
def test_template_error_handling(self):
renderer = MakoRenderer()
root = SymbolScopeNode()
@@ -288,7 +138,8 @@ void blink::bindings::func(int arg1, int arg2) : member1(0), member2("str") {
]))
with self.assertRaises(NameError):
- root.render()
+ renderer.reset()
+ root.render(renderer)
callers_on_error = list(renderer.callers_on_error)
self.assertEqual(len(callers_on_error), 3)