blob: c957371b45e15982290a3b3f9163874a30550bfa [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
5
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -07006# A 'stand-alone' server
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -07007echoServer -- $localaddr "text" ""
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -07008set es=$_
9eval $es
10eval $es
11read $es
12set esName=$NAME
13set esAddr=$ADDR
14
15echoClient $esName "test"
16set ec=$_
17read $ec line
18assert $line "text: test"
19
Cosmos Nicolaou19a7cd42014-09-25 09:52:16 -070020stop $es
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070021wait $ec
22
23# now use a nameserver.
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -070024root -- $localaddr
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070025eval $_
26set root=$MT_NAME
27
28set NAMESPACE_ROOT=$root
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -070029echoServer -- $localaddr "text2" "a/b"
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070030set es=$_
31eval $es
32set es_name=$NAME
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070033read $es
Cosmos Nicolaou4e213d72014-10-26 22:21:52 -070034set es_addr=$ADDR
Cosmos Nicolaou9c9918d2014-09-23 08:45:56 -070035
36echoClient "a/b" "test 2"
37set ec=$_
38read $ec line
39assert $line "text2: test 2"
40
41# resolve will return the server's address
42setRoots $root
43resolve a/b
44set r=$_
45eval $r
46assert $RN 1
47eval $r
48assert $R0 $es_name//
49
50# resolveMT will return the mount table's address (the part before the //)
51resolveMT a/b
52set r=$_
53eval $r
54assert $RN 1
55eval $r
56assert $R0 $root//a/b
57
Cosmos Nicolaou19a7cd42014-09-25 09:52:16 -070058stop $es