summaryrefslogtreecommitdiff
path: root/cpp/test/Slice/errorDetection/test.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/test/Slice/errorDetection/test.py')
-rw-r--r--cpp/test/Slice/errorDetection/test.py49
1 files changed, 49 insertions, 0 deletions
diff --git a/cpp/test/Slice/errorDetection/test.py b/cpp/test/Slice/errorDetection/test.py
new file mode 100644
index 00000000000..71953c3086c
--- /dev/null
+++ b/cpp/test/Slice/errorDetection/test.py
@@ -0,0 +1,49 @@
+# -*- coding: utf-8 -*-
+# **********************************************************************
+#
+# Copyright (c) 2003-2016 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 glob
+
+class SliceErrorDetectionTestCase(ClientTestCase):
+
+ def runClientSide(self, current):
+ testdir = self.getPath()
+ slice2cpp = SliceTranslator("slice2cpp")
+
+ files = glob.glob("{0}/*.ice".format(testdir))
+ files.sort()
+ for file in files:
+ current.write(os.path.basename(file) + "... ")
+
+ args = ["-I.", file]
+ if file.find("Underscore") >= 0:
+ args.append("--underscore")
+
+ # Don't print out slice2cpp output and expect failures
+ slice2cpp.run(current, args=args, exitstatus=1)
+ output = slice2cpp.getOutput()
+
+ regex1 = re.compile("\.ice$", re.IGNORECASE)
+ lines1 = output.strip().split("\n")
+ lines2 = open(os.path.join(testdir, regex1.sub(".err", file)), "r").readlines()
+ if len(lines1) != len(lines2):
+ raise RuntimeError("failed (lines1 = {0}, lines2 = {1})!".format(len(lines1), len(lines2)))
+
+ regex2 = re.compile("^.*(?=" + os.path.basename(file) + ")")
+ i = 0
+ while i < len(lines1):
+ line1 = regex2.sub("", lines1[i]).strip()
+ line2 = regex2.sub("", lines2[i]).strip()
+ if line1 != line2:
+ raise RuntimeError("failed! (line1 = \"{0}\", line2 = \"{1}\"".format(line1, line2))
+ i = i + 1
+ else:
+ current.writeln("ok")
+
+TestSuite(__name__, [ SliceErrorDetectionTestCase() ])