# These are needed as workaround for the 'verify: false' bug in Jcraft SSH library
BOUNCYCASTLE = [
  '//lib/bouncycastle:bcpkix',
  '//lib/bouncycastle:bcpg',
]

def acceptance_tests(
    group,
    srcs,
    deps = [],
    labels = [],
    source_under_test = [],
    vm_args = ['-Xmx256m']):
  from os import environ, path
  if not environ.get('NO_BOUNCYCASTLE'):
    deps = BOUNCYCASTLE + deps
  if path.exists('/dev/urandom'):
    vm_args = vm_args + ['-Djava.security.egd=file:/dev/./urandom']

  java_test(
    name = group,
    srcs = srcs,
    deps = ['//gerrit-acceptance-tests:lib'] + deps,
    source_under_test = [
      '//gerrit-httpd:httpd',
      '//gerrit-sshd:sshd',
      '//gerrit-server:server',
    ] + source_under_test,
    labels = labels + [
      'acceptance',
      'slow',
    ],
    vm_args = vm_args,
  )
