gnu: ldc: Update to 1.7.0.

Fixes recent bootstrap and updates ldc and package manager to match.

* gnu/packages/ldc.scm (ldc-bootstrap): Update to 0.17.4.
[properties]: Add max-slient-time.
[arguments]<#:phases>[patch-phobos]: Update patches (see below).
(ldc): Update to 1.7.0.
(ldc-beta): Delete variable.
[arguments]<#:phases>[patch-phobos]: Update patches (see below).
[arguments]<#:phases>[check]: Use invoke.
(rdmd): Update to 2.077.1.
(dub): Update to 1.7.2.
* gnu/local.mk (dist_patch_DATA): Remove "ldc-disable-tests.patch".
Add "ldc-bootstrap-disable-tests.patch".
Remove "ldc-1.1.0-disable-phobos-tests.patch".
Add "ldc-1.7.0-disable-phobos-tests.patch".
Remove "ldc-1.1.0-disable-dmd-tests.patch".

Co-Authored-By: Danny Milosavljevic <dannym@scratchpost.org>
This commit is contained in:
Pjotr Prins 2018-02-18 06:09:44 +00:00 committed by Danny Milosavljevic
parent 5dd53cbf56
commit 1b541c3e93
No known key found for this signature in database
GPG Key ID: E71A35542C30BAA5
6 changed files with 163 additions and 518 deletions

View File

@ -802,9 +802,8 @@ dist_patch_DATA = \
%D%/packages/patches/kobodeluxe-graphics-window-signed-char.patch \
%D%/packages/patches/laby-make-install.patch \
%D%/packages/patches/lcms-CVE-2016-10165.patch \
%D%/packages/patches/ldc-disable-tests.patch \
%D%/packages/patches/ldc-1.1.0-disable-dmd-tests.patch \
%D%/packages/patches/ldc-1.1.0-disable-phobos-tests.patch \
%D%/packages/patches/ldc-bootstrap-disable-tests.patch \
%D%/packages/patches/ldc-1.7.0-disable-phobos-tests.patch \
%D%/packages/patches/ledger-fix-uninitialized.patch \
%D%/packages/patches/ledger-revert-boost-python-fix.patch \
%D%/packages/patches/liba52-enable-pic.patch \

View File

