Skip to content

Commit edfcdc9

Browse files
lrettigjwasinger
authored andcommitted
Adds metering to convert_wast
Integrate @axic's metering tool (wasm-metering) into `convert_wast.py`. Update README. Add metering to convert_wast script, update README, change wasm-metering branch
1 parent 00ff4b0 commit edfcdc9

File tree

4 files changed

+22
-6
lines changed

4 files changed

+22
-6
lines changed

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11
[submodule "src/GeneralStateTestsFiller/stEWASMTests/utils/wabt"]
22
path = src/GeneralStateTestsFiller/stEWASMTests/utils/wabt
33
url = https://github.com/webassembly/wabt
4+
[submodule "src/GeneralStateTestsFiller/stEWASMTests/utils/wasm-metering"]
5+
path = src/GeneralStateTestsFiller/stEWASMTests/utils/wasm-metering
6+
url = https://github.com/ewasm/wasm-metering

src/GeneralStateTestsFiller/stEWASMTests/utils/README.md

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,12 @@ mkdir build
1717
cd build
1818
cmake -DBUILD_TESTS=OFF ..
1919
make -j4
20-
mv wat2wasm ../..
20+
```
21+
22+
Install wasm-metering
23+
```
24+
cd wasm-metering
25+
npm install
2126
```
2227

2328
Setup tests script:

src/GeneralStateTestsFiller/stEWASMTests/utils/convert_wast.py

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,28 @@ def wat2wasm(code, file_name):
44
with open("tmp.wast", "w+") as f:
55
f.write(code)
66

7-
result = subprocess.run(['./wat2wasm', 'tmp.wast', '-o', 'tmp.wasm'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
7+
result = subprocess.run(['wabt/build/wat2wasm', 'tmp.wast', '-o', 'tmp.wasm'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
88

99
if result.returncode != 0:
10-
print('Error in ' + file_name + ':')
10+
print('Error running wat2wasm on ' + file_name + ':')
1111
print(result.stderr.decode('UTF-8'))
1212
exit(1)
1313

14-
with open('tmp.wasm', 'rb') as f:
14+
# Add metering
15+
result = subprocess.run(['wasm-metering/bin/wasm-metering', 'tmp.wasm',
16+
'tmp.metered.wasm'], stdout=subprocess.PIPE,
17+
stderr=subprocess.PIPE)
18+
if result.returncode != 0:
19+
print('Error adding metering to ' + file_name + ':')
20+
print(result.stderr.decode('UTF-8'))
21+
exit(1)
22+
23+
with open('tmp.metered.wasm', 'rb') as f:
1524
result = f.read()
1625

1726
return result.hex()
1827

1928
def convert_state_test(file_name):
20-
state_test = None
21-
2229
state_test = yaml.load(open(file_name, 'r').read().rstrip())
2330

2431
if not state_test:
Submodule wasm-metering added at 7d63faa

0 commit comments

Comments
 (0)