diff options
Diffstat (limited to 'libslang/src/test/nspace2.sl')
-rw-r--r-- | libslang/src/test/nspace2.sl | 70 |
1 files changed, 70 insertions, 0 deletions
diff --git a/libslang/src/test/nspace2.sl b/libslang/src/test/nspace2.sl new file mode 100644 index 0000000..d13c15d --- /dev/null +++ b/libslang/src/test/nspace2.sl @@ -0,0 +1,70 @@ +#ifexists This_Namespace +if (This_Namespace == "NS3") + { + if (current_namespace () != "NS3") + { + failed ("evalfile in NS3"); + } + } +else + implements (This_Namespace); +%vmessage ("Loading ..."); +% From this point on, define and variable defaults to static +private variable NS = This_Namespace; +define func () +{ + return NS; +} +#else +variable This_Namespace; +_debug_info = 1; () = evalfile ("inc.sl"); + +print ("Testing more NameSpace routines ..."); +This_Namespace = "NS1"; +() = evalfile (__FILE__); +This_Namespace = "NS2"; +() = evalfile (__FILE__); + +This_Namespace = "NS3"; +() = evalfile (__FILE__, "NS3"); + +use_namespace ("NS1"); +if (func () != "NS1") + failed ("use_namespace 1, found %s", func()); + +use_namespace ("NS2"); +if (func () != "NS2") + failed ("use_namespace 2"); + +use_namespace ("Global"); +if (is_defined ("func")) + failed ("use_namespace Global"); + +if (NS1->func () != "NS1") + failed ("NS1->func"); +if (NS2->func () != "NS2") + failed ("NS2->func"); + +if ("NS1" != eval ("func", "NS1")) + failed ("eval in NS1"); +if ("NS2" != eval ("func", "NS2")) + failed ("eval in NS2"); +if ("NS3" != eval ("func", "NS3")) + failed ("eval in NS3"); + +if ("NS4" != eval ("current_namespace()", "NS4")) + failed ("eval in NS4"); + +implements ("foo"); +variable X = "foo"; +implements ("bar"); +variable X = "bar"; + +if (foo->X != "foo") + failed ("foo"); +if (bar->X != "bar") + failed ("bar"); + +print ("Ok\n"); +exit (0); +#endif |