gdb: testsuite: add new gdb_attach to check "attach" command
authorTiezhu Yang <yangtiezhu@loongson.cn>
Thu, 17 Mar 2022 02:22:14 +0000 (10:22 +0800)
committerTiezhu Yang <yangtiezhu@loongson.cn>
Wed, 23 Mar 2022 03:56:38 +0000 (11:56 +0800)
This commit adds new gdb_attach to centralize the failure checking of
"attach" command. Return 0 if attach failed, otherwise return 1.

Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
gdb/testsuite/lib/gdb.exp

index 892bf07266e51b73a42105ca772dc3d8564fb61b..d8015fb92ec8ef605f4dbec5dbdfb79a4dc2ee21 100644 (file)
@@ -5143,6 +5143,32 @@ proc can_spawn_for_attach { } {
     return 1
 }
 
+# Centralize the failure checking of "attach" command.
+# Return 0 if attach failed, otherwise return 1.
+
+proc gdb_attach { testpid args } {
+    parse_args {
+       {pattern ""}
+    }
+
+    if { [llength $args] != 0 } {
+       error "Unexpected arguments: $args"
+    }
+
+    gdb_test_multiple "attach $testpid" "attach" {
+       -re -wrap "Attaching to.*ptrace: Operation not permitted\\." {
+           unsupported "$gdb_test_name (Operation not permitted)"
+           return 0
+       }
+       -re -wrap "$pattern" {
+           pass $gdb_test_name
+           return 1
+       }
+    }
+
+    return 0
+}
+
 # Kill a progress previously started with spawn_wait_for_attach, and
 # reap its wait status.  PROC_SPAWN_ID is the spawn id associated with
 # the process.