This commit is contained in:
Alejandro Murillo 2016-09-30 02:52:36 -07:00
commit 48432daecc
3 changed files with 44 additions and 3 deletions

View File

@ -1586,12 +1586,13 @@ class ThreadLocal {
GTEST_API_ size_t GetThreadCount();
// Passing non-POD classes through ellipsis (...) crashes the ARM
// compiler and generates a warning in Sun Studio. The Nokia Symbian
// compiler and generates a warning in Sun Studio before 12u4. The Nokia Symbian
// and the IBM XL C/C++ compiler try to instantiate a copy constructor
// for objects passed through ellipsis (...), failing for uncopyable
// objects. We define this to ensure that only POD is passed through
// ellipsis on these systems.
#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || defined(__SUNPRO_CC)
#if defined(__SYMBIAN32__) || defined(__IBMCPP__) || \
(defined(__SUNPRO_CC) && __SUNPRO_CC < 0x5130)
// We lose support for NULL detection where the compiler doesn't like
// passing non-POD classes through ellipsis (...).
# define GTEST_ELLIPSIS_NEEDS_POD_ 1

View File

@ -28,6 +28,9 @@ import java.util.regex.Pattern;
public class Platform {
public static final String vmName = System.getProperty("java.vm.name");
public static final String vmInfo = System.getProperty("java.vm.info");
private static final String osVersion = System.getProperty("os.version");
private static int osVersionMajor = -1;
private static int osVersionMinor = -1;
private static final String osName = System.getProperty("os.name");
private static final String dataModel = System.getProperty("sun.arch.data.model");
private static final String vmVersion = System.getProperty("java.vm.version");
@ -112,6 +115,35 @@ public class Platform {
return osName;
}
// Os version support.
private static void init_version() {
try {
final String[] tokens = osVersion.split("\\.");
if (tokens.length > 0) {
osVersionMajor = Integer.parseInt(tokens[0]);
if (tokens.length > 1) {
osVersionMinor = Integer.parseInt(tokens[1]);
}
}
} catch (NumberFormatException e) {
osVersionMajor = osVersionMinor = 0;
}
}
// Returns major version number from os.version system property.
// E.g. 5 on Solaris 10 and 3 on SLES 11.3 (for the linux kernel version).
public static int getOsVersionMajor() {
if (osVersionMajor == -1) init_version();
return osVersionMajor;
}
// Returns minor version number from os.version system property.
// E.g. 10 on Solaris 10 and 0 on SLES 11.3 (for the linux kernel version).
public static int getOsVersionMinor() {
if (osVersionMinor == -1) init_version();
return osVersionMinor;
}
public static boolean isDebugBuild() {
return (jdkDebug.toLowerCase().contains("debug"));
}

View File

@ -28,14 +28,22 @@ import java.util.function.BooleanSupplier;
public class AndPredicate implements BooleanSupplier {
private final BooleanSupplier a;
private final BooleanSupplier b;
private final BooleanSupplier c;
public AndPredicate(BooleanSupplier a, BooleanSupplier b) {
this.a = a;
this.b = b;
this.c = () -> true; // Boolean.TRUE::booleanValue
}
public AndPredicate(BooleanSupplier a, BooleanSupplier b, BooleanSupplier c) {
this.a = a;
this.b = b;
this.c = c;
}
@Override
public boolean getAsBoolean() {
return a.getAsBoolean() && b.getAsBoolean();
return a.getAsBoolean() && b.getAsBoolean() && c.getAsBoolean();
}
}