Browse Source

Merge pull request #8244 from heyitsanthony/bridge-default-passthrough

bridge: make pass-through the default
Anthony Romano 8 years ago
parent
commit
ae33c5e82a
3 changed files with 40 additions and 20 deletions
  1. 6 6
      tools/local-tester/Procfile
  2. 16 0
      tools/local-tester/bridge.sh
  3. 18 14
      tools/local-tester/bridge/bridge.go

+ 6 - 6
tools/local-tester/Procfile

@@ -1,14 +1,14 @@
 # Use goreman to run `go get github.com/mattn/goreman`
 
 # peer bridges
-pbridge1: tools/local-tester/bridge/bridge 127.0.0.1:11111 127.0.0.1:12380
-pbridge2: tools/local-tester/bridge/bridge 127.0.0.1:22222 127.0.0.1:22380
-pbridge3: tools/local-tester/bridge/bridge 127.0.0.1:33333 127.0.0.1:32380
+pbridge1: tools/local-tester/bridge.sh 127.0.0.1:11111 127.0.0.1:12380
+pbridge2: tools/local-tester/bridge.sh 127.0.0.1:22222 127.0.0.1:22380
+pbridge3: tools/local-tester/bridge.sh 127.0.0.1:33333 127.0.0.1:32380
 
 # client bridges
-cbridge1: tools/local-tester/bridge/bridge 127.0.0.1:2379 127.0.0.1:11119
-cbridge2: tools/local-tester/bridge/bridge 127.0.0.1:22379 127.0.0.1:22229
-cbridge3: tools/local-tester/bridge/bridge 127.0.0.1:32379 127.0.0.1:33339
+cbridge1: tools/local-tester/bridge.sh 127.0.0.1:2379 127.0.0.1:11119
+cbridge2: tools/local-tester/bridge.sh 127.0.0.1:22379 127.0.0.1:22229
+cbridge3: tools/local-tester/bridge.sh 127.0.0.1:32379 127.0.0.1:33339
 
 faults: tools/local-tester/faults.sh
 

+ 16 - 0
tools/local-tester/bridge.sh

@@ -0,0 +1,16 @@
+#!/bin/sh
+
+exec tools/local-tester/bridge/bridge \
+	-delay-accept		\
+	-reset-listen		\
+	-conn-fault-rate=0.25	\
+	-immediate-close	\
+	-blackhole		\
+	-time-close		\
+	-write-remote-only	\
+	-read-remote-only	\
+	-random-blackhole	\
+	-corrupt-receive	\
+	-corrupt-send		\
+	-reorder		\
+	$@

+ 18 - 14
tools/local-tester/bridge/bridge.go

@@ -193,19 +193,19 @@ type connFaultFunc func(*bridgeConn)
 func main() {
 	var cfg config
 
-	flag.BoolVar(&cfg.delayAccept, "delay-accept", true, "delays accepting new connections")
-	flag.BoolVar(&cfg.resetListen, "reset-listen", true, "resets the listening port")
-
-	flag.Float64Var(&cfg.connFaultRate, "conn-fault-rate", 0.25, "rate of faulty connections")
-	flag.BoolVar(&cfg.immediateClose, "immediate-close", true, "close after accept")
-	flag.BoolVar(&cfg.blackhole, "blackhole", true, "reads nothing, writes go nowhere")
-	flag.BoolVar(&cfg.timeClose, "time-close", true, "close after random time")
-	flag.BoolVar(&cfg.writeRemoteOnly, "write-remote-only", true, "only write, no read")
-	flag.BoolVar(&cfg.readRemoteOnly, "read-remote-only", true, "only read, no write")
-	flag.BoolVar(&cfg.randomBlackhole, "random-blackhole", true, "blackhole after data xfer")
-	flag.BoolVar(&cfg.corruptReceive, "corrupt-receive", true, "corrupt packets received from destination")
-	flag.BoolVar(&cfg.corruptSend, "corrupt-send", true, "corrupt packets sent to destination")
-	flag.BoolVar(&cfg.reorder, "reorder", true, "reorder packet delivery")
+	flag.BoolVar(&cfg.delayAccept, "delay-accept", false, "delays accepting new connections")
+	flag.BoolVar(&cfg.resetListen, "reset-listen", false, "resets the listening port")
+
+	flag.Float64Var(&cfg.connFaultRate, "conn-fault-rate", 0.0, "rate of faulty connections")
+	flag.BoolVar(&cfg.immediateClose, "immediate-close", false, "close after accept")
+	flag.BoolVar(&cfg.blackhole, "blackhole", false, "reads nothing, writes go nowhere")
+	flag.BoolVar(&cfg.timeClose, "time-close", false, "close after random time")
+	flag.BoolVar(&cfg.writeRemoteOnly, "write-remote-only", false, "only write, no read")
+	flag.BoolVar(&cfg.readRemoteOnly, "read-remote-only", false, "only read, no write")
+	flag.BoolVar(&cfg.randomBlackhole, "random-blackhole", false, "blackhole after data xfer")
+	flag.BoolVar(&cfg.corruptReceive, "corrupt-receive", false, "corrupt packets received from destination")
+	flag.BoolVar(&cfg.corruptSend, "corrupt-send", false, "corrupt packets sent to destination")
+	flag.BoolVar(&cfg.reorder, "reorder", false, "reorder packet delivery")
 
 	flag.StringVar(&cfg.txDelay, "tx-delay", "0", "duration to delay client transmission to server")
 	flag.StringVar(&cfg.rxDelay, "rx-delay", "0", "duration to delay client receive from server")
@@ -287,6 +287,10 @@ func main() {
 		connFaults = append(connFaults, f)
 	}
 
+	if len(connFaults) > 1 && cfg.connFaultRate == 0 {
+		log.Fatal("connection faults defined but conn-fault-rate=0")
+	}
+
 	var disp dispatcher
 	if cfg.reorder {
 		disp = newDispatcherPool()
@@ -302,7 +306,7 @@ func main() {
 		}
 
 		r := rand.Intn(len(connFaults))
-		if rand.Intn(100) > int(100.0*cfg.connFaultRate) {
+		if rand.Intn(100) >= int(100.0*cfg.connFaultRate) {
 			r = 0
 		}