re PR d/90064 (InSituRegion lacks SPARC64 support)

PR d/90064
libphobos: Merge upstream phobos 428460ddd

Defines growDownwards on SPARC64, initial patch by Rainer Orth.

Backports another fix to std.process, allowing permissions tests to be
skipped when running as root.

Reviewed-on: https://github.com/dlang/phobos/pull/6962

From-SVN: r270483
This commit is contained in:
Iain Buclaw 2019-04-21 10:21:07 +00:00
parent 6d679a7d9d
commit 6397d8df30
3 changed files with 12 additions and 8 deletions

View File

@ -1,4 +1,4 @@
cf95639ffd9ed6f3b9d10d98461b2fbd31615757 428460ddd8087fa28815e613ff04facb51108a7b
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the dlang/phobos repository. merge done from the dlang/phobos repository.

View File

@ -395,6 +395,7 @@ struct InSituRegion(size_t size, size_t minAlign = platformAlignment)
else version (RISCV32) enum growDownwards = Yes.growDownwards; else version (RISCV32) enum growDownwards = Yes.growDownwards;
else version (RISCV64) enum growDownwards = Yes.growDownwards; else version (RISCV64) enum growDownwards = Yes.growDownwards;
else version (SPARC) enum growDownwards = Yes.growDownwards; else version (SPARC) enum growDownwards = Yes.growDownwards;
else version (SPARC64) enum growDownwards = Yes.growDownwards;
else version (SystemZ) enum growDownwards = Yes.growDownwards; else version (SystemZ) enum growDownwards = Yes.growDownwards;
else static assert(0, "Dunno how the stack grows on this architecture."); else static assert(0, "Dunno how the stack grows on this architecture.");

View File

@ -1188,13 +1188,16 @@ version (Posix) @system unittest
// can't run in directory if user does not have search permission on this directory // can't run in directory if user does not have search permission on this directory
version (Posix) version (Posix)
{ {
import core.sys.posix.sys.stat : S_IRUSR; if (core.sys.posix.unistd.getuid() != 0)
auto directoryNoSearch = uniqueTempPath(); {
mkdir(directoryNoSearch); import core.sys.posix.sys.stat : S_IRUSR;
scope(exit) rmdirRecurse(directoryNoSearch); auto directoryNoSearch = uniqueTempPath();
setAttributes(directoryNoSearch, S_IRUSR); mkdir(directoryNoSearch);
assertThrown!ProcessException(spawnProcess(prog.path, null, Config.none, directoryNoSearch)); scope(exit) rmdirRecurse(directoryNoSearch);
assertThrown!ProcessException(spawnProcess(prog.path, null, Config.detached, directoryNoSearch)); setAttributes(directoryNoSearch, S_IRUSR);
assertThrown!ProcessException(spawnProcess(prog.path, null, Config.none, directoryNoSearch));
assertThrown!ProcessException(spawnProcess(prog.path, null, Config.detached, directoryNoSearch));
}
} }
} }