diff options
author | Björn-Egil Dahlberg <[email protected]> | 2016-05-13 16:48:10 +0200 |
---|---|---|
committer | Björn-Egil Dahlberg <[email protected]> | 2016-05-13 16:48:10 +0200 |
commit | 4fba4b14c4f9aa03294d8d187fe0dd1202744e82 (patch) | |
tree | bfcdef0c8ab9e14c1bf149c0a0f0d6b9c8ce39d3 /erts/emulator/test/nif_SUITE_data | |
parent | 66da26c92043c71740ea628469ad6ada747b89bf (diff) | |
parent | 88095fc0adb871671ff9763bd5868d7c0c0ac350 (diff) | |
download | otp-4fba4b14c4f9aa03294d8d187fe0dd1202744e82.tar.gz otp-4fba4b14c4f9aa03294d8d187fe0dd1202744e82.tar.bz2 otp-4fba4b14c4f9aa03294d8d187fe0dd1202744e82.zip |
Merge branch 'egil/erts/nif-format_term/OTP-13580'
* egil/erts/nif-format_term/OTP-13580:
runtime_tools: Change erts_snprintf to enif_snprintf
erts: Document enif_snprintf
erts: Add tests for enif_snprintf
erts: Add enif_snprintf
Conflicts:
erts/emulator/beam/erl_nif_api_funcs.h
Diffstat (limited to 'erts/emulator/test/nif_SUITE_data')
-rw-r--r-- | erts/emulator/test/nif_SUITE_data/nif_SUITE.c | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/erts/emulator/test/nif_SUITE_data/nif_SUITE.c b/erts/emulator/test/nif_SUITE_data/nif_SUITE.c index 73073ad59f..13846244d4 100644 --- a/erts/emulator/test/nif_SUITE_data/nif_SUITE.c +++ b/erts/emulator/test/nif_SUITE_data/nif_SUITE.c @@ -1998,6 +1998,23 @@ static ERL_NIF_TERM port_command(ErlNifEnv* env, int argc, const ERL_NIF_TERM ar return atom_true; } +static ERL_NIF_TERM format_term(ErlNifEnv* env, int argc, const ERL_NIF_TERM argv[]) +{ + ErlNifBinary obin; + unsigned int size; + + if (!enif_get_uint(env, argv[0], &size)) + return enif_make_badarg(env); + if (!enif_alloc_binary(size,&obin)) + return enif_make_badarg(env); + + if (enif_snprintf((char*)obin.data, (size_t)size, "%T", argv[1]) < 0) + return atom_false; + + return enif_make_binary(env,&obin); +} + + static ErlNifFunc nif_funcs[] = { {"lib_version", 0, lib_version}, @@ -2073,7 +2090,8 @@ static ErlNifFunc nif_funcs[] = {"is_port_alive_nif", 1, is_port_alive}, {"term_to_binary_nif", 2, term_to_binary}, {"binary_to_term_nif", 3, binary_to_term}, - {"port_command_nif", 2, port_command} + {"port_command_nif", 2, port_command}, + {"format_term_nif", 2, format_term} }; ERL_NIF_INIT(nif_SUITE,nif_funcs,load,reload,upgrade,unload) |