Mercurial > pub > dyncall > bindings
comparison erlang/erldc/test/misc_SUITE.erl @ 0:0cfcc391201f
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:26:28 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:0cfcc391201f |
---|---|
1 %% Copyright (c) 2014 Erik Mackdanz <erikmack@gmail.com> | |
2 | |
3 %% Permission to use, copy, modify, and distribute this software for any | |
4 %% purpose with or without fee is hereby granted, provided that the above | |
5 %% copyright notice and this permission notice appear in all copies. | |
6 | |
7 %% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES | |
8 %% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF | |
9 %% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR | |
10 %% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES | |
11 %% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN | |
12 %% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | |
13 %% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | |
14 | |
15 -module(misc_SUITE). | |
16 -compile(export_all). | |
17 -include("../include/dyncall.hrl"). | |
18 | |
19 -define(VMSZ, 1024). | |
20 | |
21 all() -> | |
22 [ | |
23 set_mode, | |
24 set_bad_mode, | |
25 reset_after_call, | |
26 reset_before_call | |
27 ]. | |
28 | |
29 set_mode(_) -> | |
30 {ok,CallVm} = dyncall:new_call_vm(?VMSZ), | |
31 dyncall:mode(CallVm,?DC_CALL_C_DEFAULT), | |
32 {ok,?DC_ERROR_NONE} = dyncall:get_error(CallVm). | |
33 | |
34 set_bad_mode(_) -> | |
35 {ok,CallVm} = dyncall:new_call_vm(?VMSZ), | |
36 dyncall:mode(CallVm,?DC_CALL_C_X86_WIN32_FAST_MS), | |
37 {ok,?DC_ERROR_UNSUPPORTED_MODE} = dyncall:get_error(CallVm). | |
38 | |
39 reset_after_call(_) -> | |
40 {ok,Lib} = dyncall:load_library("erldc_testtargets"), | |
41 {ok,Sym} = dyncall:find_symbol(Lib, "add_one"), | |
42 {ok,CallVm} = dyncall:new_call_vm(?VMSZ), | |
43 ok = dyncall:arg_int(CallVm,100), | |
44 {ok,101} = dyncall:call_int(CallVm,Sym), | |
45 | |
46 ok = dyncall:reset(CallVm), | |
47 | |
48 {ok,Sym2} = dyncall:find_symbol(Lib, "add_seven"), | |
49 {ok,107} = dyncall:call_int(CallVm,Sym2). | |
50 | |
51 reset_before_call(_) -> | |
52 {ok,Lib} = dyncall:load_library("erldc_testtargets"), | |
53 {ok,_Sym} = dyncall:find_symbol(Lib, "add_one"), | |
54 {ok,CallVm} = dyncall:new_call_vm(?VMSZ), | |
55 ok = dyncall:arg_int(CallVm,100), | |
56 | |
57 ok = dyncall:reset(CallVm), | |
58 | |
59 {ok,Sym2} = dyncall:find_symbol(Lib, "add_seven"), | |
60 ok = dyncall:arg_int(CallVm,200), | |
61 {ok,207} = dyncall:call_int(CallVm,Sym2). | |
62 | |
63 |