Skip to content

Commit

Permalink
erts: Add recv marker testcase for prim_inet
Browse files Browse the repository at this point in the history
  • Loading branch information
garazdawi committed Feb 21, 2025
1 parent a7b82ec commit 969431e
Showing 1 changed file with 22 additions and 3 deletions.
25 changes: 22 additions & 3 deletions lib/kernel/test/gen_tcp_misc_SUITE.erl
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@

-module(gen_tcp_misc_SUITE).

-include_lib("common_test/include/ct.hrl").
-include_lib("stdlib/include/assert.hrl").
-include("kernel_test_lib.hrl").

-export([
Expand Down Expand Up @@ -108,7 +108,8 @@
otp_18357/1,
otp_18883/1,
otp_18707/1,
send_block_unblock/1
send_block_unblock/1,
prim_inet_recv_marker/1
]).

%% Internal exports.
Expand Down Expand Up @@ -205,7 +206,7 @@ inet_backend_default_cases() ->
all_std_cases().

inet_backend_inet_cases() ->
all_std_cases().
[prim_inet_recv_marker] ++ all_std_cases().

inet_backend_socket_cases() ->
all_std_cases().
Expand Down Expand Up @@ -9433,6 +9434,24 @@ do_otp_18707(_Config) ->
?P("done"),
ok.

%% Disassemble prim_inet.beam and make that sure each function has
%% the correct number of recv markers.
prim_inet_recv_marker(_Config) ->
[PrimInet | _] = filelib:wildcard(
filename:join([code:lib_dir(erts),"**","prim_inet.beam"])),

{beam_file, prim_inet, _Exports, _Vsn, _Attr, Functions} =
beam_disasm:file(PrimInet),
RecvMarkerCnt =
[{Name,Arity,length([C || {recv_marker_use,_} = C <- Code])}
|| {function, Name, Arity, _, Code} <- Functions],
RecvMarkers =
[{Name, Arity} || {Name,Arity,Cnt} <- RecvMarkerCnt, Cnt =/= 0],

?assert(lists:member({send,4}, RecvMarkers)),
?assert(lists:member({do_sendto,4}, RecvMarkers)),

ok.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

Expand Down

0 comments on commit 969431e

Please sign in to comment.