# Copyright (c) 2011 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.

AUTHOR = "Chrome OS Team"
NAME = "Security"
TIME = "LONG"
TEST_CATEGORY = "Functional"
TEST_CLASS = "suite"
TEST_TYPE = "server"

DOC = """
Security Functional test suite.
"""

# List of client tests with parameters
TESTS = [
  ('platform_DMVerityCorruption', {}),
  ('platform_DMVerityBitCorruption', {}),
  ('platform_ToolchainOptions', {}),
  ('security_AccountsBaseline', {}),
  ('security_ASLR', {}),
  ('security_BundledExtensionsTelemetry', {}),
  ('security_DbusOwners', {}),
  ('security_HardlinkRestrictions', {}),
  ('security_HtpdateHTTP', {}),
  ('security_Minijail0', {}),
  ('security_Minijail_seccomp', {}),
  ('security_NetworkListeners', {}),
  ('security_OpenFDs', {}),
  ('security_OpenSSLBlacklist', {}),
  ('security_OpenSSLRegressions', {}),
  ('security_ptraceRestrictions', {}),
  ('security_RendererSandbox', {}),
  ('security_ReservedPrivileges', {'owner_type': 'user', 'tag': 'user'}),
  ('security_ReservedPrivileges', {'owner_type': 'group', 'tag': 'group'}),
  ('security_RestartJob', {}),
  ('security_RootCA', {}),
  ('security_RootfsOwners', {}),
  ('security_RootfsStatefulSymlinks', {}),
  ('security_SandboxedServices', {}),
  ('security_SeccompSyscallFilters', {}),
  ('security_SuidBinaries', {'baseline': 'suid', 'tag': 'suid'}),
  ('security_SuidBinaries', {'baseline': 'sgid', 'tag': 'sgid'}),
  ('security_SymlinkRestrictions', {}),
]

# Kick off client tests
job.distribute_across_machines(TESTS, machines)

