[09/10] tests: Add path based selection tests

Message ID 20181002060430.3344784-10-amitay@ozlabs.org
State Superseded
Headers show
Series
  • Device tree path base targeting
Related show

Commit Message

Amitay Isaacs Oct. 2, 2018, 6:04 a.m.
Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
---
 Makefile.am              |   1 +
 tests/test_selection2.sh | 537 +++++++++++++++++++++++++++++++++++++++
 2 files changed, 538 insertions(+)
 create mode 100755 tests/test_selection2.sh

Comments

Alistair Popple Nov. 1, 2018, 2:05 a.m. | #1
Awesome, tests! And (of course) they pass even :-)

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

On Tuesday, 2 October 2018 4:04:30 PM AEDT Amitay Isaacs wrote:
> Signed-off-by: Amitay Isaacs <amitay@ozlabs.org>
> ---
>  Makefile.am              |   1 +
>  tests/test_selection2.sh | 537 +++++++++++++++++++++++++++++++++++++++
>  2 files changed, 538 insertions(+)
>  create mode 100755 tests/test_selection2.sh
> 
> diff --git a/Makefile.am b/Makefile.am
> index 653b7d9..5fa1083 100644
> --- a/Makefile.am
> +++ b/Makefile.am
> @@ -13,6 +13,7 @@ check_PROGRAMS = $(libpdbg_tests) optcmd_test
> 
>  PDBG_TESTS = \
>  	tests/test_selection.sh 	\
> +	tests/test_selection2.sh 	\
>  	tests/test_hw_bmc.sh
> 
>  TESTS = $(libpdbg_tests) optcmd_test $(PDBG_TESTS)
> diff --git a/tests/test_selection2.sh b/tests/test_selection2.sh
> new file mode 100755
> index 0000000..96da2f8
> --- /dev/null
> +++ b/tests/test_selection2.sh
> @@ -0,0 +1,537 @@
> +#!/bin/sh
> +
> +. $(dirname "$0")/driver.sh
> +
> +test_group "path target selection tests"
> +
> +arch=$(arch 2>/dev/null)
> +
> +do_skip ()
> +{
> +	if [ "$arch" != "x86_64" ] ; then
> +		test_skip
> +	fi
> +}
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p4: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p7: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P thread probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/thread probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p4: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +p7: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P core0/thread probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p4: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p7: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c2: Fake Core
> +        t0: Fake Thread
> +        t1: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/core2/thread probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c2: Fake Core
> +        t1: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/core2/thread1 probe
> +
> +
> +test_result 0 <<EOF
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib[1-3,5,5-6]/core0/thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +p1: Fake PIB
> +    c0: Fake Core
> +p2: Fake PIB
> +    c0: Fake Core
> +p3: Fake PIB
> +    c0: Fake Core
> +p4: Fake PIB
> +    c0: Fake Core
> +p5: Fake PIB
> +    c0: Fake Core
> +p6: Fake PIB
> +    c0: Fake Core
> +p7: Fake PIB
> +    c0: Fake Core
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P core0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p4: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p7: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p1: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p2: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p3: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p4: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p5: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p6: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +p7: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P core0/thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c2: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/core0 probe
> +
> +
> +test_result 0 <<EOF
> +p0: Fake PIB
> +    c0: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib0/core0/thread0 probe
> +
> +
> +test_result 0 <<EOF
> +p1: Fake PIB
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p3: Fake PIB
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p5: Fake PIB
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +p7: Fake PIB
> +    c1: Fake Core
> +        t0: Fake Thread
> +    c3: Fake Core
> +        t0: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib[1,3,5,7,9]/core[1,3,5]/thread[0,2] probe
> +
> +
> +test_result 0 <<EOF
> +p1: Fake PIB
> +    c1: Fake Core
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t1: Fake Thread
> +p3: Fake PIB
> +    c1: Fake Core
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t1: Fake Thread
> +p5: Fake PIB
> +    c1: Fake Core
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t1: Fake Thread
> +p7: Fake PIB
> +    c1: Fake Core
> +        t1: Fake Thread
> +    c3: Fake Core
> +        t1: Fake Thread
> +EOF
> +
> +do_skip
> +test_run pdbg -b fake -P pib[1,3]/core[1,3,5]/thread1 -P
> pib[5,7-9]/core[1,3,5]/thread1 probe

Patch

diff --git a/Makefile.am b/Makefile.am
index 653b7d9..5fa1083 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -13,6 +13,7 @@  check_PROGRAMS = $(libpdbg_tests) optcmd_test
 
 PDBG_TESTS = \
 	tests/test_selection.sh 	\
+	tests/test_selection2.sh 	\
 	tests/test_hw_bmc.sh
 
 TESTS = $(libpdbg_tests) optcmd_test $(PDBG_TESTS)
diff --git a/tests/test_selection2.sh b/tests/test_selection2.sh
new file mode 100755
index 0000000..96da2f8
--- /dev/null
+++ b/tests/test_selection2.sh
@@ -0,0 +1,537 @@ 
+#!/bin/sh
+
+. $(dirname "$0")/driver.sh
+
+test_group "path target selection tests"
+
+arch=$(arch 2>/dev/null)
+
+do_skip ()
+{
+	if [ "$arch" != "x86_64" ] ; then
+		test_skip
+	fi
+}
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p4: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p7: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P thread probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/thread probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p4: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+p7: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P core0/thread probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p4: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p7: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P thread0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c2: Fake Core
+        t0: Fake Thread
+        t1: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/core2/thread probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c2: Fake Core
+        t1: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/core2/thread1 probe
+
+
+test_result 0 <<EOF
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib[1-3,5,5-6]/core0/thread0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+p1: Fake PIB
+    c0: Fake Core
+p2: Fake PIB
+    c0: Fake Core
+p3: Fake PIB
+    c0: Fake Core
+p4: Fake PIB
+    c0: Fake Core
+p5: Fake PIB
+    c0: Fake Core
+p6: Fake PIB
+    c0: Fake Core
+p7: Fake PIB
+    c0: Fake Core
+EOF
+
+do_skip
+test_run pdbg -b fake -P core0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p4: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p7: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P thread0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p1: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p2: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p3: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p4: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p5: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p6: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+p7: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P core0/thread0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+    c1: Fake Core
+        t0: Fake Thread
+    c2: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/thread0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/core0 probe
+
+
+test_result 0 <<EOF
+p0: Fake PIB
+    c0: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib0/core0/thread0 probe
+
+
+test_result 0 <<EOF
+p1: Fake PIB
+    c1: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p3: Fake PIB
+    c1: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p5: Fake PIB
+    c1: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+p7: Fake PIB
+    c1: Fake Core
+        t0: Fake Thread
+    c3: Fake Core
+        t0: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib[1,3,5,7,9]/core[1,3,5]/thread[0,2] probe
+
+
+test_result 0 <<EOF
+p1: Fake PIB
+    c1: Fake Core
+        t1: Fake Thread
+    c3: Fake Core
+        t1: Fake Thread
+p3: Fake PIB
+    c1: Fake Core
+        t1: Fake Thread
+    c3: Fake Core
+        t1: Fake Thread
+p5: Fake PIB
+    c1: Fake Core
+        t1: Fake Thread
+    c3: Fake Core
+        t1: Fake Thread
+p7: Fake PIB
+    c1: Fake Core
+        t1: Fake Thread
+    c3: Fake Core
+        t1: Fake Thread
+EOF
+
+do_skip
+test_run pdbg -b fake -P pib[1,3]/core[1,3,5]/thread1 -P pib[5,7-9]/core[1,3,5]/thread1 probe