blob: ec514f36bdd2ce6e9bf9a5791ebe7112ee46722e [file] [log] [blame]
cache off
set localaddr=--veyron.tcp.address=127.0.0.1:0
root -- $localaddr
eval $_
set root=$MT_NAME
set NAMESPACE_ROOT=$root
setRoots $NAMESPACE_ROOT
# run a non-proxied echo server
echoServer -- $localaddr noproxy echo/noproxy
set esnp=$_
eval $esnp
set NP_ECHOS_NAME=$NAME
eval $esnp
set NP_ECHOS_ADDR=$ADDR
# run a proxy server
proxyd -- $localaddr p1
set proxy=$_
# PROXY_ADDR=<address of proxy>
eval $proxy
# PROXY_NAME=<name of proxy>
eval $proxy
read $proxy
splitEP $PROXY_ADDR
assert $PN 7
set PROXY_ADDR=$P2
set PROXY_RID=$P3
# TODO(cnicolaou): figure out why ls appears to run slowly when a proxy is
# running, maybe a problem with the mount table.
#ls ...
#set l=$_
#eval $l
#assert $RN 3
#wait $l
echoServer -- $localaddr --veyron.proxy=p1 withproxy echo/withproxy
set eswp=$_
eval $eswp
set ECHOS_NAME=$NAME
eval $eswp
set ECHOS_ADDR=$ADDR
splitEP $ADDR
set ECHOS_RID=$P3
#ls ...
#set l=$_
#eval $l
#assert $RN 4
#wait $l
print "root mt:" $NAMESPACE_ROOT
print "proxy:" $PROXY_ADDR
print "no proxy: " $NP_ECHOS_ADDR
print "with proxy: " $ECHOS_ADDR
# The ipc.Server implementation publishes the proxy supplied address and
# the local address in the mount table
resolve echo/withproxy
set rs=$_
eval $rs
assert $RN 4
eval $rs
set ep1=$R0
eval $rs
set ep2=$R1
eval $rs
set ep3=$R2
eval $rs
set ep4=$R3
splitEP $ep1
assert $PN 7
set ep1_addr=$P2
set rid=$P3
splitEP $ep2
set ep2_addr=$P2
splitEP $ep3
set ep3_addr=$P2
splitEP $ep4
set ep4_addr=$P2
assertOneOf $PROXY_ADDR $ep1_addr $ep2_addr $ep3_addr $ep4_addr
assert $rid $ECHOS_RID
ls -- -l echo/withproxy
wait $_
ls -- -l echo/noproxy
wait $_
echoClient echo/withproxy "ohh"
set ec=$_
read $ec l
assert $l "withproxy: ohh"
stop $eswp
stop $esnp
stop $proxy