1// =============================================================================
2// Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3// Copyright (C) 2015 - Scilab Enterprises - Antoine ELIAS
4//
5//  This file is distributed under the same license as the Scilab package.
6// =============================================================================
7
8// <-- CLI SHELL MODE -->
9ilib_verbose(0);
10
11function test_list(safe)
12    mkdir(pathconvert(TMPDIR+"/api_c/" + safe));
13    cd(pathconvert(TMPDIR+"/api_c/" + safe));
14    copyfile(SCI+"/modules/api_scilab/tests/unit_tests/api_c/list_test.c",pathconvert(TMPDIR+"/api_c/" + safe + "/list_test.c",%F));
15
16    cflags = "";
17    if safe == "unsafe" then
18        cflags = "-D__API_SCILAB_UNSAFE__";
19    end
20
21    ilib_build("liblist" + safe,["list_test","sci_list_test", "csci6"],"list_test.c",[],"","",cflags);
22    exec("loader.sce");
23
24    fields = ["double","string","boolean","poly","list","cell"];
25    data = list(1, "2", %t, %s, list(1,2,3), {1,2;3,4});
26    t = list_test(fields, data);
27
28    assert_checkequal(typeof(t), "mytlist");
29    assert_checkequal(t.double, 1);
30    assert_checkequal(t.string, "2");
31    assert_checkequal(t.boolean, %t);
32    assert_checkequal(t.poly, %s);
33    assert_checkequal(t.list, list(1,2,3));
34    assert_checkequal(t.cell, {1,2;3,4});
35
36    disp("OK");
37endfunction
38
39test_list("safe");
40test_list("unsafe");
41