bfc239661b5c13bad1c0eeac35f9bf42274f8169
[scilab.git] / scilab / modules / dynamic_link / tests / nonreg_tests / bug_3639.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2008-2011 - DIGITEO - Allan CORNET
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7 //
8 // <-- CLI SHELL MODE -->
9 //
10 // <-- Non-regression test for bug 3639 -->
11 //
12 // <-- Bugzilla URL -->
13 // http://bugzilla.scilab.org/show_bug.cgi?id=3639
14 //
15 // <-- Short Description -->
16 // link without parameters can crash
17
18 ilib_verbose(0);
19
20 currentpath = pwd();
21 cd TMPDIR;
22 cd ../;
23 OS_TMP_DIR = pwd();
24
25 TEST_NAME = 'bug_3639_1';
26 mkdir(OS_TMP_DIR, TEST_NAME);
27 TEST_DIR_1 = OS_TMP_DIR + filesep() + TEST_NAME;
28 copyfile(SCI+'/modules/dynamic_link/tests/nonreg_tests/bug_3639.c' , TEST_DIR_1 + filesep() + 'bug_3639.c');
29 chdir(TEST_DIR_1);
30
31 files = ['bug_3639.c'];
32 ilib_build('libc_fun1', ['c_sum1','c_intsum'; 'c_sub1', 'c_intsub'], files, []);
33 // load the shared library 
34 info_link = link();
35 assert_checkequal(info_link, []);
36 exec loader.sce;
37
38 TEST_NAME = 'bug_3639_2';
39 mkdir(OS_TMP_DIR, TEST_NAME);
40 TEST_DIR_2 = OS_TMP_DIR + filesep() + TEST_NAME;
41 copyfile(SCI+'/modules/dynamic_link/tests/nonreg_tests/bug_3639.c' , TEST_DIR_2 + filesep() + 'bug_3639.c');
42 chdir(TEST_DIR_2);
43
44 ilib_build('libc_fun2', ['c_sum2', 'c_intsum'; 'c_sub2','c_intsub'], files, []);
45 info_link = link();
46 assert_checkequal(info_link, 'libc_fun1');
47 exec loader.sce;
48
49 info_link = link();
50 assert_checkequal(info_link, ['libc_fun2','libc_fun1']);
51
52 // cleaning
53 chdir(currentpath);
54 // ulink() all libraries
55 ulink();
56 clearfun('c_sum1');
57 clearfun('c_sub1');
58 clearfun('c_sum2');
59 clearfun('c_sub2');
60
61 //remove TMP_DIR
62 rmdir(TEST_DIR_1,'s');
63 rmdir(TEST_DIR_2,'s');
64 // =============================================================================