mirror of https://github.com/vitalif/phantomjs
Provide OS kernel version in system.os.
This is available via the new property called `release`. A very simple example to demonstrate it: var system = require('system'); console.log('Kernel release', system.os.release); which will print (on OS X 10.7.5 Lion): Kernel release 11.4.2 https://github.com/ariya/phantomjs/issues/125872.0
parent
7c61f8857d
commit
639e09bd3a
|
@ -38,6 +38,20 @@
|
|||
#include "../env.h"
|
||||
#include "terminal.h"
|
||||
|
||||
#if defined(Q_OS_LINUX) || defined(Q_OS_MAC)
|
||||
#include <sys/utsname.h>
|
||||
QString getOSRelease()
|
||||
{
|
||||
QString release;
|
||||
struct utsname un;
|
||||
if (uname(&un) != -1) {
|
||||
release = QString::fromLatin1(un.release);
|
||||
}
|
||||
|
||||
return release;
|
||||
}
|
||||
#endif
|
||||
|
||||
System::System(QObject *parent) :
|
||||
QObject(parent)
|
||||
, m_stdout((File *)NULL)
|
||||
|
@ -94,6 +108,7 @@ System::System(QObject *parent) :
|
|||
}
|
||||
#elif defined(Q_OS_MAC)
|
||||
m_os.insert("name", "mac");
|
||||
m_os.insert("release", getOSRelease());
|
||||
switch (QSysInfo::MacintoshVersion) {
|
||||
case QSysInfo::MV_10_3:
|
||||
m_os.insert("version", "10.3 (Panther)");
|
||||
|
@ -120,6 +135,7 @@ System::System(QObject *parent) :
|
|||
#elif defined(Q_OS_LINUX)
|
||||
m_os.insert("name", "linux");
|
||||
m_os.insert("version", "unknown");
|
||||
m_os.insert("release", getOSRelease());
|
||||
#else
|
||||
m_os.insert("name", "unknown");
|
||||
m_os.insert("version", "unknown");
|
||||
|
|
|
@ -7,3 +7,9 @@ assert.typeOf(system.os, 'object');
|
|||
assert.typeOf(system.os.architecture, 'string');
|
||||
assert.typeOf(system.os.name, 'string');
|
||||
assert.typeOf(system.os.version, 'string');
|
||||
|
||||
if (system.os.name === 'mac') {
|
||||
// release is x.y.z with x = 10 for Snow Leopard and 14 for Yosemite
|
||||
assert.typeOf(system.os.release, 'string');
|
||||
assert.isTrue(parseInt(system.os.release, 10) >= 10);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue