Skip to content

Commit

Permalink
Director smartptr testing
Browse files Browse the repository at this point in the history
- Enhance Java and C# test
- Add Ruby test
  • Loading branch information
wsfulton committed Sep 30, 2015
1 parent f266a58 commit 350eff3
Show file tree
Hide file tree
Showing 4 changed files with 107 additions and 25 deletions.
34 changes: 23 additions & 11 deletions Examples/test-suite/csharp/director_smartptr_runme.cs
@@ -1,41 +1,53 @@
using director_smartptrNamespace;
using System;

public class runme
{

private class director_smartptr_MyBarFoo : Foo
{
public override string ping()
{
return "director_smartptr_MyBarFoo.ping();";
return "director_smartptr_MyBarFoo.ping()";
}

public override string pong()
{
return "director_smartptr_MyBarFoo.pong();" + ping();
}

public override string fooBar(FooBar fooBar)
public override string upcall(FooBar fooBarPtr)
{
return fooBar.FooBarDo();
return "override;" + fooBarPtr.FooBarDo();
}

public override Foo makeFoo()
{
return new Foo();
}
}

public override FooBar makeFooBar()
{
return new FooBar();
}
private static void check(string got, string expected)
{
if (got != expected)
throw new ApplicationException("Failed, got: " + got + " expected: " + expected);
}

static void Main()
{
director_smartptr_MyBarFoo myBarFoo =
new director_smartptr_MyBarFoo();
FooBar fooBar = new FooBar();

Foo myBarFoo = new director_smartptr_MyBarFoo();
check(myBarFoo.ping(), "director_smartptr_MyBarFoo.ping()");
check(Foo.callPong(myBarFoo), "director_smartptr_MyBarFoo.pong();director_smartptr_MyBarFoo.ping()");
check(Foo.callUpcall(myBarFoo, fooBar), "override;Bar::Foo2::Foo2Bar()");

Foo myFoo = myBarFoo.makeFoo();
check(myFoo.pong(), "Foo::pong();Foo::ping()");
check(Foo.callPong(myFoo), "Foo::pong();Foo::ping()");
check(myFoo.upcall(new FooBar()), "Bar::Foo2::Foo2Bar()");

myBarFoo.ping();
Foo myFoo2 = new Foo().makeFoo();
check(myFoo2.pong(), "Foo::pong();Foo::ping()");
check(Foo.callPong(myFoo2), "Foo::pong();Foo::ping()");
}
}
8 changes: 6 additions & 2 deletions Examples/test-suite/director_smartptr.i
Expand Up @@ -23,10 +23,12 @@ public:
virtual ~Foo() {}
virtual std::string ping() { return "Foo::ping()"; }
virtual std::string pong() { return "Foo::pong();" + ping(); }
virtual std::string fooBar(FooBar* fooBarPtr) { return fooBarPtr->FooBarDo(); }
virtual std::string upcall(FooBar* fooBarPtr) { return fooBarPtr->FooBarDo(); }
virtual Foo makeFoo() { return Foo(); }
virtual FooBar makeFooBar() { return FooBar(); }

static std::string callPong(Foo &foo) { return foo.pong(); }
static std::string callUpcall(Foo &foo, FooBar* fooBarPtr) { return foo.upcall(fooBarPtr); }
static Foo* get_self(Foo *self_) {return self_;}
};

Expand Down Expand Up @@ -61,10 +63,12 @@ public:
virtual ~Foo();
virtual std::string ping();
virtual std::string pong();
virtual std::string fooBar(FooBar* fooBarPtr);
virtual std::string upcall(FooBar* fooBarPtr);
virtual Foo makeFoo();
virtual FooBar makeFooBar();

static std::string callPong(Foo &foo);
static std::string callUpcall(Foo &foo, FooBar* fooBarPtr);
static Foo* get_self(Foo *self_);
};

Expand Down
36 changes: 24 additions & 12 deletions Examples/test-suite/java/director_smartptr_runme.java
Expand Up @@ -12,18 +12,35 @@ public class director_smartptr_runme {
}
}

