# Simple example to show how names work both without and with a mount table
# and the difference between resolve and resolveMT.

# A 'stand-alone' server
echoServer "text" ""
set es=$_
eval $es
eval $es
read $es
set esName=$NAME
set esAddr=$ADDR

echoClient $esName "test"
set ec=$_
read $ec line
assert $line "text: test"

stop $es
wait $ec

# now use a nameserver.
root
eval $_
set root=$MT_NAME

set NAMESPACE_ROOT=$root
echoServer "text2" "a/b"
set es=$_
eval $es
set es_name=$NAME
set es_addr=$ADDR
read $es

echoClient "a/b" "test 2"
set ec=$_
read $ec line
assert $line "text2: test 2"

# resolve will return the server's address
setRoots $root
resolve a/b
set r=$_
eval $r
assert $RN 1
eval $r
assert $R0 $es_name//

# resolveMT will return the mount table's address (the part before the //)
resolveMT a/b
set r=$_
eval $r
assert $RN 1
eval $r
assert $R0 $root//a/b

stop $es
