údržba
This commit is contained in:
11
CyLukTs/lukan/node_modules/getos/tests/alpine/3.3/Dockerfile
generated
vendored
Normal file
11
CyLukTs/lukan/node_modules/getos/tests/alpine/3.3/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
FROM alpine:3.3
|
||||
|
||||
MAINTAINER David Routhieau "rootio@protonmail.com"
|
||||
|
||||
RUN apk add --update --no-cache \
|
||||
nodejs
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node", "test.js"]
|
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.3/Dockerfile
generated
vendored
Normal file
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.3/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
FROM debian:7.3
|
||||
MAINTAINER William Blankenship <william.jblankenship@gmail.com>
|
||||
|
||||
# Setup NodeSource Official PPA
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.4/Dockerfile
generated
vendored
Normal file
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.4/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
FROM debian:7.4
|
||||
MAINTAINER William Blankenship <william.jblankenship@gmail.com>
|
||||
|
||||
# Setup NodeSource Official PPA
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.5/Dockerfile
generated
vendored
Normal file
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.5/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
FROM debian:7.5
|
||||
MAINTAINER William Blankenship <william.jblankenship@gmail.com>
|
||||
|
||||
# Setup NodeSource Official PPA
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.6/Dockerfile
generated
vendored
Normal file
20
CyLukTs/lukan/node_modules/getos/tests/debian/7.6/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
||||
FROM debian:7.6
|
||||
MAINTAINER William Blankenship <william.jblankenship@gmail.com>
|
||||
|
||||
# Setup NodeSource Official PPA
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
9
CyLukTs/lukan/node_modules/getos/tests/fedora/20/Dockerfile
generated
vendored
Normal file
9
CyLukTs/lukan/node_modules/getos/tests/fedora/20/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
FROM fedora:20
|
||||
MAINTAINER William Blankenship <william.jblankenship@gmail.com>
|
||||
|
||||
RUN yum install -y nodejs npm
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
23
CyLukTs/lukan/node_modules/getos/tests/mockdata.json
generated
vendored
Normal file
23
CyLukTs/lukan/node_modules/getos/tests/mockdata.json
generated
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
[
|
||||
{ "desc": "OS X", "platform": "darwin", "expected": { "os": "darwin" } }
|
||||
, { "desc": "Windows", "platform": "win32", "expected": { "os": "win32" } }
|
||||
, { "desc": "Ubuntu 14.10", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=14.10\nDISTRIB_CODENAME=utopic\nDISTRIB_DESCRIPTION=\"Ubuntu 14.10\"\n" }, "expected": { "codename": "utopic", "dist": "Ubuntu", "os": "linux", "release": "14.10" } }
|
||||
, { "desc": "Ubuntu 14.04", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=14.04\nDISTRIB_CODENAME=trusty\nDISTRIB_DESCRIPTION=\"Ubuntu 14.04.2 LTS\"\n" }, "expected": { "codename": "trusty", "dist": "Ubuntu", "os": "linux", "release": "14.04" } }
|
||||
, { "desc": "Ubuntu 12.04", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=Ubuntu\nDISTRIB_RELEASE=12.04\nDISTRIB_CODENAME=precise\nDISTRIB_DESCRIPTION=\"Ubuntu 12.04.5 LTS\"\n" }, "expected": { "codename": "precise", "dist": "Ubuntu", "os": "linux", "release": "12.04" } }
|
||||
, { "desc": "Fedora 21", "platform": "linux", "file": { "/etc/fedora-release": "Fedora release 21 (Twenty One)\n" }, "expected": { "codename": "Twenty One", "dist": "Fedora", "os": "linux", "release": "21" } }
|
||||
, { "desc": "CentOS 5.11", "platform": "linux", "file": { "/etc/redhat-release": "CentOS release 5.11 (Final)\n" }, "expected": { "codename": "final", "dist": "CentOS", "os": "linux", "release": "5.11" } }
|
||||
, { "desc": "CentOS 6.6", "platform": "linux", "file": { "/etc/redhat-release": "CentOS release 6.6 (Final)\n" }, "expected": { "codename": "final", "dist": "CentOS", "os": "linux", "release": "6.6" } }
|
||||
, { "desc": "CentOS 7.1", "platform": "linux", "file": { "/etc/redhat-release": "CentOS Linux release 7.1.1503 (Core)\n" }, "expected": { "codename": "core", "dist": "CentOS", "os": "linux", "release": "7.1.1503" } }
|
||||
, { "desc": "RHEL 6.5", "platform": "linux", "file": { "/etc/redhat-release": "Red Hat Enterprise Linux Server release 6.5 (Santiago)\n" }, "expected": { "codename": "santiago", "dist": "Red Hat Linux", "os": "linux", "release": "6.5" } }
|
||||
, { "desc": "RHEL 6.6", "platform": "linux", "file": { "/etc/redhat-release": "Red Hat Enterprise Linux Server release 6.6 (Santiago)\n" }, "expected": { "codename": "santiago", "dist": "Red Hat Linux", "os": "linux", "release": "6.6" } }
|
||||
, { "desc": "RHEL 7.0", "platform": "linux", "file": { "/etc/redhat-release": "Red Hat Enterprise Linux Server release 7.0 (Maipo)\n" }, "expected": { "codename": "maipo", "dist": "Red Hat Linux", "os": "linux", "release": "7.0" } }
|
||||
, { "desc": "SUSE Linux", "platform": "linux", "file": { "/etc/SuSE-release": "SUSE Linux Enterprise Server 11 (x86_64)\nVERSION = 11\nPATCHLEVEL = 4\n" }, "expected": { "dist": "SUSE Linux", "os": "linux", "release": "11" } }
|
||||
, { "desc": "Alpine Linux", "platform": "linux", "file": { "/etc/alpine-release": "3.3\n", "/etc/os-release": "NAME=\"Alpine Linux\"\nID=alpine\nVERSION_ID=3.9.2\nPRETTY_NAME=\"Alpine Linux v3.9\"\nHOME_URL=\"https://alpinelinux.org/\"\nBUG_REPORT_URL=\"https://bugs.alpinelinux.org/\"\n" }, "expected": { "dist": "Alpine Linux", "os": "linux", "release": "3.3" } }
|
||||
, { "desc": "Amazon Linux", "platform": "linux", "file": { "/etc/system-release": "Amazon Linux AMI release 2016.03"}, "expected": {"dist": "Amazon Linux", "os": "linux", "release": "2016.03"}}
|
||||
, { "desc": "Arch Linux", "platform": "linux", "file": { "/etc/lsb-release": "LSB_VERSION=1.4\nDISTRIB_ID=Arch\nDISTRIB_RELEASE=rolling\nDISTRIB_DESCRIPTION=\"Arch Linux\""}, "expected": {"dist": "Arch Linux", "os": "linux", "release": "rolling"}}
|
||||
, { "desc": "Linux Mint", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=LinuxMint\nDISTRIB_RELEASE=18\nDISTRIB_CODENAME=sarah\nDISTRIB_DESCRIPTION=\"Linux Mint 18 Sarah\""}, "expected": {"dist": "Linux Mint", "os": "linux", "codename": "sarah", "release": "18"}}
|
||||
, { "desc": "Raspbian 8", "platform": "linux", "file": { "/etc/os-release": "PRETTY_NAME=\"Raspbian GNU/Linux 8 (jessie)\"\nNAME=\"Raspbian GNU/Linux\"\nVERSION_ID=\"8\"\nVERSION=\"8 (jessie)\"\nID=raspbian\nHOME_URL=\"http://www.raspbian.org/\"\nSUPPORT_URL=\"http://www.raspbian.org/RaspbianForums\"\nBUG_REPORT_URL=\"http://www.raspbian.org/RaspbianBugs\"" }, "expected": { "codename": "jessie", "dist": "Raspbian", "os": "linux", "release": "8" } }
|
||||
, { "desc": "Manjaro Linux", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=ManjaroLinux\nDISTRIB_RELEASE=17.1.10\nDISTRIB_CODENAME=Hakoila\nDISTRIB_DESCRIPTION=\"Manjaro Linux\"" }, "expected": { "codename": "hakoila", "dist": "Manjaro Linux", "os": "linux", "release": "17.1.10" } }
|
||||
, { "desc": "KDE neon", "platform": "linux", "file": { "/etc/lsb-release": "DISTRIB_ID=neon\nDISTRIB_RELEASE=18.04\nDISTRIB_CODENAME=bionic\nDISTRIB_DESCRIPTION=\"KDE neon User Edition 5.16\"" }, "expected": { "codename": "bionic", "dist": "KDE neon", "os": "linux", "release": "18.04" } }
|
||||
, { "desc": "NixOS", "platform": "linux", "file": { "/etc/NIXOS": " " }, "expected": { "dist": "NixOS", "os": "linux" } }
|
||||
]
|
40
CyLukTs/lukan/node_modules/getos/tests/mocktests.js
generated
vendored
Normal file
40
CyLukTs/lukan/node_modules/getos/tests/mocktests.js
generated
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
var test = require('tape')
|
||||
var fs = require('fs')
|
||||
var os = require('os')
|
||||
var mockdata = require('./mockdata')
|
||||
|
||||
var currentData
|
||||
|
||||
os.platform = function () {
|
||||
return currentData.platform
|
||||
}
|
||||
|
||||
fs.stat = function (file, callback) {
|
||||
process.nextTick(function () {
|
||||
if (!currentData.file[file]) { return callback(new Error()) }
|
||||
callback(null, { isFile: function () { return true } })
|
||||
})
|
||||
}
|
||||
|
||||
fs.readFile = function (file, enc, callback) {
|
||||
process.nextTick(function () {
|
||||
if (!currentData.file[file]) { return callback(new Error()) }
|
||||
callback(null, currentData.file[file])
|
||||
})
|
||||
}
|
||||
|
||||
mockdata.forEach(function (data) {
|
||||
test('test ' + data.desc, function (t) {
|
||||
// reload each time to avoid internal caching
|
||||
delete require.cache[require.resolve('../')]
|
||||
var getos = require('../')
|
||||
|
||||
currentData = data
|
||||
|
||||
getos(function (err, os) {
|
||||
t.error(err, 'no error')
|
||||
t.deepEqual(os, data.expected, 'correct os data')
|
||||
t.end()
|
||||
})
|
||||
})
|
||||
})
|
79
CyLukTs/lukan/node_modules/getos/tests/runTest.js
generated
vendored
Normal file
79
CyLukTs/lukan/node_modules/getos/tests/runTest.js
generated
vendored
Normal file
@ -0,0 +1,79 @@
|
||||
var color = require('cli-color')
|
||||
var execSync = require('child_process').execSync || require('execSync').exec
|
||||
var fs = require('fs')
|
||||
var path = require('path')
|
||||
|
||||
/**
|
||||
* So most of this stuff will be sync, because we are moving
|
||||
* files around building docker images, etc. These all have
|
||||
* to be done in a specific order or chaos ensues
|
||||
*/
|
||||
var cwd = path.join(process.cwd(), 'tests')
|
||||
process.stdout.write('Fetching Distributions... ')
|
||||
var distros = fs.readdirSync(cwd)
|
||||
var failed = []
|
||||
process.stdout.write('[' + color.green('OK!') + ']\n')
|
||||
distros.forEach(function (v1) {
|
||||
if (!fs.statSync(path.join(cwd, v1)).isDirectory()) return
|
||||
process.stdout.write('Fetching versions of ' + capitalize(v1) + '... ')
|
||||
var versions = fs.readdirSync(path.join(cwd, v1))
|
||||
process.stdout.write('[' + color.green('OK!') + ']\n')
|
||||
versions.forEach(function (v2) {
|
||||
if (!fs.statSync(path.join(cwd, v1, v2)).isDirectory()) return
|
||||
// If Dockerfile already exists, delete it.
|
||||
if (fs.existsSync(path.join(process.cwd(), 'Dockerfile'))) { fs.unlinkSync(path.join(process.cwd(), 'Dockerfile')) }
|
||||
// Move the dockerfile to the base of our repo
|
||||
fs.linkSync(path.join(cwd, v1, v2, 'Dockerfile'), path.join(process.cwd(), 'Dockerfile'))
|
||||
// Build the docker image using the dockerfile
|
||||
process.stdout.write('Building version ' + v2 + ' of ' + capitalize(v1) + '... ')
|
||||
try {
|
||||
var dockerResult = execSync('docker build -t "getos:' + v1 + v2 + '" .', { stdio: [] })
|
||||
} catch (e) {
|
||||
dockerResult = dockerResult || {}
|
||||
dockerResult.code = e
|
||||
}
|
||||
if (dockerResult.code && dockerResult.code !== 0) {
|
||||
failed.push(dockerResult)
|
||||
process.stdout.write('[' + color.red('FAILED!') + ']\n')
|
||||
} else {
|
||||
process.stdout.write('[' + color.green('OK!') + ']\n')
|
||||
process.stdout.write('Running container... ')
|
||||
// Show output from distribution
|
||||
try {
|
||||
var nodeResult = execSync('docker run -d getos:' + v1 + v2, { stdio: [] })
|
||||
} catch (e) {
|
||||
nodeResult = nodeResult || {}
|
||||
nodeResult.code = e
|
||||
}
|
||||
if (nodeResult.code && nodeResult.code !== 0) {
|
||||
failed.push(nodeResult)
|
||||
process.stdout.write('[' + color.red('FAILED!') + ']\n')
|
||||
} else {
|
||||
try {
|
||||
var dockerLog = execSync('sleep 2s && docker logs ' + (nodeResult.stdout || nodeResult.toString()), { stdio: [] })
|
||||
} catch (e) {
|
||||
dockerLog = dockerLog || {}
|
||||
dockerLog.code = e
|
||||
}
|
||||
if (dockerLog.code && dockerLog.code !== 0) {
|
||||
failed.push(dockerLog)
|
||||
process.stdout.write('[' + color.red('FAILED!') + ']\n')
|
||||
} else {
|
||||
process.stdout.write('[' + color.green('OK!') + ']\n')
|
||||
process.stdout.write('Output from version ' + v2 + ' of ' + capitalize(v1) + ': \n')
|
||||
process.stdout.write(dockerLog.stdout || dockerLog.toString())
|
||||
}
|
||||
}
|
||||
}
|
||||
// Delete the dockerfile
|
||||
fs.unlinkSync(path.join(process.cwd(), 'Dockerfile'))
|
||||
})
|
||||
})
|
||||
|
||||
if (failed.length > 0) {
|
||||
fs.writeFileSync('tests.log', JSON.stringify(failed, null, ' '))
|
||||
}
|
||||
|
||||
function capitalize (str) {
|
||||
return str.charAt(0).toUpperCase() + str.slice(1)
|
||||
}
|
18
CyLukTs/lukan/node_modules/getos/tests/ubuntu/13.10/Dockerfile
generated
vendored
Normal file
18
CyLukTs/lukan/node_modules/getos/tests/ubuntu/13.10/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
FROM ubuntu:13.10
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
18
CyLukTs/lukan/node_modules/getos/tests/ubuntu/14.04/Dockerfile
generated
vendored
Normal file
18
CyLukTs/lukan/node_modules/getos/tests/ubuntu/14.04/Dockerfile
generated
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
FROM ubuntu:14.04
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --force-yes \
|
||||
curl \
|
||||
apt-transport-https \
|
||||
lsb-release \
|
||||
build-essential \
|
||||
python-all
|
||||
|
||||
RUN curl -sL https://deb.nodesource.com/setup | bash -
|
||||
RUN apt-get update
|
||||
RUN apt-get install nodejs -y --force-yes
|
||||
|
||||
ADD . /usr/src/
|
||||
WORKDIR /usr/src/
|
||||
|
||||
CMD ["node","test.js"]
|
Reference in New Issue
Block a user