public static void main(String argv[]) {
director_smartptr_MyBarFoo myBarFoo =
new director_smartptr_MyBarFoo();
private static void check(String got, String expected) {
if (!got.equals(expected))
throw new RuntimeException("Failed, got: " + got + " expected: " + expected);
}

public static void main(String argv[]) {
director_smartptr.FooBar fooBar = new director_smartptr.FooBar();

director_smartptr.Foo myBarFoo = new director_smartptr_MyBarFoo();
check(myBarFoo.ping(), "director_smartptr_MyBarFoo.ping()");
check(director_smartptr.Foo.callPong(myBarFoo), "director_smartptr_MyBarFoo.pong();director_smartptr_MyBarFoo.ping()");
check(director_smartptr.Foo.callUpcall(myBarFoo, fooBar), "override;Bar::Foo2::Foo2Bar()");

director_smartptr.Foo myFoo = myBarFoo.makeFoo();
check(myFoo.pong(), "Foo::pong();Foo::ping()");
check(director_smartptr.Foo.callPong(myFoo), "Foo::pong();Foo::ping()");
check(myFoo.upcall(fooBar), "Bar::Foo2::Foo2Bar()");

director_smartptr.Foo myFoo2 = new director_smartptr.Foo().makeFoo();
check(myFoo2.pong(), "Foo::pong();Foo::ping()");
check(director_smartptr.Foo.callPong(myFoo2), "Foo::pong();Foo::ping()");
}
}

class director_smartptr_MyBarFoo extends director_smartptr.Foo {

@Override
public String ping() {
return "director_smartptr_MyBarFoo.ping();";
return "director_smartptr_MyBarFoo.ping()";
}

@Override
Expand All @@ -32,17 +49,12 @@ public String pong() {
}

@Override
public String fooBar(director_smartptr.FooBar fooBar) {
return fooBar.FooBarDo();
public String upcall(director_smartptr.FooBar fooBarPtr) {
return "override;" + fooBarPtr.FooBarDo();
}

@Override
public director_smartptr.Foo makeFoo() {
return new director_smartptr.Foo();
}

@Override
public director_smartptr.FooBar makeFooBar() {
return new director_smartptr.FooBar();
}
}
}
54 changes: 54 additions & 0 deletions Examples/test-suite/ruby/director_smartptr_runme.rb
@@ -0,0 +1,54 @@
#!/usr/bin/env ruby
#
# Put description here
#
#
#
#
#

require 'director_smartptr'

include Director_smartptr

class Director_smartptr_MyBarFoo < Foo

def ping()
return "director_smartptr_MyBarFoo.ping()"
end

def pong()
return "director_smartptr_MyBarFoo.pong();" + ping()
end

def upcall(fooBarPtr)
return "override;" + fooBarPtr.FooBarDo()
end

def makeFoo()
return Foo.new()
end
end

def check(got, expected)
if (got != expected)
raise RuntimeError, "Failed, got: #{got} expected: #{expected}"
end
end

fooBar = Director_smartptr::FooBar.new()

myBarFoo = Director_smartptr_MyBarFoo.new()
check(myBarFoo.ping(), "director_smartptr_MyBarFoo.ping()")
check(Foo.callPong(myBarFoo), "director_smartptr_MyBarFoo.pong();director_smartptr_MyBarFoo.ping()")
check(Foo.callUpcall(myBarFoo, fooBar), "override;Bar::Foo2::Foo2Bar()")

myFoo = myBarFoo.makeFoo()
check(myFoo.pong(), "Foo::pong();Foo::ping()")
check(Foo.callPong(myFoo), "Foo::pong();Foo::ping()")
check(myFoo.upcall(FooBar.new()), "Bar::Foo2::Foo2Bar()")

myFoo2 = Foo.new().makeFoo()
check(myFoo2.pong(), "Foo::pong();Foo::ping()")
check(Foo.callPong(myFoo2), "Foo::pong();Foo::ping()")
check(myFoo2.upcall(FooBar.new()), "Bar::Foo2::Foo2Bar()")

0 comments on commit 350eff3

Please sign in to comment.