commit:     ce14d2a533200d2917090e18b324d3bbf914ea18
Author:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
AuthorDate: Sun Dec 23 13:25:47 2018 +0000
Commit:     Sergei Trofimovich <slyfox <AT> gentoo <DOT> org>
CommitDate: Sun Dec 23 13:26:04 2018 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ce14d2a5

dev-lang/crystal: disable broken tests

networking tests don't work with FEATURES=network-sandbox
unix tests don't work on paths more than 107 bytes (crystal limitation)

Package-Manager: Portage-2.3.52, Repoman-2.3.12
Signed-off-by: Sergei Trofimovich <slyfox <AT> gentoo.org>

 dev-lang/crystal/crystal-0.27.0.ebuild             |  3 +
 .../crystal-0.27.0-gentoo-tests-long-unix.patch    | 90 ++++++++++++++++++++++
 ...ystal-0.27.0-gentoo-tests-network-sandbox.patch | 44 +++++++++++
 .../files/crystal-0.27.0-max-age-0-test.patch      | 14 ++++
 4 files changed, 151 insertions(+)

diff --git a/dev-lang/crystal/crystal-0.27.0.ebuild 
b/dev-lang/crystal/crystal-0.27.0.ebuild
index b7dcd5f70cf..763582835a2 100644
--- a/dev-lang/crystal/crystal-0.27.0.ebuild
+++ b/dev-lang/crystal/crystal-0.27.0.ebuild
@@ -44,6 +44,9 @@ PATCHES=(
        "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-sandbox.patch
        "${FILESDIR}"/${PN}-0.26.1-gentoo-tests-network-sandbox-3.patch
        "${FILESDIR}"/${PN}-0.27.0-extra-spec-flags.patch
+       "${FILESDIR}"/${PN}-0.27.0-max-age-0-test.patch
+       "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-network-sandbox.patch
+       "${FILESDIR}"/${PN}-0.27.0-gentoo-tests-long-unix.patch
 )
 
 src_prepare() {

diff --git a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch 
b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
new file mode 100644
index 00000000000..51b049ee980
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-long-unix.patch
@@ -0,0 +1,90 @@
+--- a/spec/std/socket/unix_server_spec.cr
++++ b/spec/std/socket/unix_server_spec.cr
+@@ -14,7 +14,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "creates the socket file" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "creates the socket file" do
+       with_tempfile("unix_server.sock") do |path|
+         UNIXServer.open(path) do
+           File.exists?(path).should be_true
+@@ -24,7 +26,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "deletes socket file on close" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "deletes socket file on close" do
+       with_tempfile("unix_server-close.sock") do |path|
+         server = UNIXServer.new(path)
+         server.close
+@@ -33,7 +37,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "raises when socket file already exists" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "raises when socket file already exists" do
+       with_tempfile("unix_server-twice.sock") do |path|
+         server = UNIXServer.new(path)
+ 
+@@ -45,7 +51,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "won't delete existing file on bind failure" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "won't delete existing file on bind failure" do
+       with_tempfile("unix_server-exist.sock") do |path|
+         File.write(path, "")
+         File.exists?(path).should be_true
+@@ -60,7 +68,9 @@ describe UNIXServer do
+   end
+ 
+   describe "accept" do
+-    it "returns the client UNIXSocket" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "returns the client UNIXSocket" do
+       with_tempfile("unix_server-accept.sock") do |path|
+         UNIXServer.open(path) do |server|
+           UNIXSocket.open(path) do |_|
+@@ -72,7 +82,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "raises when server is closed" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "raises when server is closed" do
+       with_tempfile("unix_server-closed.sock") do |path|
+         server = UNIXServer.new(path)
+         exception = nil
+@@ -97,7 +109,9 @@ describe UNIXServer do
+   end
+ 
+   describe "accept?" do
+-    it "returns the client UNIXSocket" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "returns the client UNIXSocket" do
+       with_tempfile("unix_server-accept_.sock") do |path|
+         UNIXServer.open(path) do |server|
+           UNIXSocket.open(path) do |_|
+@@ -109,7 +123,9 @@ describe UNIXServer do
+       end
+     end
+ 
+-    it "returns nil when server is closed" do
++    # On large non-standard temp paths the test fails as:
++    #    Path size exceeds the maximum size of 107 bytes
++    pending "returns nil when server is closed" do
+       with_tempfile("unix_server-accept2.sock") do |path|
+         server = UNIXServer.new(path)
+         ret = :initial

diff --git 
a/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch 
b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
new file mode 100644
index 00000000000..0ba0f18f73d
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-gentoo-tests-network-sandbox.patch
@@ -0,0 +1,44 @@
+--- a/spec/std/socket/tcp_server_spec.cr
++++ b/spec/std/socket/tcp_server_spec.cr
+@@ -76,13 +76,17 @@ describe TCPServer do
+         TCPServer.new("localhost", unused_local_port)
+       end
+ 
+-      it "raises when host doesn't exist" do
++      # gentoo's FEATURES=network-sandbox blocks external network:
++      #   Socket::Error: getaddrinfo: Temporary failure in name resolution
++      pending "raises when host doesn't exist" do
+         expect_raises(Socket::Error, "No address") do
+           TCPServer.new("doesnotexist.example.org.", 12345)
+         end
+       end
+ 
+-      it "raises (rather than segfault on darwin) when host doesn't exist and 
port is 0" do
++      # gentoo's FEATURES=network-sandbox blocks external network:
++      #   Socket::Error: getaddrinfo: Temporary failure in name resolution
++      pending "raises (rather than segfault on darwin) when host doesn't 
exist and port is 0" do
+         expect_raises(Socket::Error, "No address") do
+           TCPServer.new("doesnotexist.example.org.", 0)
+         end
+--- a/spec/std/socket/tcp_socket_spec.cr
++++ b/spec/std/socket/tcp_socket_spec.cr
+@@ -56,13 +56,17 @@ describe TCPSocket do
+         end
+       end
+ 
+-      it "raises when host doesn't exist" do
++      # gentoo's FEATURES=network-sandbox blocks external network:
++      #   Socket::Error: getaddrinfo: Temporary failure in name resolution
++      pending "raises when host doesn't exist" do
+         expect_raises(Socket::Error, "No address") do
+           TCPSocket.new("doesnotexist.example.org.", 12345)
+         end
+       end
+ 
+-      it "raises (rather than segfault on darwin) when host doesn't exist and 
port is 0" do
++      # gentoo's FEATURES=network-sandbox blocks external network:
++      #   Socket::Error: getaddrinfo: Temporary failure in name resolution
++      pending "raises (rather than segfault on darwin) when host doesn't 
exist and port is 0" do
+         expect_raises(Socket::Error, "No address") do
+           TCPSocket.new("doesnotexist.example.org.", 0)
+         end

diff --git a/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch 
b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
new file mode 100644
index 00000000000..d78927ab3ee
--- /dev/null
+++ b/dev-lang/crystal/files/crystal-0.27.0-max-age-0-test.patch
@@ -0,0 +1,14 @@
+--- a/spec/std/http/cookie_spec.cr
++++ b/spec/std/http/cookie_spec.cr
+@@ -150,7 +150,10 @@ module HTTP
+         parse_set_cookie("a=1; domain=127.0.0.1; path=/; 
HttpOnly").domain.should eq "127.0.0.1"
+       end
+ 
+-      it "parse max-age as seconds from Time.now" do
++      # unstable test: sometimes 'now - max-age=0' == 0.0:
++      #    Failure/Error: delta.should be > 0.seconds
++      #    Expected 00:00:00 to be > 00:00:00
++      pending "parse max-age as seconds from Time.now" do
+         cookie = parse_set_cookie("a=1; max-age=10")
+         delta = cookie.expires.not_nil! - Time.now
+         delta.should be > 9.seconds

Reply via email to