Merge pull request #1473 from ZackerySpytz/OCaml-wrapmacro-test
[OCaml] Fix the wrapmacro test
This commit is contained in:
commit
f19882ed51
10 changed files with 58 additions and 10 deletions
|
|
@ -3711,7 +3711,7 @@ Below are some practical steps that should help meet these requirements.
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Copying an existing language module and adapting the source for it is likely to be the most efficient
|
Copying an existing language module and adapting the source for it is likely to be the most efficient
|
||||||
approach to fully developing a new module as a numbe of corner cases are covered in the existing implementations.
|
approach to fully developing a new module as a number of corner cases are covered in the existing implementations.
|
||||||
The most advanced scripting languages are Python and Ruby.
|
The most advanced scripting languages are Python and Ruby.
|
||||||
The most advanced compiled target languages are Java and C#.
|
The most advanced compiled target languages are Java and C#.
|
||||||
</li>
|
</li>
|
||||||
|
|
|
||||||
|
|
@ -1,13 +1,13 @@
|
||||||
/* File : example.i */
|
/* File : example.i */
|
||||||
%module example
|
%module example
|
||||||
|
|
||||||
%typemap(argout) (int &x, int &y) {
|
%typemap(argout) (const int &x, const int &y) {
|
||||||
swig_result = caml_list_append(swig_result, caml_val_int(*$1));
|
swig_result = caml_list_append(swig_result, caml_val_int(*$1));
|
||||||
swig_result = caml_list_append(swig_result, caml_val_int(*$2));
|
swig_result = caml_list_append(swig_result, caml_val_int(*$2));
|
||||||
}
|
}
|
||||||
|
|
||||||
%{
|
%{
|
||||||
extern "C" void factor(int &x, int &y);
|
extern "C" void factor(const int &x, const int &y);
|
||||||
%}
|
%}
|
||||||
|
|
||||||
extern "C" void factor(int &x, int &y);
|
extern "C" void factor(const int &x, const int &y);
|
||||||
|
|
|
||||||
15
Examples/test-suite/ocaml/global_vars_runme.ml
Normal file
15
Examples/test-suite/ocaml/global_vars_runme.ml
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
open Swig
|
||||||
|
open Global_vars
|
||||||
|
|
||||||
|
_init '()
|
||||||
|
|
||||||
|
let _ =
|
||||||
|
assert (_b '() as string = "string b");
|
||||||
|
assert (_b '("a string value") as string = "a string value");
|
||||||
|
assert (_b '() as string = "a string value");
|
||||||
|
assert (_x '() as int = 1234);
|
||||||
|
assert (_x '(9876) as int = 9876);
|
||||||
|
assert (_x '() as int = 9876);
|
||||||
|
assert (_Hi '() as int = 0);
|
||||||
|
assert (_Hola '() as int = 1);
|
||||||
|
;;
|
||||||
|
|
@ -22,7 +22,7 @@ let _ =
|
||||||
|
|
||||||
let _ = _var_short (_createref_short (C_short 10)) in
|
let _ = _var_short (_createref_short (C_short 10)) in
|
||||||
assert (_value_short (_var_short '()) as int = 10);
|
assert (_value_short (_var_short '()) as int = 10);
|
||||||
|
|
||||||
let _ = _var_unsigned_short (_createref_unsigned_short (C_ushort 10)) in
|
let _ = _var_unsigned_short (_createref_unsigned_short (C_ushort 10)) in
|
||||||
assert (_value_unsigned_short (_var_unsigned_short '()) as int = 10);
|
assert (_value_unsigned_short (_var_unsigned_short '()) as int = 10);
|
||||||
|
|
||||||
|
|
|
||||||
10
Examples/test-suite/ocaml/sizet_runme.ml
Normal file
10
Examples/test-suite/ocaml/sizet_runme.ml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
open Swig
|
||||||
|
open Sizet
|
||||||
|
|
||||||
|
let _ =
|
||||||
|
let s = C_int64 2000L in
|
||||||
|
assert (_test1 '(s) as int = 2000);
|
||||||
|
assert (_test2 '(s) as int = 2000);
|
||||||
|
assert (_test3 '(s) as int = 2000);
|
||||||
|
assert (_test4 '(s) as int = 2000);
|
||||||
|
;;
|
||||||
11
Examples/test-suite/ocaml/typedef_reference_runme.ml
Normal file
11
Examples/test-suite/ocaml/typedef_reference_runme.ml
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
open Swig
|
||||||
|
open Typedef_reference
|
||||||
|
|
||||||
|
let _ =
|
||||||
|
let i = _copy_intp '(2) in
|
||||||
|
assert (_somefunc '(i) as int = 2);
|
||||||
|
assert (_delete_intp '(i) = C_void);
|
||||||
|
let i = _copy_intp '(3) in
|
||||||
|
assert (_otherfunc '(i) as int = 3);
|
||||||
|
assert (_delete_intp '(i) = C_void);
|
||||||
|
;;
|
||||||
10
Examples/test-suite/ocaml/wrapmacro_runme.ml
Normal file
10
Examples/test-suite/ocaml/wrapmacro_runme.ml
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
open Swig
|
||||||
|
open Wrapmacro
|
||||||
|
|
||||||
|
let _ =
|
||||||
|
let args = C_list [ C_int64 2L ; C_int64 1L ] in
|
||||||
|
assert (_maximum '(args) as int = 2);
|
||||||
|
let args = C_list [ C_double (2. /. 7.) ; C_double 256. ] in
|
||||||
|
assert (_maximum '(args) as float = 256.);
|
||||||
|
assert (_GUINT16_SWAP_LE_BE_CONSTANT '(0x1234) as int = 0x3412);
|
||||||
|
;;
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
%include <std/std_except.i>
|
%include <std/std_except.i>
|
||||||
|
|
||||||
%apply size_t { std::size_t };
|
%apply size_t { std::size_t };
|
||||||
|
%apply const size_t& { const std::size_t& };
|
||||||
|
|
||||||
%{
|
%{
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,8 @@
|
||||||
long, signed long, unsigned long,
|
long, signed long, unsigned long,
|
||||||
long long, signed long long, unsigned long long,
|
long long, signed long long, unsigned long long,
|
||||||
const long &, const signed long &, const unsigned long &,
|
const long &, const signed long &, const unsigned long &,
|
||||||
const long long &, const signed long long &, const unsigned long long &
|
const long long &, const signed long long &, const unsigned long long &,
|
||||||
|
size_t, const size_t &
|
||||||
{
|
{
|
||||||
if( !Is_block($input) ) $1 = 0;
|
if( !Is_block($input) ) $1 = 0;
|
||||||
else {
|
else {
|
||||||
|
|
|
||||||
|
|
@ -132,11 +132,11 @@
|
||||||
%typemap(varin) C_NAME {
|
%typemap(varin) C_NAME {
|
||||||
$1 = OCAML_TO_C($input);
|
$1 = OCAML_TO_C($input);
|
||||||
}
|
}
|
||||||
%typemap(in) C_NAME & ($*1_ltype temp) {
|
%typemap(in) const C_NAME & ($*1_ltype temp) {
|
||||||
temp = ($*1_ltype) OCAML_TO_C($input);
|
temp = ($*1_ltype) OCAML_TO_C($input);
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
%typemap(varin) C_NAME & {
|
%typemap(varin) const C_NAME & {
|
||||||
$1 = OCAML_TO_C($input);
|
$1 = OCAML_TO_C($input);
|
||||||
}
|
}
|
||||||
%typemap(directorout) C_NAME {
|
%typemap(directorout) C_NAME {
|
||||||
|
|
@ -156,13 +156,13 @@
|
||||||
%typemap(varout) C_NAME {
|
%typemap(varout) C_NAME {
|
||||||
$result = C_TO_OCAML($1);
|
$result = C_TO_OCAML($1);
|
||||||
}
|
}
|
||||||
%typemap(varout) C_NAME & {
|
%typemap(varout) const C_NAME & {
|
||||||
$result = C_TO_OCAML($1);
|
$result = C_TO_OCAML($1);
|
||||||
}
|
}
|
||||||
%typemap(argout) C_NAME *OUTPUT {
|
%typemap(argout) C_NAME *OUTPUT {
|
||||||
swig_result = caml_list_append(swig_result, C_TO_OCAML((long)*$1));
|
swig_result = caml_list_append(swig_result, C_TO_OCAML((long)*$1));
|
||||||
}
|
}
|
||||||
%typemap(out) C_NAME & {
|
%typemap(out) const C_NAME & {
|
||||||
$result = C_TO_OCAML(*$1);
|
$result = C_TO_OCAML(*$1);
|
||||||
}
|
}
|
||||||
%typemap(directorin) C_NAME {
|
%typemap(directorin) C_NAME {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue