diff options
Diffstat (limited to 'java/test')
-rw-r--r-- | java/test/Slice/macros/Client.java | 54 | ||||
-rw-r--r-- | java/test/Slice/macros/Test.ice | 60 | ||||
-rwxr-xr-x | java/test/Slice/macros/run.py | 28 |
3 files changed, 142 insertions, 0 deletions
diff --git a/java/test/Slice/macros/Client.java b/java/test/Slice/macros/Client.java new file mode 100644 index 00000000000..3ba7ac80f9c --- /dev/null +++ b/java/test/Slice/macros/Client.java @@ -0,0 +1,54 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +package test.Slice.macros; + +import test.Slice.macros.Test.Default; +import test.Slice.macros.Test.NoDefault; +import test.Slice.macros.Test.JavaOnly; + +public class Client +{ + private static void test(boolean b) + { + if(!b) + { + throw new RuntimeException(); + } + } + + public static void + main(String[] args) + { + int status = 0; + try + { + System.out.print("Testing Slice predefined macros... "); + Default d = new Default(); + test(d.x == 10); + test(d.y == 10); + + NoDefault nd = new NoDefault(); + test(nd.x != 10); + test(nd.y != 10); + + JavaOnly c = new JavaOnly(); + test(c.lang.equals("java")); + test(c.version == Ice.Util.intVersion()); + System.out.println("ok"); + } + catch(Exception ex) + { + ex.printStackTrace(); + status = 1; + } + System.gc(); + System.exit(status); + } +} diff --git a/java/test/Slice/macros/Test.ice b/java/test/Slice/macros/Test.ice new file mode 100644 index 00000000000..57d90703e6a --- /dev/null +++ b/java/test/Slice/macros/Test.ice @@ -0,0 +1,60 @@ +// ********************************************************************** +// +// Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved. +// +// This copy of Ice is licensed to you under the terms described in the +// ICE_LICENSE file included in this distribution. +// +// ********************************************************************** + +#pragma once + +[["java:package:test.Slice.macros"]] + +// +// This macro sets the default value only when compile with slice2java +// +#if defined(ICE_COMPILER) && (ICE_COMPILER == ICE_SLICE2JAVA) +# define DEFAULT(X) = X +#else +# define DEFAULT(X) /**/ +#endif + +// +// This macro sets the default value only when not compile with slice2java +// +#if defined(ICE_COMPILER) && (ICE_COMPILER != ICE_SLICE2JAVA) +# define NODEFAULT(X) = X +#else +# define NODEFAULT(X) /**/ +#endif + + + +module Test +{ + +class Default +{ + int x DEFAULT(10); + int y DEFAULT(10); +}; + +class NoDefault +{ + int x NODEFAULT(10); + int y NODEFAULT(10); +}; + +// +// This class is only defined when compile with slice2java. +// +#if defined(ICE_COMPILER) && (ICE_COMPILER == ICE_SLICE2JAVA) +class JavaOnly +{ + string lang DEFAULT("java"); + int version DEFAULT(ICE_VERSION); +}; +#endif + +}; diff --git a/java/test/Slice/macros/run.py b/java/test/Slice/macros/run.py new file mode 100755 index 00000000000..97426047aec --- /dev/null +++ b/java/test/Slice/macros/run.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python +# ********************************************************************** +# +# Copyright (c) 2003-2013 ZeroC, Inc. All rights reserved. +# +# This copy of Ice is licensed to you under the terms described in the +# ICE_LICENSE file included in this distribution. +# +# ********************************************************************** + +import os, sys + +path = [ ".", "..", "../..", "../../..", "../../../.." ] +head = os.path.dirname(sys.argv[0]) +if len(head) > 0: + path = [os.path.join(head, p) for p in path] +path = [os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] +if len(path) == 0: + raise RuntimeError("can't find toplevel directory!") +sys.path.append(os.path.join(path[0], "scripts")) +import TestUtil + +sys.stdout.write("starting client... ") +sys.stdout.flush() +clientProc = TestUtil.startClient("test.Slice.macros.Client",startReader=False) +print("ok") +clientProc.startReader() +clientProc.waitTestSuccess() |