Skip to content

Commit 381b149

Browse files
committed
gas_diff_stats.py: Include code deposit costs in total cost
1 parent 96ce95a commit 381b149

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

scripts/gas_diff_stats.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import sys
2424
from pathlib import Path
2525
from enum import Enum
26-
from parsec import generate, ParseError, regex, string
26+
from parsec import generate, ParseError, regex, string, optional
2727
from tabulate import tabulate
2828

2929
class Kind(Enum):
@@ -49,6 +49,7 @@ class Diff(Enum):
4949
gas_ir_optimized = string("gas irOptimized").result(Kind.IrOptimized)
5050
gas_legacy_optimized = string("gas legacyOptimized").result(Kind.LegacyOptimized)
5151
gas_legacy = string("gas legacy").result(Kind.Legacy)
52+
code_suffix = string("code")
5253

5354
def number() -> int:
5455
"""Parse number."""
@@ -67,6 +68,8 @@ def diff_string() -> (Kind, Diff, int):
6768
yield comment
6869
yield space
6970
codegen_kind = yield gas_ir_optimized ^ gas_ir ^ gas_legacy_optimized ^ gas_legacy
71+
yield optional(space)
72+
yield optional(code_suffix)
7073
yield colon
7174
yield space
7275
val = yield number()

test/scripts/test_gas_diff_stats.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,3 +85,25 @@ def test_collect_statistics_should_ignore_unchanged_costs(self):
8585
0, # +legacyOptimized
8686
3, # +legacy
8787
))
88+
89+
def test_collect_statistics_should_include_code_deposit_in_total_cost(self):
90+
diff_output = dedent("""
91+
-// gas irOptimized: 1
92+
-// gas legacy: 20
93+
-// gas legacyOptimized: 300
94+
+// gas irOptimized: 4000
95+
+// gas irOptimized code: 50000
96+
+// gas legacy: 600000
97+
+// gas legacyOptimized: 7000000
98+
+// gas legacyOptimized code: 80000000
99+
-// gas legacy code: 900000000
100+
""").splitlines()
101+
102+
self.assertEqual(collect_statistics(diff_output), (
103+
1, # -irOptimized
104+
300, # -legacyOptimized
105+
900000020, # -legacy
106+
54000, # +irOptimized
107+
87000000, # +legacyOptimized
108+
600000, # +legacy
109+
))

0 commit comments

Comments
 (0)