From 697a12e10fba136e3a36376689f578d38334526a Mon Sep 17 00:00:00 2001 From: Yosh Date: Wed, 26 Feb 2025 15:30:10 +0100 Subject: [PATCH 1/3] [wasm-metadata] print relationships --- src/bin/wasm-tools/metadata.rs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/bin/wasm-tools/metadata.rs b/src/bin/wasm-tools/metadata.rs index 364b902d82..6bdd307372 100644 --- a/src/bin/wasm-tools/metadata.rs +++ b/src/bin/wasm-tools/metadata.rs @@ -176,6 +176,18 @@ fn write_table(payload: &Payload, f: &mut Box) -> Result<()> { } } + // Add child relationships to the table + if let Payload::Component { children, .. } = &payload { + for payload in children { + let name = payload.metadata().name.as_deref().unwrap_or(""); + let kind = match payload { + Payload::Component { .. } => "component", + Payload::Module(_) => "module", + }; + table.add_row(vec!["child", &format!("{name} [{kind}]")]); + } + } + // Write the table to the writer writeln!(f, "{table}")?; From dc077732a9f027452caa9cb01d3fd59aa4437a6f Mon Sep 17 00:00:00 2001 From: Yosh Date: Wed, 26 Feb 2025 15:52:42 +0100 Subject: [PATCH 2/3] fix tests --- tests/cli/metadata-add-component.wat.stdout | 24 +++++++++++---------- tests/cli/metadata-component.wat.stdout | 22 +++++++++++-------- 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/tests/cli/metadata-add-component.wat.stdout b/tests/cli/metadata-add-component.wat.stdout index f0d29b4070..8c95d3c09c 100644 --- a/tests/cli/metadata-add-component.wat.stdout +++ b/tests/cli/metadata-add-component.wat.stdout @@ -1,14 +1,16 @@ -╭──────────┬───────────╮ -│ KIND ┆ VALUE │ -╞══════════╪═══════════╡ -│ kind ┆ component │ -├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ range ┆ 0x0..0x65 │ -├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ foo │ -├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ language ┆ foo [1] │ -╰──────────┴───────────╯ +╭──────────┬────────────────────╮ +│ KIND ┆ VALUE │ +╞══════════╪════════════════════╡ +│ kind ┆ component │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ range ┆ 0x0..0x65 │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ name ┆ foo │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ language ┆ foo [1] │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ child ┆ [module] │ +╰──────────┴────────────────────╯ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ diff --git a/tests/cli/metadata-component.wat.stdout b/tests/cli/metadata-component.wat.stdout index 5dd1cdb2e5..f42fa0c2d6 100644 --- a/tests/cli/metadata-component.wat.stdout +++ b/tests/cli/metadata-component.wat.stdout @@ -1,12 +1,16 @@ -╭───────┬───────────╮ -│ KIND ┆ VALUE │ -╞═══════╪═══════════╡ -│ kind ┆ component │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ range ┆ 0x0..0x88 │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ my-name │ -╰───────┴───────────╯ +╭───────┬────────────────────────────╮ +│ KIND ┆ VALUE │ +╞═══════╪════════════════════════════╡ +│ kind ┆ component │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ range ┆ 0x0..0x88 │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ name ┆ my-name │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ child ┆ submodule [module] │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ +│ child ┆ another submodule [module] │ +╰───────┴────────────────────────────╯ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ From 88b50bf781f4222ecb09c4ce6116a8514b74196f Mon Sep 17 00:00:00 2001 From: Yosh Date: Thu, 27 Feb 2025 17:21:46 +0100 Subject: [PATCH 3/3] [wasm-metadata] print name first --- src/bin/wasm-tools/metadata.rs | 4 ++-- tests/cli/add-metadata-merge-sections.wat.stdout | 4 ++-- tests/cli/add-metadata-overwrite-name.wat.stdout | 4 ++-- tests/cli/add-metadata.wat.stdout | 4 ++-- tests/cli/metadata-add-component.wat.stdout | 8 ++++---- tests/cli/metadata-component.wat.stdout | 12 ++++++------ tests/cli/metadata.wat.stdout | 4 ++-- 7 files changed, 20 insertions(+), 20 deletions(-) diff --git a/src/bin/wasm-tools/metadata.rs b/src/bin/wasm-tools/metadata.rs index 6bdd307372..7d3546d2e8 100644 --- a/src/bin/wasm-tools/metadata.rs +++ b/src/bin/wasm-tools/metadata.rs @@ -113,6 +113,8 @@ fn write_table(payload: &Payload, f: &mut Box) -> Result<()> { } = payload.metadata(); // Add the basic information to the table first + let name = name.as_deref().unwrap_or(""); + table.add_row(vec!["name", &name]); let kind = match payload { Payload::Component { .. } => "component", Payload::Module(_) => "module", @@ -122,8 +124,6 @@ fn write_table(payload: &Payload, f: &mut Box) -> Result<()> { "range", &format!("0x{:x}..0x{:x}", range.start, range.end), ]); - let name = name.as_deref().unwrap_or(""); - table.add_row(vec!["name", &name]); // Add the OCI annotations to the table if let Some(description) = description { diff --git a/tests/cli/add-metadata-merge-sections.wat.stdout b/tests/cli/add-metadata-merge-sections.wat.stdout index c6491c6f4c..b3564981c0 100644 --- a/tests/cli/add-metadata-merge-sections.wat.stdout +++ b/tests/cli/add-metadata-merge-sections.wat.stdout @@ -1,12 +1,12 @@ ╭──────────┬───────────╮ │ KIND ┆ VALUE │ ╞══════════╪═══════════╡ +│ name ┆ │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x36 │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ │ -├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ language ┆ foo [3] │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ language ┆ bar [1] │ diff --git a/tests/cli/add-metadata-overwrite-name.wat.stdout b/tests/cli/add-metadata-overwrite-name.wat.stdout index 3b5e74ed85..b8a8496fbf 100644 --- a/tests/cli/add-metadata-overwrite-name.wat.stdout +++ b/tests/cli/add-metadata-overwrite-name.wat.stdout @@ -1,9 +1,9 @@ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ +│ name ┆ foo │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x15 │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ foo │ ╰───────┴───────────╯ diff --git a/tests/cli/add-metadata.wat.stdout b/tests/cli/add-metadata.wat.stdout index 3e88493cad..d78adae2a9 100644 --- a/tests/cli/add-metadata.wat.stdout +++ b/tests/cli/add-metadata.wat.stdout @@ -1,12 +1,12 @@ ╭──────────────┬────────────╮ │ KIND ┆ VALUE │ ╞══════════════╪════════════╡ +│ name ┆ foo │ +├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x54 │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ foo │ -├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤ │ language ┆ bar [1] │ ├╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌┤ │ processed-by ┆ baz [1] │ diff --git a/tests/cli/metadata-add-component.wat.stdout b/tests/cli/metadata-add-component.wat.stdout index 8c95d3c09c..dec6045f26 100644 --- a/tests/cli/metadata-add-component.wat.stdout +++ b/tests/cli/metadata-add-component.wat.stdout @@ -1,12 +1,12 @@ ╭──────────┬────────────────────╮ │ KIND ┆ VALUE │ ╞══════════╪════════════════════╡ +│ name ┆ foo │ +├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ component │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x65 │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ foo │ -├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ language ┆ foo [1] │ ├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ child ┆ [module] │ @@ -14,9 +14,9 @@ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ +│ name ┆ │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0xa..0x31 │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ │ ╰───────┴───────────╯ diff --git a/tests/cli/metadata-component.wat.stdout b/tests/cli/metadata-component.wat.stdout index f42fa0c2d6..27421471df 100644 --- a/tests/cli/metadata-component.wat.stdout +++ b/tests/cli/metadata-component.wat.stdout @@ -1,12 +1,12 @@ ╭───────┬────────────────────────────╮ │ KIND ┆ VALUE │ ╞═══════╪════════════════════════════╡ +│ name ┆ my-name │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ component │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x88 │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ my-name │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ child ┆ submodule [module] │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ child ┆ another submodule [module] │ @@ -14,18 +14,18 @@ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ +│ name ┆ submodule │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0xa..0x25 │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ submodule │ ╰───────┴───────────╯ ╭───────┬───────────────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════════════╡ +│ name ┆ another submodule │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x27..0x4a │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ another submodule │ ╰───────┴───────────────────╯ diff --git a/tests/cli/metadata.wat.stdout b/tests/cli/metadata.wat.stdout index 4919b01d36..8cc41d314b 100644 --- a/tests/cli/metadata.wat.stdout +++ b/tests/cli/metadata.wat.stdout @@ -1,9 +1,9 @@ ╭───────┬───────────╮ │ KIND ┆ VALUE │ ╞═══════╪═══════════╡ +│ name ┆ │ +├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ kind ┆ module │ ├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ │ range ┆ 0x0..0x8 │ -├╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌╌┤ -│ name ┆ │ ╰───────┴───────────╯