changeset 303:41f05c8ff02b

*** empty log message ***
author kono
date Wed, 01 Oct 2008 18:32:38 +0900
parents 4ee012f19855
children 75192c844a8d
files test/sematest/TestEditor.java test/sematest/TestSessionManager.java
diffstat 2 files changed, 33 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/test/sematest/TestEditor.java	Wed Oct 01 17:03:20 2008 +0900
+++ b/test/sematest/TestEditor.java	Wed Oct 01 18:32:38 2008 +0900
@@ -37,22 +37,23 @@
 	private boolean inputLock=false;
 	public boolean detached=false;
 	public boolean master=false;
-	private int syncCounter;
+	private int syncCounter=0;
 	private boolean hasInputLock=true;
 
-	static private String[] text1d = {
-		"aaa", "bbb", "ccc", "ddd", "eee",
-	};	
-	
+
 	public TestEditor(String name, String _host,int _port, boolean master){
 		super(name);
+		LinkedList<REPCommand>cmdList = new LinkedList<REPCommand>();
+		String[] txts = {
+			"aaa", "bbb", "ccc", "ddd", "eee",
+		};	
 		semaIP = new InetSocketAddress(_host, _port);
 		ns = REPLogger.singleton();
 		this.name = name;
-		cmds = new LinkedList<REPCommand>();
+		cmds = cmdList;
 		if (master) {
 			this.master=true;
-			text = new Text(text1d);
+			text = new Text(txts);
 			cmds.add(new REPCommand(REP.SMCMD_PUT,0,0,0,0,name+"-file"));
 			cmds.add(new REPCommand(REP.REPCMD_INSERT,0,0,0,0,"m0"));
 			cmds.add(new REPCommand(REP.REPCMD_DELETE,0,0,0,0,"m0"));
@@ -62,7 +63,19 @@
 			cmds.add(new REPCommand(REP.SMCMD_JOIN,0,0,0,0,name));
 			cmds.add(new REPCommand(REP.REPCMD_INSERT,0,0,0,0,"c0"));
 			cmds.add(new REPCommand(REP.REPCMD_DELETE,0,0,0,0,"c0"));
-			//cmds.add(new REPCommand(REP.SMCMD_QUIT,0,0,0,0,""));
+		}
+	}
+	
+	public TestEditor(String name, String _host,int _port, boolean master,
+			String[] txts,LinkedList<REPCommand> cmdList){
+		super(name);
+		semaIP = new InetSocketAddress(_host, _port);
+		ns = REPLogger.singleton();
+		this.name = name;
+		cmds = cmdList;
+		if (master) {
+			this.master=true;
+			text = new Text(txts);
 		}
 	}
 
@@ -157,7 +170,7 @@
 				 * clients simply disconnect from the session manager.
 				 */
 				cmds.clear();
-				sendCommand(cmd,cmd.seq++);
+				sendCommand(cmd,seq++);
 				break;
 			case SMCMD_JOIN:
 			case SMCMD_PUT:
@@ -224,7 +237,11 @@
 			 inputLock = false;
 			 break;
 		 case SMCMD_QUIT		:
-			 sendCommand(cmd,seq);
+			 if (cmd.eid!=eid)
+				 sendCommand(cmd,cmd.seq);
+			 else
+				 sendCommand(new REPCommand(REP.SMCMD_QUIT_2, 
+						 sid, eid, seq, 0, ""),seq++);
 			 cmds.clear();
 			 break;
 		 case SMCMD_QUIT_ACK	:
@@ -243,7 +260,9 @@
 			 inputLock = false;
 			 break;
 		 case SMCMD_QUIT_2 :
-			 sendCommand(cmd,cmd.seq);
+			 if (cmd.eid!=eid) {
+				 sendCommand(cmd,cmd.seq);
+			 }
 			 running = false;
 			 break;
 		 case SMCMD_SYNC:
--- a/test/sematest/TestSessionManager.java	Wed Oct 01 17:03:20 2008 +0900
+++ b/test/sematest/TestSessionManager.java	Wed Oct 01 18:32:38 2008 +0900
@@ -27,7 +27,7 @@
 	 *    Connect port for each editor
 	 *    Master/client flag for each editor
 	 *    Editor or slave session manager must be started by
-	 *      master session manager using syncExec.
+	 *      master session managers using syncExec.
 	 */
 	int editorPort[] = {masterPort,masterPort};
 	boolean editorMaster[] = {true,false};
@@ -47,7 +47,7 @@
 	
 	/*
 	 * Create all editors, master session managers and slave session 
-	 * managers with specfied port. All instances are not started yet.
+	 * managers with specified port. All instances are not started yet.
 	 */
 	
 	public TestSessionManager(int sm, int ss, int e) {
@@ -76,6 +76,7 @@
 		final SessionManagerGUI gui = new TestGUI(sm);
 		final int port1 = port;
 		logger.writeLog("TestSessionManager.startSessionManager() : start SessionManager");
+		// syncExec does not wake selector, do this before run().
 		if (i<ev1.length)
 			sm.syncExec(ev1[i]);
 		Runnable start = new Runnable() {