blob: cb0d6bc9b1ec3b5c197a295a08a522b98a3c603e [file] [log] [blame]
cache off
set localaddr=--veyron.tcp.address=127.0.0.1:0
set ws=--veyron.tcp.protocol=ws
root -- $localaddr
set m=$_
read $m
eval $m
set root=$MT_NAME
set NAMESPACE_ROOT=$root
setRoots $NAMESPACE_ROOT
print $NAMESPACE_ROOT
# run a non-proxied echo server
echoServer -- $localaddr $ws $localaddr noproxy echo/noproxy
set esnp=$_
read $esnp
eval $esnp
set NP_ECHOS_NAME=$NAME
echoClient echo/noproxy "ohh"
set ec=$_
read $ec l
assert $l "noproxy: ohh"
# run a proxy server
proxyd -- $localaddr $ws $localaddr p1
set proxy=$_
read $proxy
# PROXY_NAME=<name of proxy>
eval $proxy
splitEP $PROXY_NAME
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 $ws $localaddr --veyron.proxy=p1 withproxy echo/withproxy
set eswp=$_
read $eswp
eval $eswp
set ECHOS_NAME=$NAME
splitEP $NAME
set ECHOS_RID=$P3
echoClient echo/withproxy "ahh"
set ec=$_
read $ec l
assert $l "withproxy: ahh"
#ls ...
#set l=$_
#eval $l
#assert $RN 4
#wait $l
print "root mt:" $NAMESPACE_ROOT
print "proxy:" $PROXY_ADDR
print "no proxy: " $NP_ECHOS_NAME
print "with proxy: " $ECHOS_NAME
# The ipc.Server implementation publishes the proxy supplied address and
# the local address in the mount table
resolve echo/withproxy
set rs=$_
stop $rs
quit
eval $rs
# This will be 4 when ipc.Listen can return all of the endpoints in use,
# then the proxy can return more than one address. We only see 3 endpoints
# because the proxy server only returns one to the echo server.
assert $RN 3
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