diff options
author | Marc Chevrier <marc.chevrier@sap.com> | 2018-01-29 08:46:51 (GMT) |
---|---|---|
committer | Marc Chevrier <marc.chevrier@sap.com> | 2018-02-14 07:35:04 (GMT) |
commit | d6048bd153979c268a2943b26fd71be7c5f11251 (patch) | |
tree | b45637ba609ca2e429249c7baa084a6839fde99b /Tests/SwigTest | |
parent | d870148537319da2e86237cbd8baf6815975e594 (diff) | |
download | CMake-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.txt | 59 | ||||
-rw-r--r-- | Tests/SwigTest/example.cxx | 33 | ||||
-rw-r--r-- | Tests/SwigTest/example.h | 37 | ||||
-rw-r--r-- | Tests/SwigTest/example.i | 10 | ||||
-rw-r--r-- | Tests/SwigTest/runme.php4 | 58 | ||||
-rwxr-xr-x | Tests/SwigTest/runme.pike | 53 | ||||
-rw-r--r-- | Tests/SwigTest/runme.pl | 57 | ||||
-rw-r--r-- | Tests/SwigTest/runme.py | 51 | ||||
-rw-r--r-- | Tests/SwigTest/runme.rb | 49 | ||||
-rw-r--r-- | Tests/SwigTest/runme.tcl | 50 | ||||
-rw-r--r-- | Tests/SwigTest/runme2.tcl | 70 |
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" - |