Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 1 | |
| 2 | cache off |
| 3 | |
| 4 | set localaddr=--veyron.tcp.address=127.0.0.1:0 |
| 5 | |
| 6 | root -- $localaddr |
| 7 | eval $_ |
| 8 | set root=$MT_NAME |
| 9 | set NAMESPACE_ROOT=$root |
| 10 | setRoots $NAMESPACE_ROOT |
| 11 | |
| 12 | # run a non-proxied echo server |
| 13 | echoServer -- $localaddr noproxy echo/noproxy |
| 14 | set esnp=$_ |
| 15 | eval $esnp |
| 16 | set NP_ECHOS_NAME=$NAME |
| 17 | eval $esnp |
| 18 | set NP_ECHOS_ADDR=$ADDR |
| 19 | |
| 20 | |
| 21 | # run a proxy server |
| 22 | proxyd -- $localaddr p1 |
| 23 | set proxy=$_ |
| 24 | # PROXY_ADDR=<address of proxy> |
| 25 | eval $proxy |
| 26 | # PROXY_NAME=<name of proxy> |
| 27 | eval $proxy |
| 28 | read $proxy |
| 29 | splitEP $PROXY_ADDR |
Cosmos Nicolaou | 28f35c3 | 2014-12-01 20:36:27 -0800 | [diff] [blame] | 30 | assert $PN 7 |
| 31 | set PROXY_ADDR=$P2 |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 32 | set PROXY_RID=$P3 |
| 33 | |
| 34 | |
| 35 | # TODO(cnicolaou): figure out why ls appears to run slowly when a proxy is |
| 36 | # running, maybe a problem with the mount table. |
| 37 | #ls ... |
| 38 | #set l=$_ |
| 39 | #eval $l |
| 40 | #assert $RN 3 |
| 41 | #wait $l |
| 42 | |
| 43 | echoServer -- $localaddr --veyron.proxy=p1 withproxy echo/withproxy |
| 44 | set eswp=$_ |
| 45 | eval $eswp |
| 46 | set ECHOS_NAME=$NAME |
| 47 | eval $eswp |
| 48 | set ECHOS_ADDR=$ADDR |
| 49 | splitEP $ADDR |
| 50 | set ECHOS_RID=$P3 |
| 51 | |
| 52 | #ls ... |
| 53 | #set l=$_ |
| 54 | #eval $l |
| 55 | #assert $RN 4 |
| 56 | #wait $l |
| 57 | |
| 58 | print "root mt:" $NAMESPACE_ROOT |
Cosmos Nicolaou | 28f35c3 | 2014-12-01 20:36:27 -0800 | [diff] [blame] | 59 | print "proxy:" $PROXY_ADDR |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 60 | print "no proxy: " $NP_ECHOS_ADDR |
| 61 | print "with proxy: " $ECHOS_ADDR |
Cosmos Nicolaou | 28f35c3 | 2014-12-01 20:36:27 -0800 | [diff] [blame] | 62 | # The ipc.Server implementation publishes the proxy supplied address and |
| 63 | # the local address in the mount table |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 64 | resolve echo/withproxy |
| 65 | set rs=$_ |
| 66 | eval $rs |
Cosmos Nicolaou | 28f35c3 | 2014-12-01 20:36:27 -0800 | [diff] [blame] | 67 | assert $RN 4 |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 68 | eval $rs |
Cosmos Nicolaou | 28f35c3 | 2014-12-01 20:36:27 -0800 | [diff] [blame] | 69 | set ep1=$R0 |
| 70 | eval $rs |
| 71 | set ep2=$R1 |
| 72 | eval $rs |
| 73 | set ep3=$R2 |
| 74 | eval $rs |
| 75 | set ep4=$R3 |
| 76 | |
| 77 | splitEP $ep1 |
| 78 | assert $PN 7 |
| 79 | set ep1_addr=$P2 |
| 80 | set rid=$P3 |
| 81 | splitEP $ep2 |
| 82 | set ep2_addr=$P2 |
| 83 | splitEP $ep3 |
| 84 | set ep3_addr=$P2 |
| 85 | splitEP $ep4 |
| 86 | set ep4_addr=$P2 |
| 87 | |
| 88 | assertOneOf $PROXY_ADDR $ep1_addr $ep2_addr $ep3_addr $ep4_addr |
| 89 | assert $rid $ECHOS_RID |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 90 | |
Matt Rosencrantz | c13446b | 2014-12-03 10:37:00 -0800 | [diff] [blame] | 91 | ls -- -l echo/withproxy |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 92 | wait $_ |
Matt Rosencrantz | c13446b | 2014-12-03 10:37:00 -0800 | [diff] [blame] | 93 | ls -- -l echo/noproxy |
Cosmos Nicolaou | 4e213d7 | 2014-10-26 22:21:52 -0700 | [diff] [blame] | 94 | wait $_ |
| 95 | |
| 96 | echoClient echo/withproxy "ohh" |
| 97 | set ec=$_ |
| 98 | read $ec l |
| 99 | assert $l "withproxy: ohh" |
| 100 | |
| 101 | stop $eswp |
| 102 | stop $esnp |
| 103 | stop $proxy |
| 104 | |