diff options
author | Erlang/OTP <[email protected]> | 2010-04-23 13:58:00 +0000 |
---|---|---|
committer | Erlang/OTP <[email protected]> | 2010-04-23 13:58:00 +0000 |
commit | 01fcc37102224072adc1d9f90876aa32e8b62799 (patch) | |
tree | f604573ecab28293cce8058f429589d815ba6ffd /lib | |
parent | 5411822647dc88b7b58725a25a2d5f626e8862f8 (diff) | |
parent | 7cca1066500448c2f061f0b1c9a2b04d185b1168 (diff) | |
download | otp-01fcc37102224072adc1d9f90876aa32e8b62799.tar.gz otp-01fcc37102224072adc1d9f90876aa32e8b62799.tar.bz2 otp-01fcc37102224072adc1d9f90876aa32e8b62799.zip |
Merge branch 'ta/code_clash-filter-error' into dev
* ta/code_clash-filter-error:
code:clash/0: match correct return value from erl_prim_loader:list_dir/1
Diffstat (limited to 'lib')
-rw-r--r-- | lib/kernel/src/code.erl | 2 | ||||
-rw-r--r-- | lib/kernel/test/code_SUITE.erl | 40 |
2 files changed, 29 insertions, 13 deletions
diff --git a/lib/kernel/src/code.erl b/lib/kernel/src/code.erl index ffe58ae7a9..db05c1d234 100644 --- a/lib/kernel/src/code.erl +++ b/lib/kernel/src/code.erl @@ -473,7 +473,7 @@ decorate([], _) -> []; decorate([File|Tail], Dir) -> [{Dir, File} | decorate(Tail, Dir)]. -filter(_Ext, Dir, {error,_}) -> +filter(_Ext, Dir, error) -> io:format("** Bad path can't read ~s~n", [Dir]), []; filter(Ext, _, {ok,Files}) -> filter2(Ext, length(Ext), Files). diff --git a/lib/kernel/test/code_SUITE.erl b/lib/kernel/test/code_SUITE.erl index 37b9200942..08b6477c9d 100644 --- a/lib/kernel/test/code_SUITE.erl +++ b/lib/kernel/test/code_SUITE.erl @@ -543,8 +543,8 @@ add_del_path(Config) when is_list(Config) -> ?line code:del_path(Dir2), ?line PrivDir1 = code:priv_dir(dummy_app), ok. - - + + clash(Config) when is_list(Config) -> DDir = ?config(data_dir,Config)++"clash/", P = code:get_path(), @@ -555,11 +555,11 @@ clash(Config) when is_list(Config) -> ?line true = code:del_path("."), ?line true = code:add_path(DDir++"foobar-0.1/ebin"), ?line true = code:add_path(DDir++"zork-0.8/ebin"), - ?line test_server:capture_start(), - ?line code:clash(), - ?line test_server:capture_stop(), - ?line OKMsg = test_server:capture_get(), - ?line lists:prefix("** Found 0 name clashes in code paths", OKMsg), + test_server:capture_start(), + ?line ok = code:clash(), + test_server:capture_stop(), + ?line [OKMsg|_] = test_server:capture_get(), + ?line true = lists:prefix("** Found 0 name clashes", OKMsg), ?line true = code:set_path(P), %% test clashing entries @@ -568,13 +568,29 @@ clash(Config) when is_list(Config) -> ?line true = code:del_path("."), ?line true = code:add_path(DDir++"foobar-0.1/ebin"), ?line true = code:add_path(DDir++"foobar-0.1.ez/foobar-0.1/ebin"), - ?line test_server:capture_start(), - ?line code:clash(), - ?line test_server:capture_stop(), - ?line [ErrMsg1|_] = test_server:capture_get(), - ?line {match, [" hides "]} = re:run(ErrMsg1, "\\*\\* .*( hides ).*", + test_server:capture_start(), + ?line ok = code:clash(), + test_server:capture_stop(), + ?line [ClashMsg|_] = test_server:capture_get(), + ?line {match, [" hides "]} = re:run(ClashMsg, "\\*\\* .*( hides ).*", [{capture,all_but_first,list}]), ?line true = code:set_path(P), + + %% test "Bad path can't read" + + %% remove "." to prevent clash with test-server path + Priv = ?config(priv_dir, Config), + ?line true = code:del_path("."), + TmpEzFile = Priv++"foobar-0.tmp.ez", + ?line {ok, _} = file:copy(DDir++"foobar-0.1.ez", TmpEzFile), + ?line true = code:add_path(TmpEzFile++"/foobar-0.1/ebin"), + ?line ok = file:delete(TmpEzFile), + test_server:capture_start(), + ?line ok = code:clash(), + test_server:capture_stop(), + ?line [BadPathMsg|_] = test_server:capture_get(), + ?line true = lists:prefix("** Bad path can't read", BadPathMsg), + ?line true = code:set_path(P), ok. ext_mod_dep(suite) -> |