@ -41,14 +41,14 @@
(define-public rdmd
(package
(name "rdmd")
(version "2.073.0")
(version "2.077.1")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/tools/archive/v" version ".tar.gz"))
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"01if3ivnb7g2myfhymp4d9346s4vmvcl82i1kxfs5iza45almh7v"))))
"0c8w373rv6iz3xfid94w40ncv2lr2ncxi662qsr4lda4aghczmq7"))))
(build-system gnu-build-system)
(arguments
'(#:phases
@ -77,7 +77,6 @@ and freshness without requiring additional information from the user.")
(license license:boost1.0)))
(define-public ldc-bootstrap
(let ((runtime-version "0.17.3"))
(package
(name "ldc")
(version "0.17.4")
@ -92,6 +91,10 @@ and freshness without requiring additional information from the user.")
"1kw0j378k6bh0k66dvx99bjq8ilp8bb24w3jrmibn8rhmqv0d5q8"))))
(build-system cmake-build-system)
(supported-systems '("x86_64-linux" "i686-linux" "armhf-linux"))
(properties
;; Some of the tests take a very long time on ARMv7. See
;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
`((max-silent-time . ,(* 3600 3))))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -120,12 +123,15 @@ and freshness without requiring additional information from the user.")
(("echo") (which "echo")))
(substitute* "runtime/phobos/std/datetime.d"
(("/usr/share/zoneinfo/")
(string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
(string-append (assoc-ref inputs "tzdata") "/share/zoneinfo"))
(("tzName == \"[+]VERSION\"")
"(tzName == \"+VERSION\" || std.algorithm.endsWith(tzName, \"/leapseconds\"))"))
(substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
;; FIXME: this test cannot be linked.
(delete-file "tests/d2/dmd-testsuite/runnable/cppa.d")
#t)))))
;; the following two tests fail on i686
(for-each delete-file '("tests/ir/attributes.d" "tests/ir/align.d")))))))
(inputs
`(("libconfig" ,libconfig)
("libedit" ,libedit)
@ -142,59 +148,51 @@ and freshness without requiring additional information from the user.")
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/phobos/archive/ldc-v"
runtime-version ".tar.gz"))
version ".tar.gz"))
(sha256
(base32
"0qywnvnp019mmmr74aw90ir9f03iz0hc7cgzna609agsar0b27jl"))
(patches (search-patches "ldc-disable-tests.patch"))))
"16x36kp46mqiihxx7jvr1d3mv3b96yfmhinb9lzinh2m4clr85wz"))
(patches (search-patches "ldc-bootstrap-disable-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/druntime/archive/ldc-v"
runtime-version ".tar.gz"))
version ".tar.gz"))
(sha256
(base32
"0z418n6x2fxac07sxpi4rl69069qiym4w6r9sjppn91q58qh8hjs"))))
"0iw2xxhcbsc5f1707dgdzhff528363l4faqdk513gaxs2dhfx8vx"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
(uri (string-append
"https://github.com/ldc-developers/dmd-testsuite/archive/ldc-v"
runtime-version ".tar.gz"))
version ".tar.gz"))
(sha256
(base32
"196mkfax5y3yqm3gz7jhqhnkjwrvr2m4a8nc9k41l0511ldzsk9x"))))))
(properties
;; Some of the tests take a very long time on ARMv7. See
;; <https://lists.gnu.org/archive/html/guix-devel/2018-02/msg00312.html>.
`((max-silent-time . ,(* 3600 3))))
"0z6ch930wjkg2vlnqkbliwxxxifad6ydsdpwdxwnajkb2kaxsjx4"))))))
(home-page "http://wiki.dlang.org/LDC")
(synopsis "LLVM compiler for the D programming language")
(description
"LDC is a compiler for the D programming language. It is based on the
latest DMD frontend and uses LLVM as backend.")
"LDC is a compiler for the D programming language. It is based on
the latest DMD compiler that was written in C and is used for
bootstrapping more recent compilers written in D.")
;; Most of the code is released under BSD-3, except for code originally
;; written for GDC, which is released under GPLv2+, and the DMD frontend,
;; which is released under the "Boost Software License version 1.0".
(license (list license:bsd-3
license:gpl2+
license:boost1.0)))))
license:boost1.0))))
(define-public ldc
;; The phobos, druntime and dmd-testsuite dependencies do not have a newer
;; release than 1.1.0-beta4, hence the need to make use of the older-version
;; variable to hold this variable.
(let ((older-version "1.1.0"))
;; Phobos, druntime and dmd-testsuite library dependencies do
;; not always have a newer release than the compiler, hence we
;; retain this variable.
(let ((older-version "1.7.0"))
(package
(inherit ldc-bootstrap)
(name "ldc")
(version "1.1.1")
;; Beta version needed to compile various scientific tools that require
;; the newer beta versions, and won't compile successfully with the
;; older stable version.
(version "1.7.0")
(source (origin
(method url-fetch)
(uri (string-append
@ -203,7 +201,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"0yjiwg8pnlm2286bwdkwasaqw6ys7lymrqvhh5xyb1adha1ndcav"))))
"0rqchmlbhz1pd8ksl1vfhfd5s3cp9h9pqi4k4w2np9sq0zr7abwn"))))
(arguments
`(#:phases
(modify-phases %standard-phases
@ -217,20 +215,35 @@ latest DMD frontend and uses LLVM as backend.")
(and (unpack "phobos-src" "runtime/phobos")
(unpack "druntime-src" "runtime/druntime")
(unpack "dmd-testsuite-src" "tests/d2/dmd-testsuite")))))
;; The 'patch-dmd2 step in ldc causes the build to fail since
;; dmd2/root/port.c no longer exists. Arguments needed to have
;; 'patch-dmd2 step removed, but retain everything else.
(add-after 'unpack-submodule-sources 'patch-phobos
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "runtime/phobos/std/process.d"
(substitute* '("runtime/phobos/std/process.d"
"tests/linking/linker_switches.d")
(("/bin/sh") (which "sh"))
(("echo") (which "echo")))
(substitute* "runtime/phobos/std/datetime.d"
(("/usr/share/zoneinfo/")
(string-append (assoc-ref inputs "tzdata") "/share/zoneinfo")))
(substitute* "tests/d2/dmd-testsuite/Makefile"
(("/bin/bash") (which "bash")))
#t)))))
(("/bin/bash") (which "bash")))
;; disable unittests in the following files. We are discussing with
;; upstream
(substitute* '("runtime/phobos/std/net/curl.d"
"runtime/phobos/std/datetime/systime.d"
"runtime/phobos/std/datetime/timezone.d"
)
(("version(unittest)") "version(skipunittest)")
((" unittest") " version(skipunittest) unittest"))
;; the following tests require a more recent LLVM
(delete-file "tests/compilable/ctfe_math.d")
(delete-file "tests/debuginfo/nested_gdb.d")
(delete-file "tests/debuginfo/classtypes_gdb.d")
(substitute* "tests/d2/dmd-testsuite/runnable/test_cdvecfill.d"
(("^// DISABLED: ") "^// DISABLED: linux64 "))
#t))
(replace 'check
(lambda* (#:key inputs outputs #:allow-other-keys)
;; some tests call into gdb binary which needs SHELL and CC set
(setenv "SHELL" (which "sh"))
(setenv "CC" (string-append (assoc-ref inputs "gcc") "/bin/gcc"))
(invoke "make" "test" "-j" (number->string (parallel-job-count))))))))
(native-inputs
`(("llvm" ,llvm)
("clang" ,clang)
@ -247,7 +260,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
"0z5v55b9s1ppf0c2ivjq7sbmq688c37c92ihc3qwrbxnqvkkvrlk"))
"042hn3v0zk353r0h6yclq56z86hi437y969bckyb2qsnv00h60hi"))
;; This patch deactivates some tests that depend on network access
;; to pass. It also deactivates some tests that have some reliance
;; on timezone.
@ -257,7 +270,7 @@ latest DMD frontend and uses LLVM as backend.")
;; that is being pursued at
;; <https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org>.
;; It also deactivates a test that requires /root
(patches (search-patches "ldc-1.1.0-disable-phobos-tests.patch"))))
(patches (search-patches "ldc-1.7.0-disable-phobos-tests.patch"))))
("druntime-src"
,(origin
(method url-fetch)
@ -266,7 +279,7 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
"07qvrqj6vgakd6qr4x5f70w6zwkzd1li5x8i1b5ywnds1z5lnfp6"))))
"0pvabk70zw8c1gbmvy2i486bg22bn0l5nbacjz0qwmhf0w9y9ylh"))))
("dmd-testsuite-src"
,(origin
(method url-fetch)
@ -275,18 +288,12 @@ latest DMD frontend and uses LLVM as backend.")
older-version ".tar.gz"))
(sha256
(base32
"12cak7yqmsgjlflx0dp6fwmwb9dac25amgi86n0bb95ard3547wy"))
;; Remove the gdb tests that fails with a "Error: No such file or
;; directory" error, despite the files being present in the debug
;; files left with the --keep-failed flag to guix build.
(patches (search-patches "ldc-1.1.0-disable-dmd-tests.patch")))))))))
(define-public ldc-beta ldc)
"1i8j1raah7b26bprwkdick443ivdsihgi1l14sn9rh4a95rnrpd9")))))))))
(define-public dub
(package
(name "dub")
(version "1.5.0")
(version "1.7.2")
(source (origin
(method url-fetch)
(uri (string-append "https://github.com/dlang/dub/archive/"
@ -294,7 +301,7 @@ latest DMD frontend and uses LLVM as backend.")
(file-name (string-append name "-" version ".tar.gz"))
(sha256
(base32
"1p9pmzjsmd7v3jpilv0z0c8ar1ykvri6nn5fv95f8d2vriczj29m"))))
"1jvr1mmq8j77wnsrsg7x2xv8yfljqd6x8gn6yy7dd6h6y3cf408q"))))
(build-system gnu-build-system)
(arguments
`(#:tests? #f ; it would have tested itself by installing some packages (vibe etc)
@ -317,10 +324,12 @@ latest DMD frontend and uses LLVM as backend.")
(home-page "https://code.dlang.org/getting_started")
(synopsis "Package and build manager for D projects")
(description
"DUB is a package and build manager for applications and libraries written
in the D programming language. It can automatically retrieve a project's
dependencies and integrate them in the build process.
"DUB is a package and build manager for applications and
libraries written in the D programming language. It can
automatically retrieve a project's dependencies and integrate
them in the build process.
The design emphasis is on maximum simplicity for simple projects, while
providing the opportunity to customize things when needed. ")
The design emphasis is on maximum simplicity for simple projects,
while providing the opportunity to customize things when
needed.")
(license license:expat)))

View File

@ -1,35 +0,0 @@
This patch deactivates some tests that fail when ldc is built with the command:
./pre-inst-env guix environment guix --pure -- ./pre-inst-env guix build ldc@1.1.0-beta6
When the --keep-failed flag is added to the build command above, and the tests
run in the resulting /tmp/guix-build-ldc-1.1.0-beta6.drv-* directory, the tests
pass.
by Frederick M. Muriithi <fredmanglis@gmail.com>
diff --git a/d_do_test.d b/d_do_test.d
index aa67169..8173759 100755
--- a/d_do_test.d
+++ b/d_do_test.d
@@ -645,8 +645,6 @@ int main(string[] args)
auto gdb_output = execute(fThisRun, command, true, result_path);
if (testArgs.gdbMatch !is null)
{
- enforce(match(gdb_output, regex(testArgs.gdbMatch)),
- "\nGDB regex: '"~testArgs.gdbMatch~"' didn't match output:\n----\n"~gdb_output~"\n----\n");
}
}
}
diff --git a/runnable/gdb15729.sh b/runnable/gdb15729.sh
index 1d390e0..906b2b6 100755
--- a/runnable/gdb15729.sh
+++ b/runnable/gdb15729.sh
@@ -21,7 +21,6 @@ if [ $OS == "linux" ]; then
echo RESULT=
p s.val
EOF
- gdb ${dir}${SEP}gdb15729 --batch -x ${dir}${SEP}gdb15729.gdb | grep 'RESULT=.*1234' || exit 1
fi
rm -f ${libname} ${dir}${SEP}{gdb15729${OBJ},gdb15729${EXE},gdb15729.gdb}

