public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Simplify log interface; escape cntrl chars; update expunit.
Date: Tue, 18 Dec 2007 17:00:00 -0000	[thread overview]
Message-ID: <20071218170010.13473.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  c0ff11aa28f8188570d8b4654c2b9c61f9c9be8d (commit)
      from  136df9efaf15a78aaa2ccb91cec7480017574611 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit c0ff11aa28f8188570d8b4654c2b9c61f9c9be8d
Author: Andrew Cagney <cagney@redhat.com>
Date:   Tue Dec 18 11:59:24 2007 -0500

    Simplify log interface; escape cntrl chars; update expunit.
    
    frysk-sys/frysk/expunit/ChangeLog
    2007-12-18  cagney  <cagney@redhat.com>
    
    	* TestEquals.java (testToString()): New.
    	* Equals.java (toString()): Return an escaped string.
    	* TestRegex.java (testToString()): New.
    	* Regex.java (toString()): Return an escaped string.
    	* Match.java (escape(String)): New.
    	* Expect.java (expectMilliseconds(long,Match[]): Use Log.log(Object,String,Object,String,int).
    
    frysk-sys/frysk/rsl/ChangeLog
    2007-12-18  cagney  <cagney@redhat.com>
    
    	* Log.java (suffix()): Rename prefix.
    	(print(Object)): Inspect the object's type.
    	(print(Throwable[])): Delete.
    	(print(Throwable)): Delete.
    	(dump(Throwable)): New.
    	(dump(Object)): New.
    	(dump(Object,int)): New.
    	(print(Object[])): Delete.
    	(print(String[])): Delete.
    	(log(Object,String,Throwable)): Delete.
    	(log(Object,String,Throwable[])): Delete.
    	(log(Object,String,Object[])): Delete.
    	(log(Object,String,long,String,Object[])): Delete.
    	(log(Object,String,Object,String,int)): New.
    	(log(Object,String,Object,String,Object,String,Object[])): Delete.
    	(log(Object,String,Object,String,Object,String,Object)): New.
    	(log(Object,String,String[])): Delete.

-----------------------------------------------------------------------

Summary of changes:
 frysk-sys/frysk/expunit/ChangeLog       |    9 ++
 frysk-sys/frysk/expunit/Equals.java     |    2 +-
 frysk-sys/frysk/expunit/Expect.java     |    9 +-
 frysk-sys/frysk/expunit/Match.java      |   11 ++
 frysk-sys/frysk/expunit/Regex.java      |    8 +-
 frysk-sys/frysk/expunit/TestEquals.java |    5 +
 frysk-sys/frysk/expunit/TestRegex.java  |    5 +
 frysk-sys/frysk/rsl/ChangeLog           |   20 ++++
 frysk-sys/frysk/rsl/Log.java            |  188 +++++++++++++------------------
 9 files changed, 139 insertions(+), 118 deletions(-)

First 500 lines of diff:
diff --git a/frysk-sys/frysk/expunit/ChangeLog b/frysk-sys/frysk/expunit/ChangeLog
index da96d7d..2a1f8be 100644
--- a/frysk-sys/frysk/expunit/ChangeLog
+++ b/frysk-sys/frysk/expunit/ChangeLog
@@ -1,3 +1,12 @@
+2007-12-18  cagney  <cagney@redhat.com>
+
+	* TestEquals.java (testToString()): New.
+	* Equals.java (toString()): Return an escaped string.
+	* TestRegex.java (testToString()): New.
+	* Regex.java (toString()): Return an escaped string. 
+	* Match.java (escape(String)): New.
+	* Expect.java (expectMilliseconds(long,Match[]): Use Log.log(Object,String,Object,String,int).
+
 2007-12-17  cagney  <cagney@redhat.com>
 
 	* Expect.java: Use frysk.rsl.Log.
diff --git a/frysk-sys/frysk/expunit/Equals.java b/frysk-sys/frysk/expunit/Equals.java
index f59bd31..d90c49b 100644
--- a/frysk-sys/frysk/expunit/Equals.java
+++ b/frysk-sys/frysk/expunit/Equals.java
@@ -56,7 +56,7 @@ public class Equals
      */
     public String toString ()
     {
-	return s;
+	return escape(s);
     }
     protected int groupCount ()
     {
diff --git a/frysk-sys/frysk/expunit/Expect.java b/frysk-sys/frysk/expunit/Expect.java
index eeed7ec..4195d48 100644
--- a/frysk-sys/frysk/expunit/Expect.java
+++ b/frysk-sys/frysk/expunit/Expect.java
@@ -192,18 +192,17 @@ public class Expect
      */
     void expectMilliseconds(long timeoutMilliseconds, Match[] matches) {
 	final long endTime = (System.currentTimeMillis() + timeoutMilliseconds);
-	fine.log(this, "expect timeout", timeoutMilliseconds, "match", matches);
+	fine.log(this, "expect", matches, "timeout [milliseconds]", (int)timeoutMilliseconds);
 	while (true) {
 	    if (matches != null) {
 		for (int i = 0; i < matches.length; i++) {
 		    Match p = matches[i];
 		    if (p != null) {
-			finest.log(this, "find", (Object) p, "in",
-				(Object) output);
+			finest.log(this, "find", p, "in", (Object) output);
 			if (p.find(output)) {
-			    fine.log(this, "match", (Object) p.group());
+			    fine.log(this, "match", (Object) p.group(), "with", p);
 			    p.execute();
-			    // Remove everying up to and including what
+			    // Remove everything up to and including what
 			    // matched.
 			    if (p.end() >= 0)
 				output = output.substring(p.end());
diff --git a/frysk-sys/frysk/expunit/Match.java b/frysk-sys/frysk/expunit/Match.java
index c0eef04..8e24262 100644
--- a/frysk-sys/frysk/expunit/Match.java
+++ b/frysk-sys/frysk/expunit/Match.java
@@ -46,6 +46,17 @@ package frysk.expunit;
 public abstract class Match
 {
     /**
+     * Escape any characters in S so it looks something like a quoted-string seen in java.
+     * @param s the unescaped string
+     * @return the escaped string
+     */
+    public static String escape(String s) {
+	return s.replaceAll("\r", "\\\\r")
+		.replaceAll("\n", "\\\\n")
+		.replaceAll("\t", "\\\\t")
+		.replaceAll("\f", "\\\\f");
+    }
+    /**
      * Find the pattern in the output, normally this is an unanchored
      * match.
      */
diff --git a/frysk-sys/frysk/expunit/Regex.java b/frysk-sys/frysk/expunit/Regex.java
index 084b28d..197a05e 100644
--- a/frysk-sys/frysk/expunit/Regex.java
+++ b/frysk-sys/frysk/expunit/Regex.java
@@ -57,13 +57,11 @@ public class Regex
     /**
      * String representing this object - the patter it matches.
      */
-    public String toString ()
-    {
-	return pattern.pattern ();
+    public String toString() {
+	return escape(pattern.pattern());
     }
     /**
-     * Find the pattern in the output, normally this is an unanchored
-     * match.
+     * Find the pattern in the output, normally this is an unanchored match.
      */
     private Matcher matcher;
     boolean find (String output)
diff --git a/frysk-sys/frysk/expunit/TestEquals.java b/frysk-sys/frysk/expunit/TestEquals.java
index e63350d..74780b1 100644
--- a/frysk-sys/frysk/expunit/TestEquals.java
+++ b/frysk-sys/frysk/expunit/TestEquals.java
@@ -98,4 +98,9 @@ public class TestEquals
 		}
 	    });
     }
+    
+    public void testToString() {
+	Match m = new Equals("\r\n\t\f\"\'");
+	assertEquals("toString", "\\r\\n\\t\\f\"\'", m.toString());
+    }
 }
diff --git a/frysk-sys/frysk/expunit/TestRegex.java b/frysk-sys/frysk/expunit/TestRegex.java
index 65e600d..ba277bf 100644
--- a/frysk-sys/frysk/expunit/TestRegex.java
+++ b/frysk-sys/frysk/expunit/TestRegex.java
@@ -111,4 +111,9 @@ public class TestRegex
 		}
 	    });
     }
+    
+    public void testToString() {
+	Match m = new Regex("\r\n\t\f\"\'");
+	assertEquals("toString", "\\r\\n\\t\\f\"\'", m.toString());
+    }
 }
diff --git a/frysk-sys/frysk/rsl/ChangeLog b/frysk-sys/frysk/rsl/ChangeLog
index 201f560..55f7ec3 100644
--- a/frysk-sys/frysk/rsl/ChangeLog
+++ b/frysk-sys/frysk/rsl/ChangeLog
@@ -1,3 +1,23 @@
+2007-12-18  cagney  <cagney@redhat.com>
+
+	* Log.java (suffix()): Rename prefix. 
+	(print(Object)): Inspect the object's type.
+	(print(Throwable[])): Delete.
+	(print(Throwable)): Delete.
+	(dump(Throwable)): New.
+	(dump(Object)): New.
+	(dump(Object,int)): New.
+	(print(Object[])): Delete.
+	(print(String[])): Delete.
+	(log(Object,String,Throwable)): Delete.
+	(log(Object,String,Throwable[])): Delete.
+	(log(Object,String,Object[])): Delete.
+	(log(Object,String,long,String,Object[])): Delete.
+	(log(Object,String,Object,String,int)): New.
+	(log(Object,String,Object,String,Object,String,Object[])): Delete.
+	(log(Object,String,Object,String,Object,String,Object)): New.
+	(log(Object,String,String[])): Delete.
+
 2007-12-17  cagney  <cagney@redhat.com>
 
 	* Log.java (log(...)): Rename message(...).
diff --git a/frysk-sys/frysk/rsl/Log.java b/frysk-sys/frysk/rsl/Log.java
index 9336d90..b8d87f3 100644
--- a/frysk-sys/frysk/rsl/Log.java
+++ b/frysk-sys/frysk/rsl/Log.java
@@ -42,6 +42,7 @@ package frysk.rsl;
 import java.io.PrintStream;
 import java.util.List;
 import java.text.MessageFormat;
+import java.lang.reflect.Array;
 
 /**
  * Generate log information when enabled.
@@ -155,11 +156,69 @@ public final class Log {
 	out.print("]:");
     }
 
-    private void postfix() {
+    private void suffix() {
 	out.println();
 	out.flush();
     }
-
+  
+    /**
+     * Throwables get their message printed; along with any root
+     * causes.
+     */
+    private void dump(Throwable t) {
+	out.print("<<exception");
+	Throwable cause = t;
+	do {
+	    out.print(":");
+	    out.print(t.getMessage());
+	    cause = cause.getCause();
+	} while (cause != null);
+	out.print(">>");
+    }
+    private void dump(String s) {
+	out.print("\"");
+	out.print(s
+		.replaceAll("\"", "\\\\\"")
+		.replaceAll("\'", "\\\\\'")
+		.replaceAll("\r", "\\\\r")
+		.replaceAll("\n", "\\\\n")
+		.replaceAll("\t", "\\\\t")
+		.replaceAll("\f", "\\\\f"));
+	out.print("\"");
+    }
+    /**
+     * Dump the array object's i'th element
+     * @param o the array object
+     * @param i the array index
+     */
+    private void dump(Object o, int i) {
+	// for moment assume the array contains Objects; dump recursively.
+	dump(Array.get(o, i));
+    }
+    /**
+     * Dump an arbitrary object.
+     * @param o the object to dump
+     */
+    private void dump(Object o) {
+	if (o.getClass().isArray()) {
+	    out.print("[");
+	    for (int i = 0; i < Array.getLength(o); i++) {
+		if (i > 0)
+		    out.print(",");
+		dump(o, i);
+	    }
+	    out.print("]");
+	} else if (o instanceof Throwable)
+	    dump((Throwable) o);
+	else if (o instanceof String)
+	    dump((String)o);
+	else {
+	    out.print("<<");
+	    out.print(o.toString());
+	    out.print(">>");
+	}
+    }
+    
     /**
      * Integers are printed in decimal.
      */
@@ -200,57 +259,12 @@ public final class Log {
 	out.print(" ");
 	out.print(s);
     }
-    private void print(String[] a) {
-	out.print(" [");
-	for (int i = 0; i < a.length; i++) {
-	    if (i > 0)
-		out.print(",");
-	    out.print(a[i]);
-	}
-	out.print("]");
-    }
     /**
-     * Objects are wrapped in "[" and "]".
+     * Use poorly implemented reflection to dump Objectss.
      */
     private void print(Object o) {
-	out.print(" <<");
-	out.print(o.toString());
-	out.print(">>");
-    }
-    private void print(Object[] a) {
-	out.print(" [");
-	for (int i = 0; i < a.length; i++) {
-	    if (i > 0)
-		out.print(",");
-	    out.print("<<");
-	    out.print(a[i].toString());
-	    out.print(">>");
-	}
-	out.print("]");
-    }
-    /**
-     * Throwables get their message printed; along with any root
-     * causes.
-     */
-    private void print(Throwable t) {
-	out.print(" exception");
-	Throwable cause = t;
-	do {
-	    out.print(":");
-	    out.print(t.getMessage());
-	    cause = cause.getCause();
-	} while (cause != null);
-    }
-    private void print(Throwable[] t) {
-	out.print(" exception");
-	for (int i = 0; i < t.length; i++) {
-	    Throwable cause = t[i];
-	    do {
-		out.print(":");
-		out.print(cause.getMessage());
-		cause = cause.getCause();
-	    } while (cause != null);
-	}
+	out.print(" ");
+	dump(o);
     }
     
     /**
@@ -261,7 +275,7 @@ public final class Log {
 	    return;
 	prefix();
 	print(MessageFormat.format(msg, o));
-	postfix();
+	suffix();
     }
     /**
      * For compatibility with existing loggers.
@@ -271,7 +285,7 @@ public final class Log {
 	    return;
 	prefix();
 	print(MessageFormat.format(msg, new Object[] { o }));
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -280,14 +294,14 @@ public final class Log {
 	    return;
 	prefix();
 	print(p1);
-	postfix();
+	suffix();
     }
     
     public void log(Object self, String p1) {
 	if (!logging)
 	    return;
 	print(p1);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -297,7 +311,7 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -307,7 +321,7 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -317,7 +331,7 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -327,7 +341,7 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -337,7 +351,7 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
+	suffix();
     }
 
     // Add at will and on demand.
@@ -347,50 +361,10 @@ public final class Log {
 	prefix(self);
 	print(p1);
 	print(p2);
-	postfix();
-    }
-
-    // Add at will and on demand.
-    public void log(Object self, String p1, String[] p2) {
-	if (!logging)
-	    return;
-	prefix(self);
-	print(p1);
-	print(p2);
-	postfix();
-    }
-
-    // Add at will and on demand.
-    public void log(Object self, String p1, Object[] p2) {
-	if (!logging)
-	    return;
-	prefix(self);
-	print(p1);
-	print(p2);
-	postfix();
-    }
-
-    // Add at will and on demand.
-    public void log(Object self, String p1, Throwable p2) {
-	if (!logging)
-	    return;
-	prefix(self);
-	print(p1);
-	print(p2);
-	postfix();
+	suffix();
     }
 
-    // Add at will and on demand.
-    public void log(Object self, String p1, Throwable[] p2) {
-	if (!logging)
-	    return;
-	prefix(self);
-	print(p1);
-	print(p2);
-	postfix();
-    }
-
-    public void log(Object self, String p1, long p2, String p3, Object[] p4) {
+    public void log(Object self, String p1, Object p2, String p3, Object p4) {
 	if (!logging)
 	    return;
 	prefix(self);
@@ -398,9 +372,10 @@ public final class Log {
 	print(p2);
 	print(p3);
 	print(p4);
-	postfix();
+	suffix();
     }
-    public void log(Object self, String p1, Object p2, String p3, Object p4) {
+    
+    public void log(Object self, String p1, Object p2, String p3, int p4) {
 	if (!logging)
 	    return;
 	prefix(self);
@@ -408,11 +383,10 @@ public final class Log {
 	print(p2);
 	print(p3);
 	print(p4);
-	postfix();
+	suffix();
     }
     
-    public void log(Object self, String p1, Object p2, String p3, Object p4,
-	    String p5, String[] p6) {
+    public void log(Object self, String p1, Object p2, String p3, Object p4, String p5, Object p6) {
 	if (!logging)
 	    return;
 	prefix(self);
@@ -422,6 +396,6 @@ public final class Log {
 	print(p4);
 	print(p5);
 	print(p6);
-	postfix();
+	suffix();
     }
 }


hooks/post-receive
--
frysk system monitor/debugger


                 reply	other threads:[~2007-12-18 17:00 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071218170010.13473.qmail@sourceware.org \
    --to=cagney@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --cc=frysk@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).