blob: fe4f59bef839a9d59f0b9c1d5d73b1bed9bc551c [file] [log] [blame]
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -07001# Simple example to show how names work both without and with a mount table
2# and the difference between resolve and resolveMT.
3
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -07004set localaddr=--veyron.tcp.address=127.0.0.1:0
Cosmos Nicolaouae8dd212014-12-13 23:43:08 -08005set ws=--veyron.tcp.protocol=ws
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -07006
Cosmos Nicolaouae8dd212014-12-13 23:43:08 -08007setRoots
Cosmos Nicolaou4b5f70f2014-12-05 12:42:58 -08008
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -07009# A 'stand-alone' server
Cosmos Nicolaouae8dd212014-12-13 23:43:08 -080010echoServer -- $localaddr $ws $localaddr "text" ""
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070011set es=$_
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070012read $es
Cosmos Nicolaou28dabfc2014-12-15 22:51:07 -080013eval $es
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070014set esName=$NAME
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070015
16echoClient $esName "test"
17set ec=$_
18read $ec line
19assert $line "text: test"
20
Cosmos Nicolaou19a7cd42014-09-25 09:52:16 -070021stop $es
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070022wait $ec
23
24# now use a nameserver.
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -070025root -- $localaddr
Cosmos Nicolaou28dabfc2014-12-15 22:51:07 -080026set r=$_
27read $r
28eval $r
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070029set root=$MT_NAME
30
31set NAMESPACE_ROOT=$root
Cosmos Nicolaouae8dd212014-12-13 23:43:08 -080032echoServer -- $localaddr $ws $localaddr "text2" "a/b"
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070033set es=$_
Cosmos Nicolaou28dabfc2014-12-15 22:51:07 -080034read $es
35eval $es
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070036set es_name=$NAME
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070037
38echoClient "a/b" "test 2"
39set ec=$_
40read $ec line
41assert $line "text2: test 2"
42
43# resolve will return the server's address
44setRoots $root
45resolve a/b
46set r=$_
47eval $r
Cosmos Nicolaou28f35c32014-12-01 20:36:27 -080048assert $RN 2
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070049eval $r
Cosmos Nicolaou28f35c32014-12-01 20:36:27 -080050set ep1=$R0
51eval $r
52set ep2=$R1
53assertOneOf $es_name $ep1 $ep2
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070054
55# resolveMT will return the mount table's address (the part before the //)
56resolveMT a/b
57set r=$_
58eval $r
59assert $RN 1
60eval $r
Cosmos Nicolaou28f35c32014-12-01 20:36:27 -080061assert $R0 $root/a/b
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070062
Cosmos Nicolaou19a7cd42014-09-25 09:52:16 -070063stop $es