Skip to content

Commit 0ff906f

Browse files
committed
erts: add testcase
1 parent bcbfc35 commit 0ff906f

1 file changed

Lines changed: 19 additions & 1 deletion

File tree

erts/test/erlexec_SUITE.erl

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
init_per_testcase/2, end_per_testcase/2]).
3232

3333
-export([args_file/1, evil_args_file/1, missing_args_file/1, env/1, args_file_env/1,
34+
unicode_args_file/1,
3435
otp_7461/1, otp_7461_remote/1, argument_separation/1, argument_with_option/1,
3536
zdbbl_dist_buf_busy_limit/1]).
3637

@@ -41,7 +42,8 @@ suite() ->
4142
{timetrap, {minutes, 1}}].
4243

4344
all() ->
44-
[args_file, evil_args_file, missing_args_file, env, args_file_env,
45+
[args_file, evil_args_file, missing_args_file, unicode_args_file,
46+
env, args_file_env,
4547
otp_7461, argument_separation, argument_with_option, zdbbl_dist_buf_busy_limit].
4648

4749
init_per_suite(Config) ->
@@ -318,6 +320,22 @@ missing_args_file(Config) when is_list(Config) ->
318320
exit({unexpected_args_output, Output, Error})
319321
end.
320322

323+
unicode_args_file(Config) when is_list(Config) ->
324+
%% Test that -args_file works with Unicode paths (e.g. Cyrillic).
325+
%% This is a regression test for a bug where fopen() on Windows
326+
%% could not open files with non-ASCII paths.
327+
PrivDir = proplists:get_value(priv_dir, Config),
328+
UnicodeDir = filename:join(PrivDir, "Артем"),
329+
ok = file:make_dir(UnicodeDir),
330+
AFN = filename:join(UnicodeDir, "args.txt"),
331+
write_file(AFN, "-MiscArg1 +\\#100 -extra +XtraArg1"),
332+
CmdLine = "-args_file " ++ AFN,
333+
{Emu, Misc, Extra} = emu_args(CmdLine),
334+
verify_args(["-#100"], Emu),
335+
verify_args(["-MiscArg1"], Misc),
336+
verify_args(["+XtraArg1"], Extra),
337+
ok.
338+
321339
env(Config) when is_list(Config) ->
322340
os:putenv("ERL_AFLAGS", "-MiscArg1 +#100 -extra +XtraArg1 +XtraArg2"),
323341
CmdLine = "+#200 -MiscArg2 -extra +XtraArg3 +XtraArg4",

0 commit comments

Comments
 (0)