| # Simple example showing multiple mount tables, servers and globing |
| |
| set localaddr="--veyron.tcp.address=127.0.0.1:0" |
| |
| root -- $localaddr |
| eval $_ |
| set root=$MT_NAME |
| |
| set NAMESPACE_ROOT=$root |
| mt -- $localaddr usa |
| eval $_ |
| set usa_mt=$MT_NAME |
| mt -- $localaddr uk |
| eval $_ |
| set uk_mt=$MT_NAME |
| |
| ls $root/... |
| set l=$_ |
| eval $l |
| assert $RN 3 |
| wait $l |
| |
| set NAMESPACE_ROOT=$usa_mt |
| mt -- $localaddr "palo alto" |
| eval $_ |
| set pa_mt=$MT_NAME |
| |
| set NAMESPACE_ROOT=$uk_mt |
| mt -- $localaddr "cambridge" |
| eval $_ |
| set cam_mt=$MT_NAME |
| |
| ls $root/... |
| set l=$_ |
| eval $l |
| assert $RN 7 |
| wait $l |
| |
| ls -- -l $root/... |
| wait $_ |
| |
| resolve $root/usa |
| set r=$_ |
| eval $r |
| # We get two endpoints back, in arbitrary order |
| # one of which is 'ws', the other 'tcp' |
| assert $RN 2 |
| eval $r |
| set ep1=$R0 |
| eval $r |
| set ep2=$R1 |
| assertOneOf $usa_mt $ep1 $ep2 |
| wait $r |
| |
| resolve "$root/usa/palo alto" |
| set r=$_ |
| assert $RN 2 |
| eval $r |
| # this resolves to the mount table hosting palo alto, not the mount table |
| # that would host any objects mounted on .../palo alto/... |
| # but the uk/cambridge example below seems to behave the opposite way? |
| eval $r |
| set ep1=$R0 |
| eval $r |
| set ep2=$R1 |
| assertOneOf $pa_mt $ep1 $ep2 |
| wait $r |
| |
| resolve $root/uk |
| set r=$_ |
| eval $r |
| assert $RN 2 |
| eval $r |
| set ep1=$R0 |
| eval $r |
| set ep2=$R1 |
| assertOneOf $uk_mt $ep1 $ep2 |
| wait $r |
| |
| resolve "$root/uk/cambridge" |
| set r=$_ |
| eval $r |
| assert $RN 2 |
| eval $r |
| set ep1=$R0 |
| eval $r |
| set ep2=$R1 |
| # this behaves differently to the usa/palo alto case? |
| assertOneOf $cam_mt $ep1 $ep2 |
| wait $r |