scilab: new test scilab_enums (enums mapped to variable with scilabconst(1))

This commit is contained in:
Simon Marchetto 2014-02-11 16:27:32 +01:00
commit 423192a9f0
3 changed files with 69 additions and 0 deletions

View file

@ -10,8 +10,12 @@ srcdir = $(abspath @srcdir@)
top_srcdir = $(abspath @top_srcdir@)
top_builddir = $(abspath @top_builddir@)
C_TEST_CASES += \
scilab_enums
CPP_STD_TEST_CASES += \
primitive_types \
inout \
TEST_DIR = $*.dir
RUNME_SCRIPT = $(srcdir)/$(SCRIPTPREFIX)$*$(SCRIPTSUFFIX)

View file

@ -0,0 +1,27 @@
exec("swigtest.start", -1);
function checkEnum(enum_val, expected_enum_val)
if typeof(enum_val) <> "constant" then swigtesterror(); end
if enum_val <> expected_enum_val then swigtesterror(); end
endfunction
checkEnum(ENUM_1, 0);
checkEnum(ENUM_2, 1);
checkEnum(ENUM_EXPLICIT_1_1, 5);
checkEnum(ENUM_EXPLICIT_1_2, 6);
checkEnum(ENUM_EXPLICIT_2_1, 0);
checkEnum(ENUM_EXPLICIT_2_2, 10);
checkEnum(ENUM_EXPLICIT_3_1, 2);
checkEnum(ENUM_EXPLICIT_3_2, 5);
checkEnum(ENUM_EXPLICIT_3_3, 8);
checkEnum(TYPEDEF_ENUM_1_1, 21);
checkEnum(TYPEDEF_ENUM_1_2, 22);
checkEnum(TYPEDEF_ENUM_2_1, 31);
checkEnum(TYPEDEF_ENUM_2_2, 32);
exec("swigtest.quit", -1);

View file

@ -0,0 +1,38 @@
%module scilab_enums
%scilabconst(1);
%inline %{
enum ENUM {
ENUM_1,
ENUM_2
};
enum ENUM_EXPLICIT_1 {
ENUM_EXPLICIT_1_1 = 5,
ENUM_EXPLICIT_1_2
};
enum ENUM_EXPLICIT_2 {
ENUM_EXPLICIT_2_1,
ENUM_EXPLICIT_2_2 = 10
};
enum ENUM_EXPLICIT_3 {
ENUM_EXPLICIT_3_1 = 2,
ENUM_EXPLICIT_3_2 = 5,
ENUM_EXPLICIT_3_3 = 8
};
typedef enum {
TYPEDEF_ENUM_1_1 = 21,
TYPEDEF_ENUM_1_2 = 22
} TYPEDEF_ENUM_1;
typedef enum TYPEDEF_ENUM_2 {
TYPEDEF_ENUM_2_1 = 31,
TYPEDEF_ENUM_2_2 = 32
} TYPEDEF_ENUM_2;
%}