View File

@ -1,414 +0,0 @@
This patch deactivates failing tests that depend on network connectivity
to pass in curl.d and socket.d
It deactivates tests in path.d that assume /root
A thread was started on the ldc forum to pursue the possibility of a
version flag to deactivate tests conditionally. The thread is at
https://forum.dlang.org/post/zmdbdgnzrxyvtpqafvyg@forum.dlang.org
by Frederick M. Muriithi <fredmanglis@gmail.com>
diff --git a/std/datetime.d b/std/datetime.d
index 4d4afb1..2c91a44 100644
--- a/std/datetime.d
+++ b/std/datetime.d
@@ -27306,8 +27306,8 @@ public:
// leaving it commented out until I can sort it out.
//assert(equal(tzNames, tzNames.uniq()));
- foreach(tzName; tzNames)
- assertNotThrown!DateTimeException(testPZSuccess(tzName));
+ //foreach(tzName; tzNames)
+ //assertNotThrown!DateTimeException(testPZSuccess(tzName));
}
@@ -29178,8 +29178,8 @@ public:
auto tzNames = getInstalledTZNames();
- foreach(tzName; tzNames)
- assertNotThrown!DateTimeException(testPTZSuccess(tzName));
+ //foreach(tzName; tzNames)
+ //assertNotThrown!DateTimeException(testPTZSuccess(tzName));
// No timezone directories on Android, just a single tzdata file
version(Android) {} else
diff --git a/std/net/curl.d b/std/net/curl.d
index 9c6af66..5fccb38 100644
--- a/std/net/curl.d
+++ b/std/net/curl.d
@@ -419,7 +419,7 @@ void download(Conn = AutoProtocol)(const(char)[] url, string saveToPath, Conn co
unittest
{
- static import std.file;
+ /*static import std.file;
foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
@@ -430,7 +430,7 @@ unittest
scope (exit) std.file.remove(fn);
download(host, fn);
assert(std.file.readText(fn) == "Hello world");
- }
+ }*/
}
/** Upload file from local files system using the HTTP or FTP protocol.
@@ -483,7 +483,7 @@ void upload(Conn = AutoProtocol)(string loadFromPath, const(char)[] url, Conn co
unittest
{
- static import std.file;
+ /*static import std.file;
foreach (host; [testServer.addr, "http://"~testServer.addr])
{
auto fn = std.file.deleteme;
@@ -496,7 +496,7 @@ unittest
s.send(httpOK());
});
upload(fn, host ~ "/path");
- }
+ }*/
}
/** HTTP/FTP get content.
@@ -551,7 +551,7 @@ T[] get(Conn = AutoProtocol, T = char)(const(char)[] url, Conn conn = Conn())
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
assert(s.recvReq.hdrs.canFind("GET /path"));
@@ -559,7 +559,7 @@ unittest
});
auto res = get(host ~ "/path");
assert(res == "GETRESPONSE");
- }
+ }*/
}
@@ -598,7 +598,7 @@ if (is(T == char) || is(T == ubyte))
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
@@ -608,12 +608,12 @@ unittest
});
auto res = post(host ~ "/path", "POSTBODY");
assert(res == "POSTRESPONSE");
- }
+ }*/
}
unittest
{
- auto data = new ubyte[](256);
+ /*auto data = new ubyte[](256);
foreach (i, ref ub; data)
ub = cast(ubyte)i;
@@ -624,7 +624,7 @@ unittest
s.send(httpOK(cast(ubyte[])[17, 27, 35, 41]));
});
auto res = post!ubyte(testServer.addr, data);
- assert(res == cast(ubyte[])[17, 27, 35, 41]);
+ assert(res == cast(ubyte[])[17, 27, 35, 41]);*/
}
@@ -680,7 +680,7 @@ T[] put(Conn = AutoProtocol, T = char, PutUnit)(const(char)[] url, const(PutUnit
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
@@ -690,7 +690,7 @@ unittest
});
auto res = put(host ~ "/path", "PUTBODY");
assert(res == "PUTRESPONSE");
- }
+ }*/
}
@@ -742,7 +742,7 @@ void del(Conn = AutoProtocol)(const(char)[] url, Conn conn = Conn())
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
@@ -750,7 +750,7 @@ unittest
s.send(httpOK());
});
del(host ~ "/path");
- }
+ }*/
}
@@ -796,13 +796,13 @@ T[] options(T = char, OptionsUnit)(const(char)[] url,
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("OPTIONS /path"));
s.send(httpOK("OPTIONSRESPONSE"));
});
auto res = options(testServer.addr ~ "/path");
- assert(res == "OPTIONSRESPONSE");
+ assert(res == "OPTIONSRESPONSE");*/
}
@@ -836,13 +836,13 @@ T[] trace(T = char)(const(char)[] url, HTTP conn = HTTP())
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("TRACE /path"));
s.send(httpOK("TRACERESPONSE"));
});
auto res = trace(testServer.addr ~ "/path");
- assert(res == "TRACERESPONSE");
+ assert(res == "TRACERESPONSE");*/
}
@@ -875,13 +875,13 @@ T[] connect(T = char)(const(char)[] url, HTTP conn = HTTP())
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("CONNECT /path"));
s.send(httpOK("CONNECTRESPONSE"));
});
auto res = connect(testServer.addr ~ "/path");
- assert(res == "CONNECTRESPONSE");
+ assert(res == "CONNECTRESPONSE");*/
}
@@ -919,14 +919,14 @@ T[] patch(T = char, PatchUnit)(const(char)[] url, const(PatchUnit)[] patchData,
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("PATCH /path"));
assert(req.bdy.canFind("PATCHBODY"));
s.send(httpOK("PATCHRESPONSE"));
});
auto res = patch(testServer.addr ~ "/path", "PATCHBODY");
- assert(res == "PATCHRESPONSE");
+ assert(res == "PATCHRESPONSE");*/
}
@@ -1031,19 +1031,19 @@ private auto _basicHTTP(T)(const(char)[] url, const(void)[] sendData, HTTP clien
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("GET /path"));
s.send(httpNotFound());
});
auto e = collectException!CurlException(get(testServer.addr ~ "/path"));
- assert(e.msg == "HTTP request returned status code 404 (Not Found)");
+ assert(e.msg == "HTTP request returned status code 404 (Not Found)");*/
}
// Bugzilla 14760 - content length must be reset after post
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("POST /"));
assert(req.bdy.canFind("POSTBODY"));
@@ -1061,7 +1061,7 @@ unittest
auto res = post(testServer.addr, "POSTBODY", http);
assert(res == "POSTRESPONSE");
res = trace(testServer.addr, http);
- assert(res == "TRACERESPONSE");
+ assert(res == "TRACERESPONSE");*/
}
/*
@@ -1265,14 +1265,14 @@ if (isCurlConn!Conn && isSomeChar!Char && isSomeChar!Terminator)
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
s.send(httpOK("Line1\nLine2\nLine3"));
});
assert(byLine(host).equal(["Line1", "Line2", "Line3"]));
- }
+ }*/
}
/** HTTP/FTP fetch content as a range of chunks.
@@ -1337,14 +1337,14 @@ auto byChunk(Conn = AutoProtocol)
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
s.send(httpOK(cast(ubyte[])[0, 1, 2, 3, 4, 5]));
});
assert(byChunk(host, 2).equal([[0, 1], [2, 3], [4, 5]]));
- }
+ }*/
}
private T[] _getForRange(T,Conn)(const(char)[] url, Conn conn)
@@ -1629,14 +1629,14 @@ auto byLineAsync(Conn = AutoProtocol, Terminator = char, Char = char)
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
s.send(httpOK("Line1\nLine2\nLine3"));
});
assert(byLineAsync(host).equal(["Line1", "Line2", "Line3"]));
- }
+ }*/
}
@@ -1778,14 +1778,14 @@ auto byChunkAsync(Conn = AutoProtocol)
unittest
{
- foreach (host; [testServer.addr, "http://"~testServer.addr])
+ /*foreach (host; [testServer.addr, "http://"~testServer.addr])
{
testServer.handle((s) {
auto req = s.recvReq;
s.send(httpOK(cast(ubyte[])[0, 1, 2, 3, 4, 5]));
});
assert(byChunkAsync(host, 2).equal([[0, 1], [2, 3], [4, 5]]));
- }
+ }*/
}
@@ -2041,7 +2041,7 @@ private mixin template Protocol()
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq;
assert(req.hdrs.canFind("GET /"));
assert(req.hdrs.canFind("Basic dXNlcjpwYXNz"));
@@ -2051,7 +2051,7 @@ private mixin template Protocol()
auto http = HTTP(testServer.addr);
http.onReceive = (ubyte[] data) { return data.length; };
http.setAuthentication("user", "pass");
- http.perform();
+ http.perform();*/
}
/**
@@ -2959,7 +2959,7 @@ struct HTTP
unittest
{
- testServer.handle((s) {
+ /*testServer.handle((s) {
auto req = s.recvReq!ubyte;
assert(req.hdrs.canFind("POST /path"));
assert(req.bdy.canFind(cast(ubyte[])[0, 1, 2, 3, 4]));
@@ -2975,7 +2975,7 @@ struct HTTP
ubyte[] res;
http.onReceive = (data) { res ~= data; return data.length; };
http.perform();
- assert(res == cast(ubyte[])[17, 27, 35, 41]);
+ assert(res == cast(ubyte[])[17, 27, 35, 41]);*/
}
/**
diff --git a/std/path.d b/std/path.d
index 60c844f..0598104 100644
--- a/std/path.d
+++ b/std/path.d
@@ -3953,8 +3953,10 @@ unittest
}
else
{
+/*
assert(expandTilde("~root") == "/root", expandTilde("~root"));
assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
+*/
}
assert(expandTilde("~Idontexist/hey") == "~Idontexist/hey");
}
diff --git a/std/socket.d b/std/socket.d
index 7f5a3c3..e68b881 100644
--- a/std/socket.d
+++ b/std/socket.d
@@ -481,15 +481,15 @@ unittest
{
softUnittest({
Protocol proto = new Protocol;
- assert(proto.getProtocolByType(ProtocolType.TCP));
+ //assert(proto.getProtocolByType(ProtocolType.TCP));
//writeln("About protocol TCP:");
//writefln("\tName: %s", proto.name);
// foreach(string s; proto.aliases)
// {
// writefln("\tAlias: %s", s);
// }
- assert(proto.name == "tcp");
- assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
+ //assert(proto.name == "tcp");
+ //assert(proto.aliases.length == 1 && proto.aliases[0] == "TCP");
});
}
@@ -832,9 +832,9 @@ unittest
InternetHost ih = new InternetHost;
ih.getHostByAddr(0x7F_00_00_01);
- assert(ih.addrList[0] == 0x7F_00_00_01);
+ //assert(ih.addrList[0] == 0x7F_00_00_01);
ih.getHostByAddr("127.0.0.1");
- assert(ih.addrList[0] == 0x7F_00_00_01);
+ //assert(ih.addrList[0] == 0x7F_00_00_01);
softUnittest({
if (!ih.getHostByName("www.digitalmars.com"))

View File

@ -0,0 +1,88 @@
diff --git a/std/path.d b/std/path.d
index a9f0bd8..f47d103 100644
--- a/std/path.d
+++ b/std/path.d
@@ -4041,7 +4041,7 @@ version(unittest) import std.process : environment;
else version (Android)
{
}
- else
+ else version (HasRoot)
{
assert(expandTilde("~root") == "/root", expandTilde("~root"));
assert(expandTilde("~root/") == "/root/", expandTilde("~root/"));
diff --git a/std/process.d b/std/process.d
index df83296..d921cdb 100644
--- a/std/process.d
+++ b/std/process.d
@@ -1171,7 +1171,7 @@ version (Posix) @system unittest
assert(exists(buildPath(directory, "bar")));
}
-@system unittest // Specifying a bad working directory.
+@system version(skipunittest) unittest // Specifying a bad working directory.
{
import std.exception : assertThrown;
TestScript prog = "/bin/echo";
diff --git a/std/socket.d b/std/socket.d
index 8a261d5..c1b87b6 100644
--- a/std/socket.d
+++ b/std/socket.d
@@ -484,7 +484,7 @@ class Protocol
// Skip this test on Android because getprotobyname/number are
// unimplemented in bionic.
version(CRuntime_Bionic) {} else
-@safe unittest
+@safe version(hasNetwork) unittest
{
softUnittest({
Protocol proto = new Protocol;
@@ -804,7 +804,7 @@ class InternetHost
}
///
-@safe unittest
+@safe version(hasNetwork) unittest
{
InternetHost ih = new InternetHost;
@@ -959,7 +959,7 @@ AddressInfo[] getAddressInfo(T...)(in char[] node, T options)
return () @trusted { return getAddressInfoImpl(node, service, &hints); }();
}
-@system unittest
+@system version(hasNetwork) unittest
{
struct Oops
{
@@ -1010,7 +1010,7 @@ private AddressInfo[] getAddressInfoImpl(in char[] node, in char[] service, addr
}
-@safe unittest
+@safe version(hasNetwork) unittest
{
softUnittest({
if (getaddrinfoPointer)
diff --git a/std/stdio.d b/std/stdio.d
index 10106a5..4b0590e 100644
--- a/std/stdio.d
+++ b/std/stdio.d
@@ -1426,8 +1426,7 @@ Removes the lock over the specified file segment.
g.unlock();
}
- version(Posix)
- @system unittest
+ @system version(skip) unittest
{
static import std.file;
auto deleteme = testFilename();
@@ -1483,7 +1482,6 @@ Removes the lock over the specified file segment.
f.unlock();
}
-
/**
Writes its arguments in text format to the file.

View File

@ -4,17 +4,17 @@ two others use networking. Not bad out of almost 700 tests!
by Pjotr Prins <pjotr.guix@thebird.nl>
--- a/std/datetime.d.orig 2016-11-24 01:13:52.584495545 +0100
+++ b/std/datetime.d 2016-11-24 01:17:09.655306728 +0100
--- a/std/datetime.d.orig 2016-11-24 01:13:52.584495545 +0100
+++ b/std/datetime.d 2016-11-24 01:17:09.655306728 +0100
@@ -28081,22 +28081,24 @@
import std.range : retro;
import std.format : format;
- name = strip(name);
-
enforce(tzDatabaseDir.exists(), new DateTimeException(format("Directory %s does not exist.", tzDatabaseDir)));
enforce(tzDatabaseDir.isDir, new DateTimeException(format("%s is not a directory.", tzDatabaseDir)));
version(Android)
{
+ name = strip(name);
@ -29,11 +29,11 @@ by Pjotr Prins <pjotr.guix@thebird.nl>
+ auto filename = "./" ~ strip(name); // make sure the prefix is not stripped
+ immutable file = buildNormalizedPath(tzDatabaseDir, filename);
+ }
- enforce(file.exists(), new DateTimeException(format("File %s does not exist.", file)));
+ enforce(file.exists(), new DateTimeException(format("File %s does not exist in %s.", file, tzDatabaseDir)));
enforce(file.isFile, new DateTimeException(format("%s is not a file.", file)));
auto tzFile = File(file);
diff --git a/std/path.d b/std/path.d
index 254d8f0..b0fc04d 100644
@ -56,13 +56,13 @@ index b85d1c9..7fbf346 100644
--- a/std/socket.d
+++ b/std/socket.d
@@ -859,6 +862,8 @@ class InternetHost
unittest
{
+ pragma(msg, "test disabled on GNU Guix");
+ /*
InternetHost ih = new InternetHost;
ih.getHostByAddr(0x7F_00_00_01);
@@ -889,6 +894,7 @@ unittest
// writefln("aliases[%d] = %s", i, s);
@ -70,5 +70,3 @@ index b85d1c9..7fbf346 100644
});
+ */
}