From cebfbfa661b4e53cabf23bbb32c227e0b1962c77 Mon Sep 17 00:00:00 2001
From: oharboe <oharboe@b42882b7-edfa-0310-969c-e2dbd0fdcd60>
Date: Sat, 12 Jul 2008 07:50:17 +0000
Subject: [PATCH] testing/*.tcl sample & test code

git-svn-id: svn://svn.berlios.de/openocd/trunk@799 b42882b7-edfa-0310-969c-e2dbd0fdcd60
---
 src/startup.tcl      |  5 ++++
 testing/tcl_test.tcl | 65 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 70 insertions(+)
 create mode 100644 testing/tcl_test.tcl

diff --git a/src/startup.tcl b/src/startup.tcl
index 294dee28d..dc3a08957 100644
--- a/src/startup.tcl
+++ b/src/startup.tcl
@@ -19,6 +19,11 @@ proc add_help_text {cmd cmd_help} {
 	lappend ocd_helptext [list $cmd $cmd_help]
 }
 
+proc get_help_text {} {
+	global ocd_helptext
+	return $ocd_helptext
+}
+
 # Production command
 # FIX!!! need to figure out how to feed back relevant output
 # from e.g. "flash banks" command...
diff --git a/testing/tcl_test.tcl b/testing/tcl_test.tcl
new file mode 100644
index 000000000..683b4fe57
--- /dev/null
+++ b/testing/tcl_test.tcl
@@ -0,0 +1,65 @@
+if { $argc != 1 } {
+	puts "Usage: test_tcl.tcl <ipaddress>"
+	exit 1
+}
+
+puts $argv
+
+# Simple tcl client to connect to openocd
+global fo
+set fo [socket $argv 6666]
+
+# If a fn is unknown to Tcl, send it off to OpenOCD
+proc unknown args {	
+	global fo
+	puts $fo $args
+	flush $fo
+	gets $fo line
+	return $line
+}
+
+
+
+#Print help text for a command. Word wrap
+#help text that is too wide inside column.
+proc pc_help {args} {
+	global ocd_helptext
+	set cmd $args
+	foreach a [lsort $ocd_helptext] {
+		if {[string length $cmd]==0||[string first $cmd $a]!=-1||[string first $cmd [lindex $a 1]]!=-1} {
+			set w 50
+			set cmdname [lindex $a 0]
+			set h [lindex $a 1]
+			set n 0
+			while 1 {
+				if {$n > [string length $h]} {break}
+				
+				set next_a [expr $n+$w]
+				if {[string length $h]>$n+$w} {
+					set xxxx [string range $h $n [expr $n+$w]]
+					for {set lastpos [expr [string length $xxxx]-1]} {$lastpos>=0&&[string compare [string range $xxxx $lastpos $lastpos] " "]!=0} {set lastpos [expr $lastpos-1]} {
+					}
+					#set next_a -1
+					if {$lastpos!=-1} {
+						set next_a [expr $lastpos+$n+1]
+					}
+				}
+				
+				
+				puts [format "%-25s %s" $cmdname [string range $h $n [expr $next_a-1]] ]
+				set cmdname ""
+				set n [expr $next_a]
+			}
+		}
+	}
+}
+
+puts "Running flash_banks"
+puts [flash_banks]
+puts "Running help on PC using data from OpenOCD"
+global ocd_helptext
+set ocd_helptext [get_help_text]
+puts [pc_help]
+
+
+
-- 
GitLab