Mercurial > pub > dyncall > bindings
view erlang/erldc/test/misc_SUITE.erl @ 46:c21d1c2c84e1
- removed pydc.py wrapper overhead (which only called pydcext.so functions, directly, anyways)
* implies renaming pydcext.* to pydc.*
* while at it, iterate directly over args that are passed in (before we did extract fptr, sig and a tuple for the args and iterated over latter afterwards); we might have a tiny perf improvement now
- added type stub as package_data
author | Tassilo Philipp |
---|---|
date | Fri, 13 Nov 2020 14:10:31 +0100 |
parents | 0cfcc391201f |
children |
line wrap: on
line source
%% Copyright (c) 2014 Erik Mackdanz <erikmack@gmail.com> %% Permission to use, copy, modify, and distribute this software for any %% purpose with or without fee is hereby granted, provided that the above %% copyright notice and this permission notice appear in all copies. %% THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES %% WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF %% MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR %% ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES %% WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN %% ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF %% OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -module(misc_SUITE). -compile(export_all). -include("../include/dyncall.hrl"). -define(VMSZ, 1024). all() -> [ set_mode, set_bad_mode, reset_after_call, reset_before_call ]. set_mode(_) -> {ok,CallVm} = dyncall:new_call_vm(?VMSZ), dyncall:mode(CallVm,?DC_CALL_C_DEFAULT), {ok,?DC_ERROR_NONE} = dyncall:get_error(CallVm). set_bad_mode(_) -> {ok,CallVm} = dyncall:new_call_vm(?VMSZ), dyncall:mode(CallVm,?DC_CALL_C_X86_WIN32_FAST_MS), {ok,?DC_ERROR_UNSUPPORTED_MODE} = dyncall:get_error(CallVm). reset_after_call(_) -> {ok,Lib} = dyncall:load_library("erldc_testtargets"), {ok,Sym} = dyncall:find_symbol(Lib, "add_one"), {ok,CallVm} = dyncall:new_call_vm(?VMSZ), ok = dyncall:arg_int(CallVm,100), {ok,101} = dyncall:call_int(CallVm,Sym), ok = dyncall:reset(CallVm), {ok,Sym2} = dyncall:find_symbol(Lib, "add_seven"), {ok,107} = dyncall:call_int(CallVm,Sym2). reset_before_call(_) -> {ok,Lib} = dyncall:load_library("erldc_testtargets"), {ok,_Sym} = dyncall:find_symbol(Lib, "add_one"), {ok,CallVm} = dyncall:new_call_vm(?VMSZ), ok = dyncall:arg_int(CallVm,100), ok = dyncall:reset(CallVm), {ok,Sym2} = dyncall:find_symbol(Lib, "add_seven"), ok = dyncall:arg_int(CallVm,200), {ok,207} = dyncall:call_int(CallVm,Sym2).