aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test/io_SUITE.erl
diff options
context:
space:
mode:
authorAndrew Thompson <[email protected]>2012-09-19 16:54:01 -0400
committerAndrew Thompson <[email protected]>2012-09-19 16:54:01 -0400
commitc83931cbb3516563949d283fe46453a35cd35977 (patch)
treef4bd0d7ab0ca6e6e2f15f8f86ea5b5f9bf37ade8 /lib/stdlib/test/io_SUITE.erl
parent89ca0448e93beed780bc4c233529ce73063e8337 (diff)
downloadotp-c83931cbb3516563949d283fe46453a35cd35977.tar.gz
otp-c83931cbb3516563949d283fe46453a35cd35977.tar.bz2
otp-c83931cbb3516563949d283fe46453a35cd35977.zip
Fix printing the empty binary at depth 1 with ~W
A case clause ordering problem is causing the empty binary to be printed as <<...>> rather than the correct <<>> when using ~W with a depth of 1. Add new tests to verify correct behaviour.
Diffstat (limited to 'lib/stdlib/test/io_SUITE.erl')
-rw-r--r--lib/stdlib/test/io_SUITE.erl17
1 files changed, 15 insertions, 2 deletions
diff --git a/lib/stdlib/test/io_SUITE.erl b/lib/stdlib/test/io_SUITE.erl
index bb02a879c2..74fcdcc7d2 100644
--- a/lib/stdlib/test/io_SUITE.erl
+++ b/lib/stdlib/test/io_SUITE.erl
@@ -27,7 +27,8 @@
otp_6282/1, otp_6354/1, otp_6495/1, otp_6517/1, otp_6502/1,
manpage/1, otp_6708/1, otp_7084/1, otp_7421/1,
io_lib_collect_line_3_wb/1, cr_whitespace_in_string/1,
- io_fread_newlines/1, otp_8989/1, io_lib_fread_literal/1]).
+ io_fread_newlines/1, otp_8989/1, io_lib_fread_literal/1,
+ io_lib_print_binary_depth_one/1]).
%-define(debug, true).
@@ -62,7 +63,8 @@ all() ->
otp_6282, otp_6354, otp_6495, otp_6517, otp_6502,
manpage, otp_6708, otp_7084, otp_7421,
io_lib_collect_line_3_wb, cr_whitespace_in_string,
- io_fread_newlines, otp_8989, io_lib_fread_literal].
+ io_fread_newlines, otp_8989, io_lib_fread_literal,
+ io_lib_print_binary_depth_one].
groups() ->
[].
@@ -2021,3 +2023,14 @@ io_lib_fread_literal(Suite) when is_list(Suite) ->
?line {done,{error,{fread,input}},_} = io_lib:fread(C2, eof, " d"),
?line {done,{ok,[]},[]} = io_lib:fread(C2, "d\n", " d"),
ok.
+
+io_lib_print_binary_depth_one(doc) ->
+ "Test binaries printed with a depth of one behave correctly";
+io_lib_print_binary_depth_one(Suite) when is_list(Suite) ->
+ ?line "<<>>" = fmt("~W", [<<>>, 1]),
+ ?line "<<>>" = fmt("~P", [<<>>, 1]),
+ ?line "<<...>>" = fmt("~W", [<<1>>, 1]),
+ ?line "<<...>>" = fmt("~P", [<<1>>, 1]),
+ ?line "<<...>>" = fmt("~W", [<<1:7>>, 1]),
+ ?line "<<...>>" = fmt("~P", [<<1:7>>, 1]),
+ ok.