summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lively <tlively@google.com>2023-03-03 16:01:27 -0600
committerGitHub <noreply@github.com>2023-03-03 22:01:27 +0000
commitdea234b50fac389605209e818bbab39777984f36 (patch)
tree76ad138609fba6d405661ea17ff2bdaa871c1e71
parente13ad341c86ded9c646b7106e76472d6343156d9 (diff)
downloadbinaryen-dea234b50fac389605209e818bbab39777984f36.tar.gz
binaryen-dea234b50fac389605209e818bbab39777984f36.tar.bz2
binaryen-dea234b50fac389605209e818bbab39777984f36.zip
Fix type printing in the type fuzzer (#5543)
In #5437 we updated type printing so that printing a heap type would print its name in addition to its contents. We had already been separately printing type names in the type fuzzer, so after that change we were printing each type name twice. Remove the redundant printing in the fuzzer to fix the error.
-rw-r--r--src/tools/wasm-fuzz-types.cpp7
-rw-r--r--test/lit/fuzz-types/isorecursive.test36
-rw-r--r--test/lit/fuzz-types/nominal.test38
3 files changed, 40 insertions, 41 deletions
diff --git a/src/tools/wasm-fuzz-types.cpp b/src/tools/wasm-fuzz-types.cpp
index 4dfa1cf62..dd85223dc 100644
--- a/src/tools/wasm-fuzz-types.cpp
+++ b/src/tools/wasm-fuzz-types.cpp
@@ -116,18 +116,17 @@ void Fuzzer::printTypes(const std::vector<HeapType>& types) {
if (inRecGroup()) {
std::cout << ' ';
}
- std::cout << "(type $" << i << ' ';
if (type.isBasic()) {
- std::cout << print(type) << ")\n";
+ std::cout << "(type $" << i << ' ' << print(type) << ")\n";
continue;
}
auto [it, inserted] = seen.insert({type, i});
if (inserted) {
std::cout << print(type);
} else {
- std::cout << "identical to $" << it->second;
+ std::cout << "(type $" << i << " identical to $" << it->second << ")";
}
- std::cout << ")\n";
+ std::cout << "\n";
}
if (inRecGroup()) {
std::cout << ")\n";
diff --git a/test/lit/fuzz-types/isorecursive.test b/test/lit/fuzz-types/isorecursive.test
index 92f604215..78adf1bbc 100644
--- a/test/lit/fuzz-types/isorecursive.test
+++ b/test/lit/fuzz-types/isorecursive.test
@@ -34,33 +34,33 @@
;; CHECK-NEXT: Inhabitable types:
;; CHECK-NEXT:
;; CHECK-NEXT: Built 20 types:
-;; CHECK-NEXT: (type $0 (type $0 (struct)))
+;; CHECK-NEXT: (type $0 (struct))
;; CHECK-NEXT: (rec
-;; CHECK-NEXT: (type $1 (type $1 (struct)))
-;; CHECK-NEXT: (type $2 (type $2 (array i16)))
-;; CHECK-NEXT: (type $3 (type $3 (func)))
-;; CHECK-NEXT: (type $4 (type $4 (func (param (ref $5) i32 i64 f64 f64 (ref eq) v128) (result i64))))
-;; CHECK-NEXT: (type $5 (type $5 (array (mut i32))))
+;; CHECK-NEXT: (type $1 (struct))
+;; CHECK-NEXT: (type $2 (array i16))
+;; CHECK-NEXT: (type $3 (func))
+;; CHECK-NEXT: (type $4 (func (param (ref $5) i32 i64 f64 f64 (ref eq) v128) (result i64)))
+;; CHECK-NEXT: (type $5 (array (mut i32)))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
-;; CHECK-NEXT: (type $6 (type $6 (array (mut funcref))))
-;; CHECK-NEXT: (type $7 (type $7 (func (param f64) (result i64))))
+;; CHECK-NEXT: (type $6 (array (mut funcref)))
+;; CHECK-NEXT: (type $7 (func (param f64) (result i64)))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
-;; CHECK-NEXT: (type $8 (type $8 (struct_subtype (field f64 (ref $2) f64 (mut (ref null $9))) $1)))
-;; CHECK-NEXT: (type $9 (type $9 (func_subtype (param (ref array) i32 i64 f64 f64 anyref v128) (result i64) $4)))
+;; CHECK-NEXT: (type $8 (struct_subtype (field f64 (ref $2) f64 (mut (ref null $9))) $1))
+;; CHECK-NEXT: (type $9 (func_subtype (param (ref array) i32 i64 f64 f64 anyref v128) (result i64) $4))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
-;; CHECK-NEXT: (type $10 (type $10 (func_subtype (param (ref eq) i32 i64 f64 f64 anyref v128) (result i64) $9)))
-;; CHECK-NEXT: (type $11 (type $11 (array_subtype (mut funcref) $6)))
-;; CHECK-NEXT: (type $12 (type $12 (array nullref)))
+;; CHECK-NEXT: (type $10 (func_subtype (param (ref eq) i32 i64 f64 f64 anyref v128) (result i64) $9))
+;; CHECK-NEXT: (type $11 (array_subtype (mut funcref) $6))
+;; CHECK-NEXT: (type $12 (array nullref))
;; CHECK-NEXT: (type $13 none)
-;; CHECK-NEXT: (type $14 (type $14 (array (ref $6))))
-;; CHECK-NEXT: (type $15 (type $15 (array i32)))
+;; CHECK-NEXT: (type $14 (array (ref $6)))
+;; CHECK-NEXT: (type $15 (array i32))
;; CHECK-NEXT: )
;; CHECK-NEXT: (rec
-;; CHECK-NEXT: (type $16 (type $16 (array_subtype nullref $12)))
-;; CHECK-NEXT: (type $17 (type $17 (func (param (ref null $9)) (result f32 structref))))
+;; CHECK-NEXT: (type $16 (array_subtype nullref $12))
+;; CHECK-NEXT: (type $17 (func (param (ref null $9)) (result f32 structref)))
;; CHECK-NEXT: (type $18 none)
;; CHECK-NEXT: )
-;; CHECK-NEXT: (type $19 (type $19 (func_subtype (param (ref any) i32 i64 f64 f64 anyref v128) (result i64) $9)))
+;; CHECK-NEXT: (type $19 (func_subtype (param (ref any) i32 i64 f64 f64 anyref v128) (result i64) $9))
diff --git a/test/lit/fuzz-types/nominal.test b/test/lit/fuzz-types/nominal.test
index 613e73b52..062900b62 100644
--- a/test/lit/fuzz-types/nominal.test
+++ b/test/lit/fuzz-types/nominal.test
@@ -24,23 +24,23 @@
;; CHECK-NEXT: Inhabitable types:
;; CHECK-NEXT:
;; CHECK-NEXT: Built 20 types:
-;; CHECK-NEXT: (type $0 (type $0 (struct (field (mut i16) i31ref f32 f32 f64))))
-;; CHECK-NEXT: (type $1 (type $1 (func (param f64 v128))))
-;; CHECK-NEXT: (type $2 (type $2 (struct (field (mut (ref null $19)) f64 arrayref))))
-;; CHECK-NEXT: (type $3 (type $3 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0)))
-;; CHECK-NEXT: (type $4 (type $4 (struct)))
+;; CHECK-NEXT: (type $0 (struct (field (mut i16) i31ref f32 f32 f64)))
+;; CHECK-NEXT: (type $1 (func (param f64 v128)))
+;; CHECK-NEXT: (type $2 (struct (field (mut (ref null $19)) f64 arrayref)))
+;; CHECK-NEXT: (type $3 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0))
+;; CHECK-NEXT: (type $4 (struct))
;; CHECK-NEXT: (type $5 none)
-;; CHECK-NEXT: (type $6 (type $6 (array (mut eqref))))
-;; CHECK-NEXT: (type $7 (type $7 (func_subtype (param f64 v128) $1)))
-;; CHECK-NEXT: (type $8 (type $8 (array anyref)))
-;; CHECK-NEXT: (type $9 (type $9 (array f32)))
-;; CHECK-NEXT: (type $10 (type $10 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0)))
-;; CHECK-NEXT: (type $11 (type $11 (func (result f64))))
-;; CHECK-NEXT: (type $12 (type $12 (func_subtype (param f64 v128) $1)))
-;; CHECK-NEXT: (type $13 (type $13 (func_subtype (param f64 v128) $12)))
-;; CHECK-NEXT: (type $14 (type $14 (func_subtype (result f64) $11)))
-;; CHECK-NEXT: (type $15 (type $15 (func_subtype (result f64) $14)))
-;; CHECK-NEXT: (type $16 (type $16 (func (param (ref struct)) (result structref))))
-;; CHECK-NEXT: (type $17 (type $17 (array (mut (ref $2)))))
-;; CHECK-NEXT: (type $18 (type $18 (array (ref $10))))
-;; CHECK-NEXT: (type $19 (type $19 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64 (mut f32)) $0)))
+;; CHECK-NEXT: (type $6 (array (mut eqref)))
+;; CHECK-NEXT: (type $7 (func_subtype (param f64 v128) $1))
+;; CHECK-NEXT: (type $8 (array anyref))
+;; CHECK-NEXT: (type $9 (array f32))
+;; CHECK-NEXT: (type $10 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64) $0))
+;; CHECK-NEXT: (type $11 (func (result f64)))
+;; CHECK-NEXT: (type $12 (func_subtype (param f64 v128) $1))
+;; CHECK-NEXT: (type $13 (func_subtype (param f64 v128) $12))
+;; CHECK-NEXT: (type $14 (func_subtype (result f64) $11))
+;; CHECK-NEXT: (type $15 (func_subtype (result f64) $14))
+;; CHECK-NEXT: (type $16 (func (param (ref struct)) (result structref)))
+;; CHECK-NEXT: (type $17 (array (mut (ref $2))))
+;; CHECK-NEXT: (type $18 (array (ref $10)))
+;; CHECK-NEXT: (type $19 (struct_subtype (field (mut i16) (ref i31) f32 f32 f64 (mut f32)) $0))