summaryrefslogtreecommitdiffstats
path: root/Tests/SwigTest
diff options
context:
space:
mode:
authorMarc Chevrier <marc.chevrier@sap.com>2018-01-29 08:46:51 (GMT)
committerMarc Chevrier <marc.chevrier@sap.com>2018-02-14 07:35:04 (GMT)
commitd6048bd153979c268a2943b26fd71be7c5f11251 (patch)
treeb45637ba609ca2e429249c7baa084a6839fde99b /Tests/SwigTest
parentd870148537319da2e86237cbd8baf6815975e594 (diff)
downloadCMake-d6048bd153979c268a2943b26fd71be7c5f11251.zip
CMake-d6048bd153979c268a2943b26fd71be7c5f11251.tar.gz
CMake-d6048bd153979c268a2943b26fd71be7c5f11251.tar.bz2
UseSWIG: Re-work test framework
Diffstat (limited to 'Tests/SwigTest')
-rw-r--r--Tests/SwigTest/CMakeLists.txt59
-rw-r--r--Tests/SwigTest/example.cxx33
-rw-r--r--Tests/SwigTest/example.h37
-rw-r--r--Tests/SwigTest/example.i10
-rw-r--r--Tests/SwigTest/runme.php458
-rwxr-xr-xTests/SwigTest/runme.pike53
-rw-r--r--Tests/SwigTest/runme.pl57
-rw-r--r--Tests/SwigTest/runme.py51
-rw-r--r--Tests/SwigTest/runme.rb49
-rw-r--r--Tests/SwigTest/runme.tcl50
-rw-r--r--Tests/SwigTest/runme2.tcl70
11 files changed, 0 insertions, 527 deletions
diff --git a/Tests/SwigTest/CMakeLists.txt b/Tests/SwigTest/CMakeLists.txt
deleted file mode 100644
index 65f5c93..0000000
--- a/Tests/SwigTest/CMakeLists.txt
+++ /dev/null
@@ -1,59 +0,0 @@
-set(language "python")
-
-cmake_minimum_required (VERSION 2.6)
-
-project(example_${language}_class)
-
-find_package(SWIG REQUIRED)
-include(${SWIG_USE_FILE})
-
-unset(SWIG_LANG_TYPE)
-if(${language} MATCHES python)
- find_package(PythonLibs)
- include_directories(${PYTHON_INCLUDE_PATH})
- set(SWIG_LANG_LIBRARIES ${PYTHON_LIBRARIES})
-endif()
-if(${language} MATCHES perl)
- find_package(PerlLibs)
- include_directories(${PERL_INCLUDE_PATH})
- add_definitions(${PERL_EXTRA_C_FLAGS})
- set(SWIG_LANG_LIBRARIES ${PERL_LIBRARY})
-endif()
-if(${language} MATCHES tcl)
- find_package(TCL)
- include_directories(${TCL_INCLUDE_PATH})
- set(SWIG_LANG_LIBRARIES ${TCL_LIBRARY})
-endif()
-if(${language} MATCHES ruby)
- find_package(Ruby)
- include_directories(${RUBY_INCLUDE_PATH})
- set(SWIG_LANG_LIBRARIES ${RUBY_LIBRARY})
-endif()
-if(${language} MATCHES php4)
- find_package(PHP4)
- include_directories(${PHP4_INCLUDE_PATH})
- set(SWIG_LANG_LIBRARIES ${PHP4_LIBRARY})
-endif()
-if(${language} MATCHES pike)
- find_package(Pike)
- include_directories(${PIKE_INCLUDE_PATH})
- set(SWIG_LANG_LIBRARIES ${PIKE_LIBRARY})
-endif()
-if(${language} MATCHES lua)
- find_package(Lua)
- include_directories(${LUA_INCLUDE_DIR})
- set(SWIG_LANG_TYPE TYPE SHARED)
- set(SWIG_LANG_LIBRARIES ${LUA_LIBRARIES})
-endif()
-
-include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-
-set(CMAKE_SWIG_FLAGS "")
-
-set_source_files_properties(example.i PROPERTIES CPLUSPLUS ON)
-set_source_files_properties(example.i PROPERTIES SWIG_FLAGS "-includeall")
-SWIG_ADD_LIBRARY(example
- LANGUAGE "${language}"
- ${SWIG_LANG_TYPE}
- SOURCES example.i example.cxx)
-SWIG_LINK_LIBRARIES(example ${SWIG_LANG_LIBRARIES})
diff --git a/Tests/SwigTest/example.cxx b/Tests/SwigTest/example.cxx
deleted file mode 100644
index 961d6dd..0000000
--- a/Tests/SwigTest/example.cxx
+++ /dev/null
@@ -1,33 +0,0 @@
-/* File : example.c */
-
-#include "example.h"
-#define M_PI 3.14159265358979323846
-
-/* Move the shape to a new location */
-void Shape::move(double dx, double dy)
-{
- x += dx;
- y += dy;
-}
-
-int Shape::nshapes = 0;
-
-double Circle::area(void)
-{
- return M_PI * radius * radius;
-}
-
-double Circle::perimeter(void)
-{
- return 2 * M_PI * radius;
-}
-
-double Square::area(void)
-{
- return width * width;
-}
-
-double Square::perimeter(void)
-{
- return 4 * width;
-}
diff --git a/Tests/SwigTest/example.h b/Tests/SwigTest/example.h
deleted file mode 100644
index 366deb0..0000000
--- a/Tests/SwigTest/example.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/* File : example.h */
-
-class Shape
-{
-public:
- Shape() { nshapes++; }
- virtual ~Shape() { nshapes--; };
- double x, y;
- void move(double dx, double dy);
- virtual double area(void) = 0;
- virtual double perimeter(void) = 0;
- static int nshapes;
-};
-
-class Circle : public Shape
-{
-private:
- double radius;
-
-public:
- Circle(double r)
- : radius(r){};
- virtual double area(void);
- virtual double perimeter(void);
-};
-
-class Square : public Shape
-{
-private:
- double width;
-
-public:
- Square(double w)
- : width(w){};
- virtual double area(void);
- virtual double perimeter(void);
-};
diff --git a/Tests/SwigTest/example.i b/Tests/SwigTest/example.i
deleted file mode 100644
index 75700b3..0000000
--- a/Tests/SwigTest/example.i
+++ /dev/null
@@ -1,10 +0,0 @@
-/* File : example.i */
-%module example
-
-%{
-#include "example.h"
-%}
-
-/* Let's just grab the original header file here */
-%include "example.h"
-
diff --git a/Tests/SwigTest/runme.php4 b/Tests/SwigTest/runme.php4
deleted file mode 100644
index 653ced2..0000000
--- a/Tests/SwigTest/runme.php4
+++ /dev/null
@@ -1,58 +0,0 @@
-<?php
-
-# This file illustrates the low-level C++ interface
-# created by SWIG. In this case, all of our C++ classes
-# get converted into function calls.
-
-require("example.php");
-
-# ----- Object creation -----
-
-print "Creating some objects:\n";
-$c = new_Circle(10);
-print " Created circle $c\n";
-$s = new_Square(10);
-print " Created square $s\n";
-
-# ----- Access a static member -----
-
-print "\nA total of " . nshapes() . " shapes were created\n";
-
-# ----- Member data access -----
-
-# Set the location of the object.
-# Note: methods in the base class Shape are used since
-# x and y are defined there.
-
-Shape_x_set($c, 20);
-Shape_y_set($c, 30);
-Shape_x_set($s,-10);
-Shape_y_set($s,5);
-
-print "\nHere is their current position:\n";
-print " Circle = (" . Shape_x_get($c) . "," . Shape_y_get($c) . ")\n";
-print " Square = (" . Shape_x_get($s) . "," . Shape_y_get($s) . ")\n";
-
-# ----- Call some methods -----
-
-print "\nHere are some properties of the shapes:\n";
-foreach (array($c,$s) as $o) {
- print " $o\n";
- print " area = " . Shape_area($o) . "\n";
- print " perimeter = " . Shape_perimeter($o) . "\n";
- }
-# Notice how the Shape_area() and Shape_perimeter() functions really
-# invoke the appropriate virtual method on each object.
-
-# ----- Delete everything -----
-
-print "\nGuess I'll clean up now\n";
-
-# Note: this invokes the virtual destructor
-delete_Shape($c);
-delete_Shape($s);
-
-print nshapes() . " shapes remain\n";
-print "Goodbye\n";
-
-?>
diff --git a/Tests/SwigTest/runme.pike b/Tests/SwigTest/runme.pike
deleted file mode 100755
index ec28dd7..0000000
--- a/Tests/SwigTest/runme.pike
+++ /dev/null
@@ -1,53 +0,0 @@
-import .example;
-
-int main()
-{
- // ----- Object creation -----
-
- write("Creating some objects:\n");
- Circle c = Circle(10.0);
- write(" Created circle.\n");
- Square s = Square(10.0);
- write(" Created square.\n");
-
- // ----- Access a static member -----
-
- write("\nA total of " + Shape_nshapes_get() + " shapes were created\n");
-
- // ----- Member data access -----
-
- // Set the location of the object
-
- c->x_set(20.0);
- c->y_set(30.0);
-
- s->x_set(-10.0);
- s->y_set(5.0);
-
- write("\nHere is their current position:\n");
- write(" Circle = (%f, %f)\n", c->x_get(), c->y_get());
- write(" Square = (%f, %f)\n", s->x_get(), s->y_get());
-
- // ----- Call some methods -----
-
- write("\nHere are some properties of the shapes:\n");
- write(" The circle:\n");
- write(" area = %f.\n", c->area());
- write(" perimeter = %f.\n", c->perimeter());
- write(" The square:\n");
- write(" area = %f.\n", s->area());
- write(" perimeter = %f.\n", s->perimeter());
-
- write("\nGuess I'll clean up now\n");
-
- /* See if we can force 's' to be garbage-collected */
- s = 0;
-
- /* Now we should be down to only 1 shape */
- write("%d shapes remain\n", Shape_nshapes_get());
-
- /* Done */
- write("Goodbye\n");
-
- return 0;
-}
diff --git a/Tests/SwigTest/runme.pl b/Tests/SwigTest/runme.pl
deleted file mode 100644
index 5bfb3d8..0000000
--- a/Tests/SwigTest/runme.pl
+++ /dev/null
@@ -1,57 +0,0 @@
-# file: runme.pl
-
-# This file illustrates the low-level C++ interface
-# created by SWIG. In this case, all of our C++ classes
-# get converted into function calls.
-
-use example;
-
-# ----- Object creation -----
-
-print "Creating some objects:\n";
-$c = examplec::new_Circle(10);
-print " Created circle $c\n";
-$s = examplec::new_Square(10);
-print " Created square $s\n";
-
-# ----- Access a static member -----
-
-print "\nA total of $examplec::Shape_nshapes shapes were created\n";
-
-# ----- Member data access -----
-
-# Set the location of the object.
-# Note: methods in the base class Shape are used since
-# x and y are defined there.
-
-examplec::Shape_x_set($c, 20);
-examplec::Shape_y_set($c, 30);
-examplec::Shape_x_set($s,-10);
-examplec::Shape_y_set($s,5);
-
-print "\nHere is their current position:\n";
-print " Circle = (",examplec::Shape_x_get($c),",", examplec::Shape_y_get($c),")\n";
-print " Square = (",examplec::Shape_x_get($s),",", examplec::Shape_y_get($s),")\n";
-
-# ----- Call some methods -----
-
-print "\nHere are some properties of the shapes:\n";
-foreach $o ($c,$s) {
- print " $o\n";
- print " area = ", examplec::Shape_area($o), "\n";
- print " perimeter = ", examplec::Shape_perimeter($o), "\n";
- }
-# Notice how the Shape_area() and Shape_perimeter() functions really
-# invoke the appropriate virtual method on each object.
-
-# ----- Delete everything -----
-
-print "\nGuess I'll clean up now\n";
-
-# Note: this invokes the virtual destructor
-examplec::delete_Shape($c);
-examplec::delete_Shape($s);
-
-print $examplec::Shape_nshapes," shapes remain\n";
-print "Goodbye\n";
-
diff --git a/Tests/SwigTest/runme.py b/Tests/SwigTest/runme.py
deleted file mode 100644
index ed3909e..0000000
--- a/Tests/SwigTest/runme.py
+++ /dev/null
@@ -1,51 +0,0 @@
-# file: runme.py
-
-# This file illustrates the shadow-class C++ interface generated
-# by SWIG.
-
-import example
-
-# ----- Object creation -----
-
-print "Creating some objects:"
-c = example.Circle(10)
-print " Created circle", c
-s = example.Square(10)
-print " Created square", s
-
-# ----- Access a static member -----
-
-print "\nA total of", example.cvar.Shape_nshapes,"shapes were created"
-
-# ----- Member data access -----
-
-# Set the location of the object
-
-c.x = 20
-c.y = 30
-
-s.x = -10
-s.y = 5
-
-print "\nHere is their current position:"
-print " Circle = (%f, %f)" % (c.x,c.y)
-print " Square = (%f, %f)" % (s.x,s.y)
-
-# ----- Call some methods -----
-
-print "\nHere are some properties of the shapes:"
-for o in [c,s]:
- print " ", o
- print " area = ", o.area()
- print " perimeter = ", o.perimeter()
-
-print "\nGuess I'll clean up now"
-
-# Note: this invokes the virtual destructor
-del c
-del s
-
-s = 3
-print example.cvar.Shape_nshapes,"shapes remain"
-print "Goodbye"
-
diff --git a/Tests/SwigTest/runme.rb b/Tests/SwigTest/runme.rb
deleted file mode 100644
index de73bcd..0000000
--- a/Tests/SwigTest/runme.rb
+++ /dev/null
@@ -1,49 +0,0 @@
-# file: runme.rb
-
-# This file illustrates the C++ interface created by SWIG.
-# All of our C++ classes get converted into Ruby classes.
-
-require 'example'
-
-# ----- Object creation -----
-
-print "Creating some objects:\n"
-c = Example::Circle.new(10)
-print " Created circle #{c}\n"
-s = Example::Square.new(10)
-print " Created square #{s}\n"
-
-# ----- Access a static member -----
-
-print "\nA total of #{Example::Shape.nshapes} shapes were created\n"
-
-# ----- Member data access -----
-
-# Set the location of the object
-
-# Notice how we can do this using functions specific to
-# the 'Circle' class.
-c.x = 20
-c.y = 30
-
-# Now use the same functions in the base class
-s.x = -10
-s.y = 5
-
-print "\nHere is their current position:\n"
-print " Circle = (", c.x, ",", c.y, ")\n"
-print " Square = (", s.x, ",", s.y, ")\n"
-
-# ----- Call some methods -----
-
-print "\nHere are some properties of the shapes:\n"
-for o in [c, s]
- print " #{o}\n"
- print " area = ", o.area, "\n"
- print " perimeter = ", o.perimeter, "\n"
-end
-# Notice how the Shape#area() and Shape#perimeter() functions really
-# invoke the appropriate virtual method on each object.
-
-print "\n", Example::Shape.nshapes," shapes remain\n"
-print "Goodbye\n"
diff --git a/Tests/SwigTest/runme.tcl b/Tests/SwigTest/runme.tcl
deleted file mode 100644
index c7f4725..0000000
--- a/Tests/SwigTest/runme.tcl
+++ /dev/null
@@ -1,50 +0,0 @@
-# file: runme.tcl
-
-# This file illustrates the high level C++ interface.
-# In this case C++ classes work kind of like Tk widgets
-
-catch { load ./example[info sharedlibextension] example}
-
-# ----- Object creation -----
-
-puts "Creating some objects:"
-Circle c 10
-puts " Created circle [c cget -this]"
-Square s 10
-puts " Created square [s cget -this]"
-
-# ----- Access a static member -----
-
-puts "\nA total of $Shape_nshapes shapes were created"
-
-# ----- Member data access -----
-
-# Set the location of the object
-
-c configure -x 20 -y 30
-s configure -x -10 -y 5
-
-puts "\nHere is their current position:"
-puts " Circle = ([c cget -x], [c cget -y])"
-puts " Square = ([s cget -x], [s cget -y])"
-
-# ----- Call some methods -----
-
-puts "\nHere are some properties of the shapes:"
-foreach o "c s" {
- puts " [$o cget -this]"
- puts " area = [$o area]"
- puts " perimeter = [$o perimeter]"
-}
-
-# ----- Delete everything -----
-
-puts "\nGuess I'll clean up now"
-
-# Note: this invokes the virtual destructor
-rename c ""
-rename s ""
-
-puts "$Shape_nshapes shapes remain"
-puts "Goodbye"
-
diff --git a/Tests/SwigTest/runme2.tcl b/Tests/SwigTest/runme2.tcl
deleted file mode 100644
index 88ec2f6..0000000
--- a/Tests/SwigTest/runme2.tcl
+++ /dev/null
@@ -1,70 +0,0 @@
-# file: runme2.tcl
-
-# This file illustrates the low-level C++ interface
-# created by SWIG. In this case, all of our C++ classes
-# get converted into function calls.
-
-catch { load ./example[info sharedlibextension] example}
-
-# ----- Object creation -----
-
-puts "Creating some objects:"
-set c [new_Circle 10]
-puts " Created circle $c"
-set s [new_Square 10]
-puts " Created square $s"
-
-# ----- Access a static member -----
-
-puts "\nA total of $Shape_nshapes shapes were created"
-
-# ----- Member data access -----
-
-# Set the location of the object
-# Note: the base class must be used since that's where x and y
-# were declared.
-
-Shape_x_set $c 20
-Shape_y_set $c 30
-Shape_x_set $s -10
-Shape_y_set $s 5
-
-puts "\nHere is their current position:"
-puts " Circle = ([Shape_x_get $c], [Shape_y_get $c])"
-puts " Square = ([Shape_x_get $s], [Shape_y_get $s])"
-
-# ----- Call some methods -----
-
-puts "\nHere are some properties of the shapes:"
-foreach o "$c $s" {
- puts " $o"
- puts " area = [Shape_area $o]"
- puts " perimeter = [Shape_perimeter $o]"
-}
-# Notice how the Shape_area() and Shape_perimeter() functions really
-# invoke the appropriate virtual method on each object.
-
-# ----- Try to cause a type error -----
-
-puts "\nI'm going to try and break the type system"
-
-if { [catch {
- # Bad script!
- Square_area $c # Try to invoke Square method on a Circle
- puts " Bad bad SWIG!"
-
-}]} {
- puts " Well, it didn't work. Good SWIG."
-}
-
-# ----- Delete everything -----
-
-puts "\nGuess I'll clean up now"
-
-# Note: this invokes the virtual destructor
-delete_Shape $c
-delete_Shape $s
-
-puts "$Shape_nshapes shapes remain"
-puts "Goodbye"
-