diff test/sematest/TestEditor.java @ 303:41f05c8ff02b

*** empty log message ***
author kono
date Wed, 01 Oct 2008 18:32:38 +0900
parents 4ee012f19855
children 75192c844a8d
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: