diff options
author | Henrik Nord <[email protected]> | 2011-05-09 15:08:38 +0200 |
---|---|---|
committer | Henrik Nord <[email protected]> | 2011-05-09 15:08:46 +0200 |
commit | b20244d0f730a950749919245eec3abd42b44cc5 (patch) | |
tree | ad2e420e7b32498dadccf115ac6ecc76dd5bf535 /lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl | |
parent | dbc55f6b24ed507ee2201d0c084d167630d822d0 (diff) | |
parent | 39e62c0a199af0c91d1bfb11b186b574824dce1b (diff) | |
download | otp-b20244d0f730a950749919245eec3abd42b44cc5.tar.gz otp-b20244d0f730a950749919245eec3abd42b44cc5.tar.bz2 otp-b20244d0f730a950749919245eec3abd42b44cc5.zip |
Merge branch 'sa/dialyzer-tests' into dev
* sa/dialyzer-tests: (22 commits)
Update dialyzer.spec
Add race/ets_insert_public
Add opaque/ewgi,ewgi2
Add opaque/schuett_bug
Add small/param_types_crash
Add small/file_open_encoding
Add small/false_false
Add small/ets_update_counter
Add small/bin_compr
Add small/tuple_set_crash
Add small/refine_failing
Add small/not_bogus_warning
Add small/none_scc_inf_loop
Add small/guards
Add small/guard_warnings
Add small/confusing_record_warning
Add small/blame_contract_range
Update small/recursive_types2 source
Update opaque/zoltan_kis* sources
Update options1/compiler results
...
OTP-9278
Diffstat (limited to 'lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl')
-rw-r--r-- | lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl b/lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl new file mode 100644 index 0000000000..2ee9a3a6e2 --- /dev/null +++ b/lib/dialyzer/test/small_SUITE_data/src/port_info_test.erl @@ -0,0 +1,33 @@ +%% +%% Tests hardcoded dependent type info +%% and the quality of the warnings that Dialyzer spits out +%% +-module(port_info_test). +-export([t1/1, t2/1, t3/1, t4/1, t5/2, buggy/1]). + +%% The following errors are correctly caught, but the messages are a bit weird +t1(X) when is_port(X) -> + {connected, 42} = erlang:port_info(X, connected); +t1(_) -> ok. + +t2(X) when is_port(X) -> + {registered_name, "42"} = erlang:port_info(X, registered_name); +t2(_) -> ok. + +%% Here only one od the two errors is reported... +t3(X) when is_atom(X) -> + {output, 42} = erlang:port_info(X, connected); +t3(_) -> ok. + +t4(X) when is_atom(X) -> + {Atom, _} = erlang:port_info(X, connected), + Atom = links; +t4(_) -> ok. + +t5(X, Atom) when is_port(X) -> + {gazonk, _} = erlang:port_info(X, Atom); +t5(_, _) -> ok. + +%% The type system is not strong enough to catch the following errors +buggy(X) when is_atom(X) -> + {links, X} = erlang:port_info(foo, X). |