[PATCH v2 2/2] selftests/bpf: Add test for bpftool map ID printing

Harshit Mogalapalli posted 2 patches 3 months, 1 week ago
There is a newer version of this series
[PATCH v2 2/2] selftests/bpf: Add test for bpftool map ID printing
Posted by Harshit Mogalapalli 3 months, 1 week ago
Add selftest to check if Map ID is printed on successful creation in
both plain text and json formats.

Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
---
 .../testing/selftests/bpf/test_bpftool_map.sh | 36 +++++++++++++++++++
 1 file changed, 36 insertions(+)

diff --git a/tools/testing/selftests/bpf/test_bpftool_map.sh b/tools/testing/selftests/bpf/test_bpftool_map.sh
index 515b1df0501e..013a64e96cbf 100755
--- a/tools/testing/selftests/bpf/test_bpftool_map.sh
+++ b/tools/testing/selftests/bpf/test_bpftool_map.sh
@@ -361,6 +361,40 @@ test_map_access_with_btf_list() {
 	fi
 }
 
+# Function to test map ID printing
+# Parameters:
+#   $1: bpftool path
+#   $2: BPF_DIR
+test_map_id_printing() {
+	local bpftool_path="$1"
+	local bpf_dir="$2"
+	local test_map_name="test_map_id"
+	local test_map_path="$bpf_dir/$test_map_name"
+
+	local output
+	output=$("$bpftool_path" map create "$test_map_path" type hash key 4 \
+		value 8 entries 128 name "$test_map_name")
+	if echo "$output" | grep -q "Map successfully created with ID:"; then
+		echo "PASS: Map ID printed in plain text output."
+	else
+		echo "FAIL: Map ID not printed in plain text output."
+		exit 1
+	fi
+
+	rm -f "$test_map_path"
+
+	output=$("$bpftool_path" map create "$test_map_path" type hash key 4 \
+		value 8 entries 128 name "$test_map_name" --json)
+	if echo "$output" | jq -e 'has("id")' >/dev/null 2>&1; then
+		echo "PASS: Map ID printed in JSON output."
+	else
+		echo "FAIL: Map ID not printed in JSON output."
+		exit 1
+	fi
+
+	rm -f "$test_map_path"
+}
+
 set -eu
 
 trap cleanup_skip EXIT
@@ -395,4 +429,6 @@ test_map_creation_and_map_of_maps "$BPFTOOL_PATH" "$BPF_DIR"
 
 test_map_access_with_btf_list "$BPFTOOL_PATH"
 
+test_map_id_printing "$BPFTOOL_PATH" "$BPF_DIR"
+
 exit 0
-- 
2.50.1
Re: [PATCH v2 2/2] selftests/bpf: Add test for bpftool map ID printing
Posted by Quentin Monnet 3 months, 1 week ago
2025-10-30 14:06 UTC-0700 ~ Harshit Mogalapalli
<harshit.m.mogalapalli@oracle.com>
> Add selftest to check if Map ID is printed on successful creation in
> both plain text and json formats.
> 
> Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
> ---
>  .../testing/selftests/bpf/test_bpftool_map.sh | 36 +++++++++++++++++++
>  1 file changed, 36 insertions(+)
> 
> diff --git a/tools/testing/selftests/bpf/test_bpftool_map.sh b/tools/testing/selftests/bpf/test_bpftool_map.sh
> index 515b1df0501e..013a64e96cbf 100755
> --- a/tools/testing/selftests/bpf/test_bpftool_map.sh
> +++ b/tools/testing/selftests/bpf/test_bpftool_map.sh
> @@ -361,6 +361,40 @@ test_map_access_with_btf_list() {
>  	fi
>  }
>  
> +# Function to test map ID printing
> +# Parameters:
> +#   $1: bpftool path
> +#   $2: BPF_DIR
> +test_map_id_printing() {
> +	local bpftool_path="$1"
> +	local bpf_dir="$2"
> +	local test_map_name="test_map_id"
> +	local test_map_path="$bpf_dir/$test_map_name"
> +
> +	local output
> +	output=$("$bpftool_path" map create "$test_map_path" type hash key 4 \
> +		value 8 entries 128 name "$test_map_name")
> +	if echo "$output" | grep -q "Map successfully created with ID:"; then
> +		echo "PASS: Map ID printed in plain text output."
> +	else
> +		echo "FAIL: Map ID not printed in plain text output."
> +		exit 1


Other tests in the file print a message only on failure, without a
"FAIL:" prefix. Could you do the same, for consistency and brevity? Same
for the JSON test.

Thanks,
Quentin