* Bug #14150 fixed : The Windows SDK is not found on Windows 8.1
[scilab.git] / scilab / modules / dynamic_link / tests / unit_tests / ilib_build_win_sdk.tst
1 // =============================================================================
2 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3 // Copyright (C) 2015 - Scilab Enterprises
4 //
5 //  This file is distributed under the same license as the Scilab package.
6 // =============================================================================
7
8 // <-- WINDOWS ONLY -->
9 // <-- CLI SHELL MODE -->
10 //
11 // Checks dynamic link on a code using Windows SDK
12
13 source = [
14 "#define __USE_DEPRECATED_STACK_FUNCTIONS__"
15 "#include <windows.h>"
16 "#include <api_scilab.h>"
17 "int sci_getWindowsDirectory(char *fname, void* pvApiCtx)"
18 "{"
19 "    char buf[MAX_PATH];"
20 "    CheckRhs(0, 0);"
21 "    CheckLhs(0, 1);"
22 "    GetWindowsDirectoryA(buf, MAX_PATH);"
23 "    createSingleString(pvApiCtx, Rhs + 1, buf);"
24 "    LhsVar(1) = Rhs + 1;"
25 "    return 0;"
26 "}"
27 ];
28
29 test_dir = fullfile(TMPDIR, 'ilib_build_win_sdk');
30 mkdir(test_dir);
31 mputl(source, fullfile(test_dir, 'ilib_build_win_sdk.c'));
32 orig_path = pwd();
33 chdir(test_dir);
34
35 ilib_verbose(0);
36 ilib_build("test_c_lib", ["getWindowsDirectory", "sci_getWindowsDirectory"], ["ilib_build_win_sdk.c"], []);
37 exec("loader.sce");
38
39 assert_checkequal(getWindowsDirectory(), getenv("WINDIR"));
40
41 chdir(orig_path);
42 rmdir(test_dir, 's');