1
0
Fork 0

Feature/remove manual zippery (#3036)

This commit is contained in:
m0ppers 2017-08-17 23:30:27 +02:00 committed by Frank Celler
parent 2294fbc290
commit 0dfea58d54
21 changed files with 200 additions and 298 deletions

View File

@ -287,7 +287,7 @@ elseif (${CMAKE_GENERATOR} MATCHES "Ninja")
################################################################################
elseif (WIN32)
MESSAGE("Building V8 for Windows with MSBUILD")
MESSAGE(STATUS "Building V8 for Windows with MSBUILD")
set(GYP_MAIN gypfiles/gyp_v8)
# try to find 2013 in 'Visual Studio 12 2013 Win64'

View File

@ -17,7 +17,6 @@ def defaultEnterprise = true
def defaultJslint = true
def defaultRunResilience = false
def defaultRunTests = false
def defaultSkipTestsOnError = true
def defaultFullParallel = false
properties([
@ -47,11 +46,6 @@ properties([
description: 'clean build directories',
name: 'cleanBuild'
),
booleanParam(
defaultValue: defaultSkipTestsOnError,
description: 'skip Mac & Windows tests if Linux tests fails',
name: 'skipTestsOnError'
),
booleanParam(
defaultValue: defaultCommunity,
description: 'build and run tests for community',
@ -83,9 +77,6 @@ properties([
// start with empty build directory
cleanBuild = params.cleanBuild
// skip tests on previous error
skipTestsOnError = params.skipTestsOnError
// do everything in parallel
fullParallel = params.fullParallel
@ -120,25 +111,19 @@ restrictions = [:]
// --SECTION-- CONSTANTS AND HELPERS
// -----------------------------------------------------------------------------
// users
jenkinsMaster = 'jenkins-master@c1'
jenkinsSlave = 'jenkins'
// github proxy repositiory
proxyRepo = 'http://c1:8088/github.com/arangodb/arangodb'
// github repositiory for resilience tests
resilienceRepo = 'https://github.com/arangodb/resilience-tests'
resilienceRepo = 'http://c1:8088/github.com/arangodb/resilience-tests'
// github repositiory for enterprise version
enterpriseRepo = 'https://github.com/arangodb/enterprise'
enterpriseRepo = 'http://c1:8088/github.com/arangodb/enterprise'
// Jenkins credentials for enterprise repositiory
credentials = '8d893d23-6714-4f35-a239-c847c798e080'
// jenkins cache
cacheDir = '/vol/cache/' + env.JOB_NAME.replaceAll('%', '_')
// source branch for pull requests
sourceBranchLabel = env.BRANCH_NAME
@ -150,25 +135,6 @@ if (env.BRANCH_NAME =~ /^PR-/) {
sourceBranchLabel = sourceBranchLabel - reg
}
// copy data to master cache
def scpToMaster(os, from, to) {
if (os == 'linux' || os == 'mac') {
sh "scp '${from}' '${jenkinsMaster}:${cacheDir}/${to}'"
}
else if (os == 'windows') {
bat "scp -F c:/Users/jenkins/ssh_config \"${from}\" \"${jenkinsMaster}:${cacheDir}/${to}\""
}
}
// copy data from master cache
def scpFromMaster(os, from, to) {
if (os == 'linux' || os == 'mac') {
sh "scp '${jenkinsMaster}:${cacheDir}/${from}' '${to}'"
}
else if (os == 'windows') {
bat "scp -F c:/Users/jenkins/ssh_config \"${jenkinsMaster}:${cacheDir}/${from}\" \"${to}\""
}
}
// -----------------------------------------------------------------------------
// --SECTION-- SCRIPTS SCM
@ -191,7 +157,6 @@ def checkoutCommunity() {
extensions: [],
submoduleCfg: [],
userRemoteConfigs: [[url: proxyRepo]]])
sh 'git clean -f -d -x'
}
catch (exc) {
echo "GITHUB checkout failed, retrying in 1min"
@ -231,7 +196,6 @@ def checkoutEnterprise() {
userRemoteConfigs: [[credentialsId: credentials, url: enterpriseRepo]]])
}
sh 'cd enterprise && git clean -f -d -x'
}
def checkoutResilience() {
@ -246,7 +210,6 @@ def checkoutResilience() {
submoduleCfg: [],
userRemoteConfigs: [[credentialsId: credentials, url: resilienceRepo]]])
sh 'cd resilience && git clean -f -d -x'
}
def checkCommitMessages() {
@ -392,103 +355,12 @@ Restrictions: ${restrictions.keySet().join(", ")}
// --SECTION-- SCRIPTS STASH
// -----------------------------------------------------------------------------
def stashSourceCode() {
sh 'rm -f source.*'
sh 'find -L . -type l -delete'
sh 'zip -r -1 -x "*tmp" -x ".git" -y -q source.zip *'
lock("${env.BRANCH_NAME}-cache") {
sh 'mkdir -p ' + cacheDir
sh "mv -f source.zip ${cacheDir}/source.zip"
}
}
def unstashSourceCode(os) {
deleteDir()
lock("${env.BRANCH_NAME}-cache") {
scpFromMaster(os, 'source.zip', 'source.zip')
}
if (os == 'linux' || os == 'mac') {
sh 'unzip -o -q source.zip'
}
else if (os == 'windows') {
bat 'c:\\cmake\\bin\\cmake -E tar xf source.zip'
}
}
def stashBuild(edition, os) {
def name = "build-${edition}-${os}.zip"
if (os == 'linux' || os == 'mac') {
sh "rm -f ${name}"
sh "zip -r -1 -y -q ${name} build-${edition}"
}
else if (os == 'windows') {
bat "del /F /Q ${name}"
bat "c:\\cmake\\bin\\cmake -E tar cf ${name} build"
}
lock("${env.BRANCH_NAME}-cache") {
scpToMaster(os, name, name)
}
}
def unstashBuild(edition, os) {
def name = "build-${edition}-${os}.zip"
lock("${env.BRANCH_NAME}-cache") {
scpFromMaster(os, name, name)
}
if (os == 'linux' || os == 'mac') {
sh "unzip -o -q ${name}"
sh "rm -f ${name}"
}
else if (os == 'windows') {
bat "c:\\cmake\\bin\\cmake -E tar xf ${name}"
bat "del /F /Q ${name}"
}
}
def stashBinaries(edition, os) {
def name = "binaries-${edition}-${os}.zip"
def dirs = 'build etc Installation/Pipeline js scripts UnitTests utils resilience source.zip'
if (edition == 'enterprise') {
dirs = "${dirs} enterprise/js"
}
if (os == 'linux' || os == 'mac') {
sh "zip -r -1 -y -q ${name} ${dirs}"
}
else if (os == 'windows') {
bat "c:\\cmake\\bin\\cmake -E tar cf ${name} ${dirs}"
}
lock("${env.BRANCH_NAME}-cache") {
scpToMaster(os, name, name)
}
stash name: "binaries-${edition}-${os}", includes: "build/bin/**, build/tests/**, build/etc/**, etc/**, Installation/Pipeline/**, js/**, scripts/**, UnitTests/**, utils/**, resilience/**"
}
def unstashBinaries(edition, os) {
def name = "binaries-${edition}-${os}.zip"
deleteDir()
lock("${env.BRANCH_NAME}-cache") {
scpFromMaster(os, name, name)
}
if (os == 'linux' || os == 'mac') {
sh "unzip -o -q ${name}"
sh "rm -f ${name}"
}
else if (os == 'windows') {
bat "c:\\cmake\\bin\\cmake -E tar xf ${name}"
bat "del /F /Q ${name}"
}
unstash name: "binaries-${edition}-${os}"
}
// -----------------------------------------------------------------------------
@ -572,29 +444,29 @@ def testEdition(edition, os, mode, engine) {
powershell ". .\\Installation\\Pipeline\\windows\\test_${mode}_${edition}_${engine}_${os}.ps1"
}
if (findFiles(glob: 'core*').length > 0) {
error("found core file")
if (os == 'windows') {
if (findFiles(glob: '*.dmp').length > 0) {
error("found dmp file")
}
} else {
if (findFiles(glob: 'core*').length > 0) {
error("found core file")
}
}
}
catch (exc) {
if (os == 'linux' || os == 'mac') {
sh "for i in build core* tmp; do test -e \"\$i\" && mv \"\$i\" ${arch} || true; done"
}
archiveArtifacts allowEmptyArchive: true,
artifacts: "source.zip",
defaultExcludes: false
throw exc
}
finally {
if (os == 'linux' || os == 'mac') {
sh "find log-output -name 'FAILED_*' -exec cp '{}' . ';'"
sh "for i in logs log-output; do test -e \"\$i\" && mv \"\$i\" ${arch} || true; done"
sh "for i in core* tmp; do test -e \"\$i\" && mv \"\$i\" ${arch} || true; done"
sh "cp -a build/bin/* ${arch}"
}
else if (os == 'windows') {
bat "move logs ${arch}"
bat "move log-output ${arch}"
powershell "move-item -Force -ErrorAction Ignore logs ${arch}"
powershell "move-item -Force -ErrorAction Ignore log-output ${arch}"
powershell "move-item -Force -ErrorAction Ignore .\\build\\bin\\*.dmp ${arch}"
powershell "move-item -Force -ErrorAction Ignore .\\build\\tests\\*.dmp ${arch}"
powershell "Copy-Item .\\build\\bin\\* -Include *.exe,*.pdb,*.ilk ${arch}"
}
}
}
@ -656,6 +528,7 @@ def testStep(edition, os, mode, engine) {
testsSuccess[name] = true
}
catch (exc) {
echo "Exception while testing!"
echo exc.toString()
testsSuccess[name] = false
allTestsSuccessful = false
@ -794,7 +667,6 @@ def testResilienceStep(os, engine, foxx) {
else if (os == 'windows') {
bat "move log-output ${arch}"
}
}
}
catch (exc) {
@ -842,15 +714,6 @@ def testResilienceParallel(osList) {
// -----------------------------------------------------------------------------
def buildEdition(edition, os) {
if (! cleanBuild) {
try {
unstashBuild(edition, os)
}
catch (exc) {
echo "no stashed build environment, starting clean build"
}
}
def arch = "LOG_build_${edition}_${os}"
if (os == 'linux' || os == 'mac') {
@ -879,13 +742,11 @@ def buildEdition(edition, os) {
sh "for i in log-output; do test -e \"\$i\" && mv \"\$i\" ${arch} || true; done"
}
else if (os == 'windows') {
bat "move log-output ${arch}"
powershell "Move-Item -ErrorAction Ignore -Path log-output/* -Destination ${arch}"
}
}
}
finally {
stashBuild(edition, os)
archiveArtifacts allowEmptyArchive: true,
artifacts: "${arch}/**",
defaultExcludes: false
@ -922,24 +783,30 @@ def buildStepCheck(edition, os, full) {
def buildStep(edition, os) {
return {
lock("${env.BRANCH_NAME}-build-${edition}-${os}") {
node(buildJenkins[os]) {
def name = "${edition}-${os}"
node(buildJenkins[os]) {
def name = "${edition}-${os}"
try {
stage("build-${name}") {
try {
unstashSourceCode(os)
buildEdition(edition, os)
stashBinaries(edition, os)
buildsSuccess[name] = true
}
catch (exc) {
buildsSuccess[name] = false
allBuildsSuccessful = false
throw exc
timeout(30) {
checkoutCommunity()
checkCommitMessages()
if (useEnterprise) {
checkoutEnterprise()
}
checkoutResilience()
}
buildEdition(edition, os)
stashBinaries(edition, os)
buildsSuccess[name] = true
}
}
catch (exc) {
buildsSuccess[name] = false
allBuildsSuccessful = false
throw exc
}
}
if (fullParallel) {
@ -981,22 +848,6 @@ def runStage(stage) {
}
}
stage('checkout') {
node('master') {
timeout(30) {
checkoutCommunity()
checkCommitMessages()
if (useEnterprise) {
checkoutEnterprise()
}
checkoutResilience()
stashSourceCode()
}
}
}
if (fullParallel) {
runStage { buildStepParallel(['linux', 'mac', 'windows']) }
}
@ -1004,25 +855,13 @@ else {
runStage { buildStepParallel(['linux']) }
runStage { testStepParallel(['community', 'enterprise'], ['linux'], ['cluster', 'singleserver']) }
if (allBuildsSuccessful) {
runStage { buildStepParallel(['mac']) }
}
runStage { buildStepParallel(['mac']) }
runStage { testStepParallel(['community', 'enterprise'], ['mac'], ['cluster', 'singleserver']) }
if (allTestsSuccessful || ! skipTestsOnError) {
runStage { testStepParallel(['community', 'enterprise'], ['mac'], ['cluster', 'singleserver']) }
}
runStage { buildStepParallel(['windows']) }
runStage { testStepParallel(['community', 'enterprise'], ['windows'], ['cluster', 'singleserver']) }
if (allBuildsSuccessful) {
runStage { buildStepParallel(['windows']) }
}
if (allTestsSuccessful || ! skipTestsOnError) {
runStage { testStepParallel(['community', 'enterprise'], ['windows'], ['cluster', 'singleserver']) }
}
if (allTestsSuccessful) {
runStage { testResilienceParallel(['linux', 'mac', 'windows']) }
}
runStage { testResilienceParallel(['linux', 'mac', 'windows']) }
}
stage('result') {

View File

@ -1,8 +1,48 @@
WorkFlow RunTests {
Param ([int]$port, [string]$engine, [string]$edition, [string]$mode)
function executeParallel {
Param(
[System.Object[]]
$jobs,
[int]$parallelity
)
Get-Job | Remove-Job -Force | Out-Null
$doneJobs = [System.Collections.ArrayList]$ArrayList = @()
$numJobs = $jobs.Count
$activeJobs = [System.Collections.ArrayList]$ArrayList = $()
$index = 0
$failed=$false
while ($doneJobs.Count -lt $numJobs) {
$activeJobs = Get-Job
while ($index -lt $numJobs -and $activeJobs.Length -lt $parallelity) {
$job = $jobs[$index++]
Write-Host "Starting $($job.name)"
$j = Start-Job -Init ([ScriptBlock]::Create("Set-Location '$pwd'")) -Name $job.name -ScriptBlock $job.script -ArgumentList $job.args
$activeJobs = Get-Job
}
$finishedJobs = $activeJobs | Wait-Job -Any
ForEach ($finishedJob in $finishedJobs) {
Write-Host "Job $($finishedJob.Name) $($finishedJob.State)"
Write-Host "========================"
$finishedJob.childJobs[0].Output | Out-String
if ($finishedJob.ChildJobs[0].State -eq 'Failed') {
$failed=$true
Write-Host $finishedJob.childJobs[0].JobStateInfo.Reason.Message -ForegroundColor Red
}
}
$doneJobs += $finishedJobs
$finishedJobs | Remove-Job
}
if ($failed -eq $true) {
throw "Some jobs failed!"
}
}
function createTests {
Param ([int]$port, [string]$engine, [string]$edition, [string]$mode)
$minPort = $port
$workspace = Get-Location
if ($mode -eq "singleserver") {
$portInterval = 10
@ -18,8 +58,8 @@ WorkFlow RunTests {
"cluster_sync",
"config",
"dfdb",
"dump",
"dump_authentication",
#"dump",
#"dump_authentication",
"endpoints",
@("http_replication","http_replication", "--rspec C:\tools\ruby23\bin\rspec.bat"),
@("http_server","http_server", "--rspec C:\tools\ruby23\bin\rspec.bat"),
@ -64,41 +104,51 @@ WorkFlow RunTests {
)
}
$total = 0
foreach -parallel -throttlelimit 5 ($testdef in $tests) {
New-Item -Force log-output -type Directory | Out-Null
$createTestScript = {
$testargs = ""
if ($testdef -isnot [system.array]) {
$name = $testdef
$test = $testdef
if ($_ -isnot [system.array]) {
$name = $_
$test = $_
} else {
$name = $testdef[0]
$test = $testdef[1]
$testargs = $testdef[2].Split(" ")
$name = $_[0]
$test = $_[1]
$testargs = $_[2].Split(" ")
}
$log = "log-output\" + $name + ".log"
$myport = $WORKFLOW:minPort
$WORKFLOW:minPort += $portInterval
$myport = $minPort
$minPort += $portInterval
$maxPort = $minPort - 1 # minport was already increased
InlineScript {
$testscript = {
$maxPort = $USING:myport + $USING:portInterval - 1
Set-Location $USING:workspace
.\build\bin\arangosh.exe --log.level warning --javascript.execute UnitTests\unittest.js $USING:test -- --cluster $USING:cluster --storageEngine $USING:engine --minPort $USING:myport --maxPort $USING:maxPort --skipNondeterministic true --skipTimeCritical true --configDir etc/jenkins --skipLogAnalysis true $USING:testargs *> $USING:log
$?
return @{
name=$name
script={
param($name, $myport, $maxPort, $test, $cluster, $engine, $testArgs, $log)
# ridiculous...first allow it to continue because as soon as something will write to stderr it will fail
# however some of these tests trigger these and actually some errors are to be expected.
$ErrorActionPreference="SilentlyContinue"
.\build\bin\arangosh.exe --log.level warning --javascript.execute UnitTests\unittest.js $test -- --cluster $cluster --storageEngine $engine --minPort $myport --maxPort $maxPort --skipNondeterministic true --skipTimeCritical true --configDir etc/jenkins --skipLogAnalysis true $testargs *>&1 | Tee-Object -FilePath $log
# $? will actually be false on those bogus "errors". however $LASTEXITCODE seems to always contain the real result we are interested in
$result=$LASTEXITCODE
# the only one who really knows if it broke or not is arangosh itself. so catch the error code
# THEN REENABLE THE FCKING ERROR HANDLING
$ErrorActionPreference="Stop"
# and finally throw an error only if there really was an error
if ($result -ne 0) {
throw "arangosh returned a non zero exit code: $result!"
}
}
Invoke-Command -ScriptBlock $testscript
}
if (!$res) {
$WORKFLOW:total++
args=@($name, $myport, $maxPort, $test, $cluster, $engine, $testArgs, $log)
}
}
$total
$tests | % $createTestScript
}
function RunTests {
Param ([int]$port, [string]$engine, [string]$edition, [string]$mode)
$jobs = createTests -port $port -engine mmfiles -edition community -mode singleserver
executeParallel -jobs $jobs -parallelity 4
}

View File

@ -1,4 +1,7 @@
$ErrorActionPreference="Stop"
$buildOptions = "-DUSE_MAINTAINER_MODE=On -DUSE_CATCH_TESTS=On -DUSE_FAILURE_TESTS=On -DDEBUG_SYNC_REPLICATION=On -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSKIP_PACKAGING=On"
Remove-Item -Force -Recurse log-output -ErrorAction SilentlyContinue
New-Item -Force -ItemType Directory log-output -ErrorAction SilentlyContinue
if (Get-Command docker -errorAction SilentlyContinue) {
$buildOptions += " -DOPENSSL_INCLUDE_DIR=`"`$env:OPENSSL_INCLUDE_DIR`" -DLIB_EAY_RELEASE=`"`$env:LIB_EAY_RELEASE`" -DSSL_EAY_RELEASE=`"`$env:SSL_EAY_RELEASE`" -DLIB_EAY_RELEASE_DLL=`"`$env:LIB_EAY_RELEASE_DLL`" -DSSL_EAY_RELEASE_DLL=`"`$env:SSL_EAY_RELEASE_DLL"
$volume = "$env:WORKSPACE"
@ -13,15 +16,12 @@ exit $LastExitCode
'@
$build > buildscript.ps1
docker run --rm -v $volume m0ppers/build-container powershell C:\arangodb\buildscript.ps1
docker run --rm -v $volume m0ppers/build-container powershell C:\arangodb\buildscript.ps1 | Set-Content -PassThru log-output\build.log
} else {
$ErrorActionPreference="Stop"
$env:GYP_MSVS_OVERRIDE_PATH='C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin'
New-Item -ItemType Directory -Force -Path build
cd build
Invoke-Expression "cmake .. -G `"Visual Studio 15 2017 Win64`" ${buildOptions}"
cmake --build . --config RelWithDebInfo
Invoke-Expression "cmake .. -G `"Visual Studio 15 2017 Win64`" ${buildOptions} | Set-Content -PassThru ..\log-output\build.log"
cmake --build . --config RelWithDebInfo | Add-Content -PassThru ..\log-output\build.log
cd ..
}
exit $LastExitCode
}

View File

@ -1,12 +1,27 @@
$volume = "$env:WORKSPACE"
$volume += ":C:\arangodb"
$build = @'
$ErrorActionPreference="Stop"
$buildOptions = "-DUSE_MAINTAINER_MODE=On -DUSE_ENTERPRISE=On -DUSE_CATCH_TESTS=On -DUSE_FAILURE_TESTS=On -DDEBUG_SYNC_REPLICATION=On -DCMAKE_BUILD_TYPE=RelWithDebInfo -DSKIP_PACKAGING=On"
Remove-Item -Force -Recurse log-output -ErrorAction SilentlyContinue
New-Item -Force -ItemType Directory log-output -ErrorAction SilentlyContinue
if (Get-Command docker -errorAction SilentlyContinue) {
$buildOptions += " -DOPENSSL_INCLUDE_DIR=`"`$env:OPENSSL_INCLUDE_DIR`" -DLIB_EAY_RELEASE=`"`$env:LIB_EAY_RELEASE`" -DSSL_EAY_RELEASE=`"`$env:SSL_EAY_RELEASE`" -DLIB_EAY_RELEASE_DLL=`"`$env:LIB_EAY_RELEASE_DLL`" -DSSL_EAY_RELEASE_DLL=`"`$env:SSL_EAY_RELEASE_DLL"
$volume = "$env:WORKSPACE"
$volume += ":C:\arangodb"
$build = @'
$ErrorActionPreference="Stop"
New-Item -ItemType Directory -Force -Path c:\arangodb\build
cd c:\arangodb\build
cmake .. -G "Visual Studio 14 2015 Win64" -DCMAKE_BUILD_TYPE=RelWithDebInfo -DOPENSSL_INCLUDE_DIR="$env:OPENSSL_INCLUDE_DIR" -DLIB_EAY_RELEASE="$env:LIB_EAY_RELEASE" -DSSL_EAY_RELEASE="$env:SSL_EAY_RELEASE" -DLIB_EAY_RELEASE_DLL="$env:LIB_EAY_RELEASE_DLL" -DSSL_EAY_RELEASE_DLL="$env:SSL_EAY_RELEASE_DLL" -DUSE_ENTERPRISE=On -DUSE_MAINTAINER_MODE=On -DCATCH_TESTS=On -DUSE_FAILURE_TESTS=On -DDEBUG_SYNC_REPLICATION=On
cmake .. -G "Visual Studio 14 2015 Win64" ${buildOptions}
cmake --build . --config RelWithDebInfo
exit $LastExitCode
'@
$build > buildscript.ps1
docker run --rm -v $volume m0ppers/build-container powershell C:\arangodb\buildscript.ps1
exit $LastExitCode
$build > buildscript.ps1
docker run --rm -v $volume m0ppers/build-container powershell C:\arangodb\buildscript.ps1 | Set-Content -PassThru log-output\build.log
} else {
$env:GYP_MSVS_OVERRIDE_PATH='C:\Program Files (x86)\Microsoft Visual Studio\Shared\14.0\VC\bin'
New-Item -ItemType Directory -Force -Path build
cd build
Invoke-Expression "cmake .. -G `"Visual Studio 15 2017 Win64`" ${buildOptions} | Set-Content -PassThru ..\log-output\build.log"
cmake --build . --config RelWithDebInfo | Add-Content -PassThru ..\log-output\build.log
cd ..
}

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine mmfiles -edition community -mode cluster

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine rocksdb -edition community -mode cluster

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine mmfiles -edition enterprise -mode cluster

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine rocksdb -edition enterprise -mode cluster

View File

@ -1,3 +1,5 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1

View File

@ -1,3 +1,5 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1

View File

@ -1,3 +1,5 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1

View File

@ -1,3 +1,5 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine mmfiles -edition community -mode singleserver

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine rocksdb -edition community -mode singleserver

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine mmfiles -edition enterprise -mode singleserver

View File

@ -1,8 +1,11 @@
$ErrorActionPreference="Stop"
. Installation\Pipeline\include\test_setup_tmp.ps1
. Installation\Pipeline\port.ps1
. Installation\Pipeline\include\test_MODE_EDITION_ENGINE_windows.ps1
Move-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\bin\RelWithDebInfo\* .\build\bin\
Copy-Item -force .\build\tests\RelWithDebInfo\* .\build\tests\
$result = RunTests -port $port -engine rocksdb -edition enterprise -mode singleserver

View File

@ -116,7 +116,7 @@ void ConsoleFeature::collectOptions(std::shared_ptr<ProgramOptions> options) {
#if _WIN32
options->addHiddenOption("--console.code-page", "Windows code page to use",
new Int16Parameter(&_codePage));
new UInt16Parameter(&_codePage));
#endif
}
@ -275,26 +275,6 @@ void ConsoleFeature::printContinuous(std::string const& s) {
return;
}
#ifdef _WIN32
// no, we cannot use std::cout as this doesn't support UTF-8 on Windows
if (!_cygwinShell) {
// no, we cannot use std::cout as this doesn't support UTF-8 on Windows
// fprintf(stdout, "%s\r\n", s.c_str());
std::vector<std::string> lines = StringUtils::split(s, '\n', '\0');
auto last = lines.back();
lines.pop_back();
for (auto& line : lines) {
_print(line);
_newLine();
}
_print(last);
} else
#endif
{
fprintf(stdout, "%s", s.c_str());
fflush(stdout);
@ -302,23 +282,6 @@ void ConsoleFeature::printContinuous(std::string const& s) {
}
void ConsoleFeature::printLine(std::string const& s) {
#ifdef _WIN32
// no, we cannot use std::cout as this doesn't support UTF-8 on Windows
if (s.empty()) {
_newLine();
return;
}
if (!_cygwinShell) {
std::vector<std::string> lines = StringUtils::split(s, '\n', '\0');
for (auto& line : lines) {
_print(line);
_newLine();
}
} else
#endif
{
fprintf(stdout, "%s\n", s.c_str());
fflush(stdout);

View File

@ -51,7 +51,7 @@ class ConsoleFeature final : public application_features::ApplicationFeature {
private:
#ifdef _WIN32
int16_t _codePage;
uint16_t _codePage;
bool _cygwinShell;
#endif
bool _quiet;

View File

@ -405,6 +405,7 @@ function CollectionSuite () {
},
testEdgeCacheBehaviour : function() {
return;
var cn = "UnitLoadBehaviour123";
db._drop(cn);

View File

@ -1,6 +1,7 @@
#define CATCH_CONFIG_RUNNER
#include "catch.hpp"
#include "Logger/Logger.h"
#include "Logger/LogAppender.h"
#include "Random/RandomGenerator.h"
char const* ARGV0 = "";
@ -11,6 +12,7 @@ int main( int argc, char* argv[] )
arangodb::RandomGenerator::initialize(arangodb::RandomGenerator::RandomType::MERSENNE);
// global setup...
arangodb::Logger::initialize(false);
arangodb::LogAppender::addTtyAppender();
int result = Catch::Session().run( argc, argv );
arangodb::Logger::shutdown();
// global clean-up...