aboutsummaryrefslogtreecommitdiffstats
path: root/lib/stdlib/test/zip_SUITE.erl
diff options
context:
space:
mode:
authorSiri Hansen <[email protected]>2013-05-17 12:17:50 +0200
committerSiri Hansen <[email protected]>2013-05-17 12:17:50 +0200
commit5240f22038603f025274173fad71d0d4dd544bef (patch)
treebe0519aed513de4963f6e423c48f6f8657bc9410 /lib/stdlib/test/zip_SUITE.erl
parenta70d09b6e611771b467a91c7ebeca1e14390553a (diff)
parentdca1c83d1f496817a709091576d29d2ad1b976d2 (diff)
downloadotp-5240f22038603f025274173fad71d0d4dd544bef.tar.gz
otp-5240f22038603f025274173fad71d0d4dd544bef.tar.bz2
otp-5240f22038603f025274173fad71d0d4dd544bef.zip
Merge branch 'siri/cuddle-with-tests' into maint
* siri/cuddle-with-tests: Fix gen_server_SUITE:call_with_huge_message_queue Fix zip_SUITE:borderline test
Diffstat (limited to 'lib/stdlib/test/zip_SUITE.erl')
-rw-r--r--lib/stdlib/test/zip_SUITE.erl25
1 files changed, 22 insertions, 3 deletions
diff --git a/lib/stdlib/test/zip_SUITE.erl b/lib/stdlib/test/zip_SUITE.erl
index 7233c061ef..a57641ef62 100644
--- a/lib/stdlib/test/zip_SUITE.erl
+++ b/lib/stdlib/test/zip_SUITE.erl
@@ -1,7 +1,7 @@
%%
%% %CopyrightBegin%
%%
-%% Copyright Ericsson AB 2006-2011. All Rights Reserved.
+%% Copyright Ericsson AB 2006-2013. All Rights Reserved.
%%
%% The contents of this file are subject to the Erlang Public License,
%% Version 1.1, (the "License"); you may not use this file except in
@@ -109,13 +109,32 @@ borderline_test(Size, TempDir) ->
ok.
unzip_list(Archive, Name) ->
- case os:find_executable("unzip") of
- Unzip when is_list(Unzip) ->
+ case unix_unzip_exists() of
+ true ->
unzip_list1(Archive, Name);
_ ->
ok
end.
+%% Used to do os:find_executable() to check if unzip exists, but on
+%% some hosts that would give an unzip program which did not take the
+%% "-Z" option.
+%% Here we check that "unzip -Z" (which should display usage) and
+%% check that it exists with status 0.
+unix_unzip_exists() ->
+ case os:type() of
+ {unix,_} ->
+ Port = open_port({spawn,"unzip -Z > /dev/null"}, [exit_status]),
+ receive
+ {Port,{exit_status,0}} ->
+ true;
+ {Port,{exit_status,_Fail}} ->
+ false
+ end;
+ _ ->
+ false
+ end.
+
unzip_list1(Archive, Name) ->
Expect = Name ++ "\n",
cmd_expect("unzip -Z -1 " ++ Archive, Expect).