tests/q.disptacher.R

require(qrmarkdown)
require(testthat)

cleanlog <- function()
{
  if(file.exists('testlog'))
    system('rm -r testlog')

  q.wd('testlog', full.name = TRUE)
  dir('testlog')
}

test1 <- function()
{
  cleanlog()
  q.wd('testlog', full.name = TRUE)

  ii = q.push(code='ls()')
  ii = q.push(code='ls()')

  deamon(wait=FALSE, timer = 5, wdir = q.wd())
  q.dispatcher(wait=TRUE, timer = 6, n=2 )

  q.wait(ii)
  res <- q.show()

  expect(res$outbox == 2, 'completed a job ')

  expect( length( dir('testlog/agent/',recursive = TRUE) ) == 0, 'cleaning check after execution' )

}

test1()

test_QWD <- function()
{
  cleanlog()
  QWD <- Sys.getenv("QWD")
  q.wd(wdir = QWD, full.name = TRUE)
  q.ls()

  ii = q.push(code='ls()')
  ii = q.push(code='ls()')

  deamon(wait=FALSE, timer = 5, wdir = q.wd())
  q.dispatcher(wait=TRUE, timer = 10, n=2)

  q.wait(ii)
  res <- q.show()

  expect(res$outbox == 2, 'completed a job ')

}

test_QWD()

test2 <- function()
{
  # N dispatcher in background

  cleanlog()

  ii = q.push(code='ls()')
  ii = q.push(code='ls()')

  # check deamon
  deamon(wait=FALSE, timer = 5, wdir = q.wd())

  q.dispatcher(n=10, wait=FALSE, timer = 5)
  q.wait(ii)

  q.shutdown()
  q.show()

  expect(res$outbox == 2, 'completed a job ')

}

#test2()

test_shutdown <-function()
{

  cleanlog()

  deamon(wait=FALSE, timer = 5, wdir = q.wd())
  q.dispatcher(n=10, wait=FALSE, timer = 5)
  q.shutdown()

  q.show()

}


test_shutdown <-function()
{

  cleanlog()

  for(i in 1:10 )
  ii = q.push(code='ls()')

  deamon(wait=FALSE,  wdir = q.wd())
  q.dispatcher(n=10, wait=FALSE)
  q.wait(ii)

  q.show()

}
okux/qrmarkdown documentation built on Dec. 22, 2021, 4:17 a.m.