public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Fix <<(fhpd) ;oust>>.
Date: Tue, 11 Dec 2007 22:53:00 -0000	[thread overview]
Message-ID: <20071211225302.2561.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  233bb4509cad26e0c903fcaba28bb5f5564ee863 (commit)
      from  2be25cf2737c5c61f4f77659d8b49d0a44f22e33 (commit)

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

- Log -----------------------------------------------------------------
commit 233bb4509cad26e0c903fcaba28bb5f5564ee863
Author: Andrew Cagney <cagney@redhat.com>
Date:   Tue Dec 11 17:52:12 2007 -0500

    Fix <<(fhpd) ;oust>>.
    
    frysk-core/frysk/hpd/ChangeLog
    2007-12-11  Andrew Cagney  <cagney@redhat.com>
    
    	* MultiLevelCommand.java (interpret(CLI,Input)): Add comment on
    	why help(CLI,Input) is called.
    	* TestPreprocessor.java: New.
    	* CLI.java (execCommand(String)): Ignore empty lines.

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

Summary of changes:
 frysk-core/frysk/hpd/CLI.java                      |   35 +++++++-------
 frysk-core/frysk/hpd/ChangeLog                     |    5 ++
 frysk-core/frysk/hpd/MultiLevelCommand.java        |    2 +
 ...ompletionFactory.java => TestPreprocessor.java} |   51 ++++++++++---------
 4 files changed, 51 insertions(+), 42 deletions(-)
 copy frysk-core/frysk/hpd/{TestCompletionFactory.java => TestPreprocessor.java} (72%)

First 500 lines of diff:
diff --git a/frysk-core/frysk/hpd/CLI.java b/frysk-core/frysk/hpd/CLI.java
index 1e072b1..d03e62d 100644
--- a/frysk-core/frysk/hpd/CLI.java
+++ b/frysk-core/frysk/hpd/CLI.java
@@ -255,24 +255,23 @@ public class CLI {
     }
 
     public String execCommand(String cmd) {
-        String pcmd = ""; // preprocessed command
-        Input command;
-
-        if (cmd != null) {
-            try {
-                // preprocess and iterate
-                for (Iterator iter = prepro.preprocess(cmd); iter.hasNext();) {
-                    pcmd = (String)iter.next();
-                    command = new Input(pcmd);
-		    topLevelCommand.interpret(this, command);
-                }
-            }
-            catch (RuntimeException e) {
-                printError(e);
-            }
-            flushMessages();
-        }
-        return null;
+	if (cmd != null) {
+	    // NULL when EOF.
+	    try {
+		// preprocess and iterate
+		for (Iterator iter = prepro.preprocess(cmd); iter.hasNext();) {
+		    String pcmd = (String)iter.next();
+		    Input command = new Input(pcmd);
+		    // Ignore empty commands
+		    if (command.size() > 0)
+			topLevelCommand.interpret(this, command);
+		}
+	    } catch (RuntimeException e) {
+		printError(e);
+	    }
+	}
+	flushMessages();
+	return null;
     }
     
     /**
diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
index 3050030..c096d29 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,5 +1,10 @@
 2007-12-11  Andrew Cagney  <cagney@redhat.com>
 
+	* MultiLevelCommand.java (interpret(CLI,Input)): Add comment on
+	why help(CLI,Input) is called.
+	* TestPreprocessor.java: New.
+	* CLI.java (execCommand(String)): Ignore empty lines.
+
 	* ListCommand.java: Update; DebugInfoFrame's .getLines() replaced
 	by getLine().
 	* StepCommand.java: Ditto.
diff --git a/frysk-core/frysk/hpd/MultiLevelCommand.java b/frysk-core/frysk/hpd/MultiLevelCommand.java
index 2a8eaea..266d5ef 100644
--- a/frysk-core/frysk/hpd/MultiLevelCommand.java
+++ b/frysk-core/frysk/hpd/MultiLevelCommand.java
@@ -132,6 +132,8 @@ public abstract class MultiLevelCommand extends Command {
     void interpret(CLI cli, Input input) {
 	String subAction = input.parameter(0);
 	if (subAction == null) {
+	    // So that typing a partial command prints the list of
+	    // possible completions.
 	    help(cli, input);
 	    return;
 	}
diff --git a/frysk-core/frysk/hpd/TestCompletionFactory.java b/frysk-core/frysk/hpd/TestPreprocessor.java
similarity index 72%
copy from frysk-core/frysk/hpd/TestCompletionFactory.java
copy to frysk-core/frysk/hpd/TestPreprocessor.java
index 3f595bd..84e4ffd 100644
--- a/frysk-core/frysk/hpd/TestCompletionFactory.java
+++ b/frysk-core/frysk/hpd/TestPreprocessor.java
@@ -39,35 +39,38 @@
 
 package frysk.hpd;
 
-import frysk.Config;
+import frysk.expunit.Regex;
+import frysk.expunit.EofException;
 
-public class TestCompletionFactory extends TestLib {
+/**
+ * Test the pre-processor which unpacks stuff like
+ * <<COMMAND;COMMAND>>.
+ */
 
-    public void setUp() {
-	super.setUp();
+public class TestPreprocessor extends TestLib {
+    public void testEmptyCompound() {
 	e = new HpdTestbed();
+	e.sendCommandExpectPrompt(";", "\r\n");
     }
-
-    /**
-     * At least two expansions of "funit-stack-" are
-     * "funit-stack-inlined" and "funit-stack-outlined"; there might
-     * also be .o files, but ignore that.
-     */
-    private void checkFunitStackCompletion() {
-	e.send(Config.getPkgLibFile("funit-stack-").getAbsolutePath());
-	e.send("\t");
-	e.expect("funit-stack-inlined\\r\\n");
-	e.expect("funit-stack-outlined\\r\\n");
-	e.expectPrompt();
-    }
-
-    public void testCompleteFirstFileNameArg() {
-	e.send("run ");
-	checkFunitStackCompletion();
+    public void testUnknownSecondCompound() {
+	e = new HpdTestbed();
+	e.sendCommandExpectPrompt(";oust", "Error: Unknown command: oust\r\n");
     }
 
-    public void testCompleteSecondFileNameArg() {
-	e.send("run a ");
-	checkFunitStackCompletion();
+    public void testEOF() {
+	e = new HpdTestbed();
+	e.send("\004"); // ^D; PTY converts this to EOF.
+	// Match just EOF, if there is any other output fail.
+	boolean eof = false;
+	try {
+	    e.expect(new Regex(".+") {
+		    public void execute() {
+			fail("Unexpected input: <<" + group() + ">>");
+		    }
+		});
+	} catch (EofException e) {
+	    eof = true;
+	}
+	assertTrue("eof", eof);
     }
 }


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


                 reply	other threads:[~2007-12-11 22:53 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=20071211225302.2561.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).