summaryrefslogtreecommitdiff
path: root/lib/kernel/test/os_SUITE.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/test/os_SUITE.erl')
-rw-r--r--lib/kernel/test/os_SUITE.erl50
1 files changed, 44 insertions, 6 deletions
diff --git a/lib/kernel/test/os_SUITE.erl b/lib/kernel/test/os_SUITE.erl
index a84acf3b34..01b76d83df 100644
--- a/lib/kernel/test/os_SUITE.erl
+++ b/lib/kernel/test/os_SUITE.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 1997-2021. All Rights Reserved.
+%% Copyright Ericsson AB 1997-2022. All Rights Reserved.
%%
%% Licensed under the Apache License, Version 2.0 (the "License");
%% you may not use this file except in compliance with the License.
@@ -337,7 +337,7 @@ close_stdin(Config) ->
DataDir = proplists:get_value(data_dir, Config),
Fds = filename:join(DataDir, "my_fds"),
- "-1" = os:cmd(Fds).
+ "0" = os:cmd(Fds).
max_size_command(_Config) ->
WSL = case os:getenv("WSLENV") of
@@ -396,10 +396,48 @@ do_perf_counter_test(CntArgs, Conv, Upper, Lower, Iters) ->
do_perf_counter_test(CntArgs, Conv, Upper, Lower, Iters-1)
end.
-error_info(_Config) ->
- L = [{cmd, [{no,string}]},
+error_info(Config) ->
+
+
+ ExhaustFDs =
+ fun(M,F,A) ->
+ case os:type() of
+ {unix, _} ->
+ {ok, Peer, Node} = ?CT_PEER(),
+ FN = filename:join(
+ proplists:get_value(priv_dir, Config),
+ "error_info"),
+ try
+ erpc:call(
+ Node,
+ fun() ->
+ io:format("Starting to open files..."),
+ (fun FDs(N) ->
+ case file:open(FN, [write]) of
+ {ok, _ } -> FDs(N+1);
+ {error, _} ->
+ io:format("Opened ~p files",[N])
+ end
+ end)(0),
+ apply(M,F,A)
+ end)
+ catch error:{exception, ErrorReason, StackTrace} ->
+ erlang:raise(error, ErrorReason, StackTrace)
+ after
+ peer:stop(Peer)
+ end;
+ _ ->
+ apply(M,F,A)
+ end
+ end,
+
+ L = [{cmd, [{no, string}]},
+ {cmd, [["echo 1",0,0,0,1]]},
{cmd, [{no, string}, #{}]},
{cmd, [{no, string}, no_map]},
+ {cmd, ["echo 1"], [{general, "too many open files \\(emfile\\)"},
+ {wrapper, ExhaustFDs}] ++
+ [no_fail || win32 =:= element(1, os:type())]},
{find_executable, 1}, %Not a BIF.
{find_executable, 2}, %Not a BIF.
@@ -416,7 +454,7 @@ error_info(_Config) ->
{perf_counter,[bad_time_unit]},
- {putenv, [<<"bad_key">>, <<"bad_value">>]},
+ {putenv, [<<"bad_key">>, <<"bad_value">>],[{1,".*"},{2,".*"}]},
{putenv, ["key", <<"bad_value">>]},
{putenv, [<<"bad_key">>, "value"]},
{putenv, ["abc=", "xyz"]},
@@ -424,7 +462,7 @@ error_info(_Config) ->
{set_signal, [{bad,signal}, ignore]},
{set_signal, [{bad,signal}, ignore]},
{set_signal, [bad_signal, bad_handling]},
- {set_signal, [{bad,signal}, bad_handling]},
+ {set_signal, [{bad,signal}, bad_handling],[{1,".*"},{2,".*"}]},
{system_time, [bad_time_unit]},
{unsetenv, [{bad,key}]}