[Pdbg] [PATCH v4 21/30] tests: Add device tree traversal tests

Alistair Popple alistair at popple.id.au
Wed Oct 9 15:22:57 AEDT 2019


Reviewed-by: Alistair Popple <alistair at popple.id.au>

On Thursday, 3 October 2019 2:19:00 PM AEDT Amitay Isaacs wrote:
> This test checks system device tree (view) traverse and backend device
> tree traverse.
> 
> Signed-off-by: Amitay Isaacs <amitay at ozlabs.org>
> ---
>  Makefile.am                    |  14 +-
>  src/tests/libpdbg_dtree_test.c | 117 ++++++++++
>  tests/test_tree.sh             | 387 ++++++++++++++++++++++++++++++++
>  tests/test_tree2.sh            | 389 +++++++++++++++++++++++++++++++++
>  4 files changed, 905 insertions(+), 2 deletions(-)
>  create mode 100644 src/tests/libpdbg_dtree_test.c
>  create mode 100755 tests/test_tree.sh
>  create mode 100755 tests/test_tree2.sh
> 
> diff --git a/Makefile.am b/Makefile.am
> index 9b9e04e..69a21de 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -15,16 +15,21 @@ libpdbg_tests = libpdbg_target_test \
>  		libpdbg_probe_test3
>  
>  bin_PROGRAMS = pdbg
> -check_PROGRAMS = $(libpdbg_tests) optcmd_test hexdump_test cronus_proxy
> +check_PROGRAMS = $(libpdbg_tests) libpdbg_dtree_test \
> +		 optcmd_test hexdump_test cronus_proxy
>  
>  PDBG_TESTS = \
>  	tests/test_selection.sh 	\
>  	tests/test_selection2.sh 	\
>  	tests/test_hw_bmc.sh		\
> -	tests/test_hexdump.sh
> +	tests/test_hexdump.sh		\
> +	tests/test_tree.sh		\
> +	tests/test_tree2.sh
>  
>  TESTS = $(libpdbg_tests) optcmd_test $(PDBG_TESTS)
>  
> +tests/test_tree2.sh: fake2.dtb
> +
>  test: $(libpdbg_tests)
>  
>  TEST_EXTENSIONS = .sh
> @@ -246,6 +251,11 @@ libpdbg_probe_test3_LDADD = $(libpdbg_test_ldadd)
>  
>  src/tests/libpdbg_probe_test.c: fake.dt.h
>  
> +libpdbg_dtree_test_SOURCES = src/tests/libpdbg_dtree_test.c
> +libpdbg_dtree_test_CFLAGS = $(libpdbg_test_cflags)
> +libpdbg_dtree_test_LDFLAGS = $(libpdbg_test_ldflags)
> +libpdbg_dtree_test_LDADD = $(libpdbg_test_ldadd)
> +
>  M4_V = $(M4_V_$(V))
>  M4_V_ = $(M4_V_$(AM_DEFAULT_VERBOSITY))
>  M4_V_0 = @echo "  M4      " $@;
> diff --git a/src/tests/libpdbg_dtree_test.c b/src/tests/libpdbg_dtree_test.c
> new file mode 100644
> index 0000000..f6d4cbf
> --- /dev/null
> +++ b/src/tests/libpdbg_dtree_test.c
> @@ -0,0 +1,117 @@
> +/* Copyright 2019 IBM Corp.
> + *
> + * Licensed under the Apache License, Version 2.0 (the "License");
> + * you may not use this file except in compliance with the License.
> + * You may obtain a copy of the License at
> + *
> + *      http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> + * implied.
> + * See the License for the specific language governing permissions and
> + * limitations under the License.
> + */
> +
> +#include <stdio.h>
> +#include <stdlib.h>
> +#include <string.h>
> +#include <assert.h>
> +
> +#include <libpdbg.h>
> +
> +extern struct pdbg_target *get_parent(struct pdbg_target *target, bool system);
> +
> +#define for_each_child(parent, target, system) \
> +	for (target = __pdbg_next_child_target(parent, NULL, system); \
> +	     target; \
> +	     target = __pdbg_next_child_target(parent, target, system))
> +
> +static void print_tree(struct pdbg_target *target, bool system, int level)
> +{
> +	struct pdbg_target *child;
> +	const char *name;
> +	char *path;
> +	int i;
> +
> +	for (i=0; i<level; i++)
> +		printf("   ");
> +
> +	name = pdbg_target_dn_name(target);
> +	if (!name || name[0] == '\0')
> +		name = "/";
> +	path = pdbg_target_path(target);
> +	printf("%s (%s)\n", name, path);
> +	free(path);
> +
> +	for_each_child(target, child, system)
> +		print_tree(child, system, level+1);
> +}
> +
> +static void print_rtree(struct pdbg_target *target, bool system, int level)
> +{
> +	struct pdbg_target *root = pdbg_target_root();
> +	const char *name;
> +	int i;
> +
> +	for (i=0; i<level; i++)
> +		printf("  ");
> +
> +	name = pdbg_target_dn_name(target);
> +	if (!name || name[0] == '\0')
> +		name = "/";
> +
> +	printf("%s\n", name);
> +
> +	if (target != root) {
> +		target = get_parent(target, system);
> +		print_rtree(target, system, level+1);
> +	}
> +}
> +
> +static void usage(void)
> +{
> +	fprintf(stderr, "Usage: libpdbg_dtree_test tree|rtree system|backend <path>\n");
> +	exit(1);
> +}
> +
> +int main(int argc, const char **argv)
> +{
> +	struct pdbg_target *target;
> +	bool do_system;
> +	bool do_tree;
> +
> +	if (argc != 4)
> +		usage();
> +
> +	if (strcmp(argv[1], "tree") == 0) {
> +		do_tree = true;
> +	} else if (strcmp(argv[1], "rtree") == 0) {
> +		do_tree = false;
> +	} else {
> +		usage();
> +	}
> +
> +	if (strcmp(argv[2], "system") == 0) {
> +		do_system = true;
> +	} else if (strcmp(argv[2], "backend") == 0) {
> +		do_system = false;
> +	} else {
> +		usage();
> +	}
> +
> +	pdbg_targets_init(NULL);
> +
> +	target = pdbg_target_from_path(NULL, argv[3]);
> +	if (!target)
> +		exit(1);
> +
> +	if (do_tree) {
> +		print_tree(target, do_system, 0);
> +	} else {
> +		print_rtree(target, do_system, 0);
> +	}
> +
> +	return 0;
> +}
> diff --git a/tests/test_tree.sh b/tests/test_tree.sh
> new file mode 100755
> index 0000000..8b64146
> --- /dev/null
> +++ b/tests/test_tree.sh
> @@ -0,0 +1,387 @@
> +#!/bin/sh
> +
> +. $(dirname "$0")/driver.sh
> +
> +test_group "tree tests for fake.dts"
> +
> +test_result 0 <<EOF
> +/ (/)
> +   proc0 (/proc0)
> +      fsi at 20000 (/proc0/fsi)
> +      pib at 20100 (/proc0/pib)
> +         core at 10010 (/proc0/pib/core at 10010)
> +            thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc0/pib/core at 10020)
> +            thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc0/pib/core at 10030)
> +            thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc0/pib/core at 10040)
> +            thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +   proc1 (/proc1)
> +      fsi at 21000 (/proc1/fsi)
> +      pib at 21100 (/proc1/pib)
> +         core at 10010 (/proc1/pib/core at 10010)
> +            thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc1/pib/core at 10020)
> +            thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc1/pib/core at 10030)
> +            thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc1/pib/core at 10040)
> +            thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +   proc2 (/proc2)
> +      fsi at 22000 (/proc2/fsi)
> +      pib at 22100 (/proc2/pib)
> +         core at 10010 (/proc2/pib/core at 10010)
> +            thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc2/pib/core at 10020)
> +            thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc2/pib/core at 10030)
> +            thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc2/pib/core at 10040)
> +            thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +   proc3 (/proc3)
> +      fsi at 23000 (/proc3/fsi)
> +      pib at 23100 (/proc3/pib)
> +         core at 10010 (/proc3/pib/core at 10010)
> +            thread at 0 (/proc3/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc3/pib/core at 10020)
> +            thread at 0 (/proc3/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc3/pib/core at 10030)
> +            thread at 0 (/proc3/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc3/pib/core at 10040)
> +            thread at 0 (/proc3/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10040/thread at 1)
> +   proc4 (/proc4)
> +      fsi at 24000 (/proc4/fsi)
> +      pib at 24100 (/proc4/pib)
> +         core at 10010 (/proc4/pib/core at 10010)
> +            thread at 0 (/proc4/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc4/pib/core at 10020)
> +            thread at 0 (/proc4/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc4/pib/core at 10030)
> +            thread at 0 (/proc4/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc4/pib/core at 10040)
> +            thread at 0 (/proc4/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10040/thread at 1)
> +   proc5 (/proc5)
> +      fsi at 25000 (/proc5/fsi)
> +      pib at 25100 (/proc5/pib)
> +         core at 10010 (/proc5/pib/core at 10010)
> +            thread at 0 (/proc5/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc5/pib/core at 10020)
> +            thread at 0 (/proc5/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc5/pib/core at 10030)
> +            thread at 0 (/proc5/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc5/pib/core at 10040)
> +            thread at 0 (/proc5/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10040/thread at 1)
> +   proc6 (/proc6)
> +      fsi at 26000 (/proc6/fsi)
> +      pib at 26100 (/proc6/pib)
> +         core at 10010 (/proc6/pib/core at 10010)
> +            thread at 0 (/proc6/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc6/pib/core at 10020)
> +            thread at 0 (/proc6/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc6/pib/core at 10030)
> +            thread at 0 (/proc6/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc6/pib/core at 10040)
> +            thread at 0 (/proc6/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10040/thread at 1)
> +   proc7 (/proc7)
> +      fsi at 27000 (/proc7/fsi)
> +      pib at 27100 (/proc7/pib)
> +         core at 10010 (/proc7/pib/core at 10010)
> +            thread at 0 (/proc7/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc7/pib/core at 10020)
> +            thread at 0 (/proc7/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc7/pib/core at 10030)
> +            thread at 0 (/proc7/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc7/pib/core at 10040)
> +            thread at 0 (/proc7/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /
> +
> +
> +test_result 0 <<EOF
> +/ (/)
> +   fsi at 20000 (/proc0/fsi)
> +      pib at 20100 (/proc0/pib)
> +         core at 10010 (/proc0/pib/core at 10010)
> +            thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc0/pib/core at 10020)
> +            thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc0/pib/core at 10030)
> +            thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc0/pib/core at 10040)
> +            thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +   fsi at 21000 (/proc1/fsi)
> +      pib at 21100 (/proc1/pib)
> +         core at 10010 (/proc1/pib/core at 10010)
> +            thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc1/pib/core at 10020)
> +            thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc1/pib/core at 10030)
> +            thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc1/pib/core at 10040)
> +            thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +   fsi at 22000 (/proc2/fsi)
> +      pib at 22100 (/proc2/pib)
> +         core at 10010 (/proc2/pib/core at 10010)
> +            thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc2/pib/core at 10020)
> +            thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc2/pib/core at 10030)
> +            thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc2/pib/core at 10040)
> +            thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +   fsi at 23000 (/proc3/fsi)
> +      pib at 23100 (/proc3/pib)
> +         core at 10010 (/proc3/pib/core at 10010)
> +            thread at 0 (/proc3/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc3/pib/core at 10020)
> +            thread at 0 (/proc3/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc3/pib/core at 10030)
> +            thread at 0 (/proc3/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc3/pib/core at 10040)
> +            thread at 0 (/proc3/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10040/thread at 1)
> +   fsi at 24000 (/proc4/fsi)
> +      pib at 24100 (/proc4/pib)
> +         core at 10010 (/proc4/pib/core at 10010)
> +            thread at 0 (/proc4/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc4/pib/core at 10020)
> +            thread at 0 (/proc4/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc4/pib/core at 10030)
> +            thread at 0 (/proc4/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc4/pib/core at 10040)
> +            thread at 0 (/proc4/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10040/thread at 1)
> +   fsi at 25000 (/proc5/fsi)
> +      pib at 25100 (/proc5/pib)
> +         core at 10010 (/proc5/pib/core at 10010)
> +            thread at 0 (/proc5/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc5/pib/core at 10020)
> +            thread at 0 (/proc5/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc5/pib/core at 10030)
> +            thread at 0 (/proc5/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc5/pib/core at 10040)
> +            thread at 0 (/proc5/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10040/thread at 1)
> +   fsi at 26000 (/proc6/fsi)
> +      pib at 26100 (/proc6/pib)
> +         core at 10010 (/proc6/pib/core at 10010)
> +            thread at 0 (/proc6/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc6/pib/core at 10020)
> +            thread at 0 (/proc6/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc6/pib/core at 10030)
> +            thread at 0 (/proc6/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc6/pib/core at 10040)
> +            thread at 0 (/proc6/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10040/thread at 1)
> +   fsi at 27000 (/proc7/fsi)
> +      pib at 27100 (/proc7/pib)
> +         core at 10010 (/proc7/pib/core at 10010)
> +            thread at 0 (/proc7/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc7/pib/core at 10020)
> +            thread at 0 (/proc7/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc7/pib/core at 10030)
> +            thread at 0 (/proc7/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc7/pib/core at 10040)
> +            thread at 0 (/proc7/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /
> +
> +
> +test_result 0 <<EOF
> +proc1 (/proc1)
> +   fsi at 21000 (/proc1/fsi)
> +   pib at 21100 (/proc1/pib)
> +      core at 10010 (/proc1/pib/core at 10010)
> +         thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +      core at 10020 (/proc1/pib/core at 10020)
> +         thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +      core at 10030 (/proc1/pib/core at 10030)
> +         thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +      core at 10040 (/proc1/pib/core at 10040)
> +         thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc1
> +
> +
> +test_result 0 <<EOF
> +proc1 (/proc1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc1
> +
> +
> +test_result 0 <<EOF
> +fsi at 20000 (/proc0/fsi)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc0/fsi
> +
> +
> +test_result 0 <<EOF
> +fsi at 20000 (/proc0/fsi)
> +   pib at 20100 (/proc0/pib)
> +      core at 10010 (/proc0/pib/core at 10010)
> +         thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +      core at 10020 (/proc0/pib/core at 10020)
> +         thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +      core at 10030 (/proc0/pib/core at 10030)
> +         thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +      core at 10040 (/proc0/pib/core at 10040)
> +         thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc0/fsi
> +
> +
> +test_result 0 <<EOF
> +pib at 22100 (/proc2/pib)
> +   core at 10010 (/proc2/pib/core at 10010)
> +      thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +   core at 10020 (/proc2/pib/core at 10020)
> +      thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +   core at 10030 (/proc2/pib/core at 10030)
> +      thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +   core at 10040 (/proc2/pib/core at 10040)
> +      thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc2/pib
> +
> +
> +test_result 0 <<EOF
> +pib at 22100 (/proc2/pib)
> +   core at 10010 (/proc2/pib/core at 10010)
> +      thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +   core at 10020 (/proc2/pib/core at 10020)
> +      thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +   core at 10030 (/proc2/pib/core at 10030)
> +      thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +   core at 10040 (/proc2/pib/core at 10040)
> +      thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc2/pib
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      proc7
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree system /proc7/pib/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      proc7
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree system /fsi at 27000/pib at 27100/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      fsi at 27000
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree backend /proc7/pib/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      fsi at 27000
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree backend /fsi at 27000/pib at 27100/core at 10040/thread at 1
> diff --git a/tests/test_tree2.sh b/tests/test_tree2.sh
> new file mode 100755
> index 0000000..7b8ccc8
> --- /dev/null
> +++ b/tests/test_tree2.sh
> @@ -0,0 +1,389 @@
> +#!/bin/sh
> +
> +. $(dirname "$0")/driver.sh
> +
> +test_group "tree tests for fake2.dts"
> +
> +export PDBG_DTB="fake2.dtb"
> +
> +test_result 0 <<EOF
> +/ (/)
> +   proc0 (/proc0)
> +      fsi at 20000 (/proc0/fsi)
> +      pib at 20100 (/proc0/pib)
> +         core at 10010 (/proc0/pib/core at 10010)
> +            thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc0/pib/core at 10020)
> +            thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc0/pib/core at 10030)
> +            thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc0/pib/core at 10040)
> +            thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +   proc1 (/proc1)
> +      fsi at 21000 (/proc1/fsi)
> +      pib at 21100 (/proc1/pib)
> +         core at 10010 (/proc1/pib/core at 10010)
> +            thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc1/pib/core at 10020)
> +            thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc1/pib/core at 10030)
> +            thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc1/pib/core at 10040)
> +            thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +   proc2 (/proc2)
> +      fsi at 22000 (/proc2/fsi)
> +      pib at 22100 (/proc2/pib)
> +         core at 10010 (/proc2/pib/core at 10010)
> +            thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc2/pib/core at 10020)
> +            thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc2/pib/core at 10030)
> +            thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc2/pib/core at 10040)
> +            thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +   proc3 (/proc3)
> +      fsi at 23000 (/proc3/fsi)
> +      pib at 23100 (/proc3/pib)
> +         core at 10010 (/proc3/pib/core at 10010)
> +            thread at 0 (/proc3/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc3/pib/core at 10020)
> +            thread at 0 (/proc3/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc3/pib/core at 10030)
> +            thread at 0 (/proc3/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc3/pib/core at 10040)
> +            thread at 0 (/proc3/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10040/thread at 1)
> +   proc4 (/proc4)
> +      fsi at 24000 (/proc4/fsi)
> +      pib at 24100 (/proc4/pib)
> +         core at 10010 (/proc4/pib/core at 10010)
> +            thread at 0 (/proc4/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc4/pib/core at 10020)
> +            thread at 0 (/proc4/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc4/pib/core at 10030)
> +            thread at 0 (/proc4/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc4/pib/core at 10040)
> +            thread at 0 (/proc4/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10040/thread at 1)
> +   proc5 (/proc5)
> +      fsi at 25000 (/proc5/fsi)
> +      pib at 25100 (/proc5/pib)
> +         core at 10010 (/proc5/pib/core at 10010)
> +            thread at 0 (/proc5/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc5/pib/core at 10020)
> +            thread at 0 (/proc5/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc5/pib/core at 10030)
> +            thread at 0 (/proc5/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc5/pib/core at 10040)
> +            thread at 0 (/proc5/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10040/thread at 1)
> +   proc6 (/proc6)
> +      fsi at 26000 (/proc6/fsi)
> +      pib at 26100 (/proc6/pib)
> +         core at 10010 (/proc6/pib/core at 10010)
> +            thread at 0 (/proc6/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc6/pib/core at 10020)
> +            thread at 0 (/proc6/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc6/pib/core at 10030)
> +            thread at 0 (/proc6/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc6/pib/core at 10040)
> +            thread at 0 (/proc6/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10040/thread at 1)
> +   proc7 (/proc7)
> +      fsi at 27000 (/proc7/fsi)
> +      pib at 27100 (/proc7/pib)
> +         core at 10010 (/proc7/pib/core at 10010)
> +            thread at 0 (/proc7/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc7/pib/core at 10020)
> +            thread at 0 (/proc7/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc7/pib/core at 10030)
> +            thread at 0 (/proc7/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc7/pib/core at 10040)
> +            thread at 0 (/proc7/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /
> +
> +
> +test_result 0 <<EOF
> +/ (/)
> +   fsi at 20000 (/proc0/fsi)
> +      pib at 20100 (/proc0/pib)
> +         core at 10010 (/proc0/pib/core at 10010)
> +            thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc0/pib/core at 10020)
> +            thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc0/pib/core at 10030)
> +            thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc0/pib/core at 10040)
> +            thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +   fsi at 21000 (/proc1/fsi)
> +      pib at 21100 (/proc1/pib)
> +         core at 10010 (/proc1/pib/core at 10010)
> +            thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc1/pib/core at 10020)
> +            thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc1/pib/core at 10030)
> +            thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc1/pib/core at 10040)
> +            thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +   fsi at 22000 (/proc2/fsi)
> +      pib at 22100 (/proc2/pib)
> +         core at 10010 (/proc2/pib/core at 10010)
> +            thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc2/pib/core at 10020)
> +            thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc2/pib/core at 10030)
> +            thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc2/pib/core at 10040)
> +            thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +   fsi at 23000 (/proc3/fsi)
> +      pib at 23100 (/proc3/pib)
> +         core at 10010 (/proc3/pib/core at 10010)
> +            thread at 0 (/proc3/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc3/pib/core at 10020)
> +            thread at 0 (/proc3/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc3/pib/core at 10030)
> +            thread at 0 (/proc3/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc3/pib/core at 10040)
> +            thread at 0 (/proc3/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc3/pib/core at 10040/thread at 1)
> +   fsi at 24000 (/proc4/fsi)
> +      pib at 24100 (/proc4/pib)
> +         core at 10010 (/proc4/pib/core at 10010)
> +            thread at 0 (/proc4/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc4/pib/core at 10020)
> +            thread at 0 (/proc4/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc4/pib/core at 10030)
> +            thread at 0 (/proc4/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc4/pib/core at 10040)
> +            thread at 0 (/proc4/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc4/pib/core at 10040/thread at 1)
> +   fsi at 25000 (/proc5/fsi)
> +      pib at 25100 (/proc5/pib)
> +         core at 10010 (/proc5/pib/core at 10010)
> +            thread at 0 (/proc5/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc5/pib/core at 10020)
> +            thread at 0 (/proc5/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc5/pib/core at 10030)
> +            thread at 0 (/proc5/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc5/pib/core at 10040)
> +            thread at 0 (/proc5/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc5/pib/core at 10040/thread at 1)
> +   fsi at 26000 (/proc6/fsi)
> +      pib at 26100 (/proc6/pib)
> +         core at 10010 (/proc6/pib/core at 10010)
> +            thread at 0 (/proc6/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc6/pib/core at 10020)
> +            thread at 0 (/proc6/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc6/pib/core at 10030)
> +            thread at 0 (/proc6/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc6/pib/core at 10040)
> +            thread at 0 (/proc6/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc6/pib/core at 10040/thread at 1)
> +   fsi at 27000 (/proc7/fsi)
> +      pib at 27100 (/proc7/pib)
> +         core at 10010 (/proc7/pib/core at 10010)
> +            thread at 0 (/proc7/pib/core at 10010/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10010/thread at 1)
> +         core at 10020 (/proc7/pib/core at 10020)
> +            thread at 0 (/proc7/pib/core at 10020/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10020/thread at 1)
> +         core at 10030 (/proc7/pib/core at 10030)
> +            thread at 0 (/proc7/pib/core at 10030/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10030/thread at 1)
> +         core at 10040 (/proc7/pib/core at 10040)
> +            thread at 0 (/proc7/pib/core at 10040/thread at 0)
> +            thread at 1 (/proc7/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /
> +
> +
> +test_result 0 <<EOF
> +proc1 (/proc1)
> +   fsi at 21000 (/proc1/fsi)
> +   pib at 21100 (/proc1/pib)
> +      core at 10010 (/proc1/pib/core at 10010)
> +         thread at 0 (/proc1/pib/core at 10010/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10010/thread at 1)
> +      core at 10020 (/proc1/pib/core at 10020)
> +         thread at 0 (/proc1/pib/core at 10020/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10020/thread at 1)
> +      core at 10030 (/proc1/pib/core at 10030)
> +         thread at 0 (/proc1/pib/core at 10030/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10030/thread at 1)
> +      core at 10040 (/proc1/pib/core at 10040)
> +         thread at 0 (/proc1/pib/core at 10040/thread at 0)
> +         thread at 1 (/proc1/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc1
> +
> +
> +test_result 0 <<EOF
> +proc1 (/proc1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc1
> +
> +
> +test_result 0 <<EOF
> +fsi at 20000 (/proc0/fsi)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc0/fsi
> +
> +
> +test_result 0 <<EOF
> +fsi at 20000 (/proc0/fsi)
> +   pib at 20100 (/proc0/pib)
> +      core at 10010 (/proc0/pib/core at 10010)
> +         thread at 0 (/proc0/pib/core at 10010/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10010/thread at 1)
> +      core at 10020 (/proc0/pib/core at 10020)
> +         thread at 0 (/proc0/pib/core at 10020/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10020/thread at 1)
> +      core at 10030 (/proc0/pib/core at 10030)
> +         thread at 0 (/proc0/pib/core at 10030/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10030/thread at 1)
> +      core at 10040 (/proc0/pib/core at 10040)
> +         thread at 0 (/proc0/pib/core at 10040/thread at 0)
> +         thread at 1 (/proc0/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc0/fsi
> +
> +
> +test_result 0 <<EOF
> +pib at 22100 (/proc2/pib)
> +   core at 10010 (/proc2/pib/core at 10010)
> +      thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +   core at 10020 (/proc2/pib/core at 10020)
> +      thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +   core at 10030 (/proc2/pib/core at 10030)
> +      thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +   core at 10040 (/proc2/pib/core at 10040)
> +      thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree system /proc2/pib
> +
> +
> +test_result 0 <<EOF
> +pib at 22100 (/proc2/pib)
> +   core at 10010 (/proc2/pib/core at 10010)
> +      thread at 0 (/proc2/pib/core at 10010/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10010/thread at 1)
> +   core at 10020 (/proc2/pib/core at 10020)
> +      thread at 0 (/proc2/pib/core at 10020/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10020/thread at 1)
> +   core at 10030 (/proc2/pib/core at 10030)
> +      thread at 0 (/proc2/pib/core at 10030/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10030/thread at 1)
> +   core at 10040 (/proc2/pib/core at 10040)
> +      thread at 0 (/proc2/pib/core at 10040/thread at 0)
> +      thread at 1 (/proc2/pib/core at 10040/thread at 1)
> +EOF
> +
> +test_run libpdbg_dtree_test tree backend /proc2/pib
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      proc7
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree system /proc7/pib/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      proc7
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree system /fsi at 27000/pib at 27100/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      fsi at 27000
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree backend /proc7/pib/core at 10040/thread at 1
> +
> +
> +test_result 0 <<EOF
> +thread at 1
> +  core at 10040
> +    pib at 27100
> +      fsi at 27000
> +        /
> +EOF
> +
> +test_run libpdbg_dtree_test rtree backend /fsi at 27000/pib at 27100/core at 10040/thread at 1
> 






More information about the Pdbg mailing list