
# Copyright 2020 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.

# !!! GENERATED FILE. DO NOT EDIT !!!


load('//metadata/tests/graphics.star', define_graphics = 'define_tests')
load('//metadata/tests/platform.star', define_platform = 'define_tests')
load('//metadata/tests/desktopui.star', define_desktopui = 'define_tests')
load('//metadata/tests/policy.star', define_policy = 'define_tests')
load('//metadata/tests/security.star', define_security = 'define_tests')
load('//metadata/tests/network.star', define_network = 'define_tests')
load('//metadata/tests/dummy.star', define_dummy = 'define_tests')
load('//metadata/tests/power.star', define_power = 'define_tests')
load('//metadata/tests/kernel.star', define_kernel = 'define_tests')
load('//metadata/tests/hardware.star', define_hardware = 'define_tests')
load('//metadata/tests/touch.star', define_touch = 'define_tests')
load('//metadata/tests/cellular.star', define_cellular = 'define_tests')
load('//metadata/tests/audio.star', define_audio = 'define_tests')
load('//metadata/tests/usbpd.star', define_usbpd = 'define_tests')
load('//metadata/tests/autoupdate.star', define_autoupdate = 'define_tests')
load('//metadata/tests/display.star', define_display = 'define_tests')
load('//metadata/tests/webservd.star', define_webservd = 'define_tests')
load('//metadata/tests/login.star', define_login = 'define_tests')
load('//metadata/tests/video.star', define_video = 'define_tests')
load('//metadata/tests/bluetooth.star', define_bluetooth = 'define_tests')
load('//metadata/tests/enterprise.star', define_enterprise = 'define_tests')
load('//metadata/tests/firmware.star', define_firmware = 'define_tests')
load('//metadata/tests/example.star', define_example = 'define_tests')
load('//metadata/tests/logging.star', define_logging = 'define_tests')
load('//metadata/tests/files.star', define_files = 'define_tests')
load('//metadata/tests/performance.star', define_performance = 'define_tests')
load('//metadata/tests/camera.star', define_camera = 'define_tests')
load('//metadata/tests/vpd.star', define_vpd = 'define_tests')
load('//metadata/tests/telemetry.star', define_telemetry = 'define_tests')
load('//metadata/tests/documentscan.star', define_documentscan = 'define_tests')
load('//metadata/tests/p2p.star', define_p2p = 'define_tests')
load('//metadata/tests/suite.star', define_suite = 'define_tests')
load('//metadata/tests/accessibility.star', define_accessibility = 'define_tests')
load('//metadata/tests/detachablebase.star', define_detachablebase = 'define_tests')
load('//metadata/tests/cfm.star', define_cfm = 'define_tests')
load('//metadata/tests/servo.star', define_servo = 'define_tests')
load('//metadata/tests/infra.star', define_infra = 'define_tests')
load('//metadata/tests/system.star', define_system = 'define_tests')
load('//metadata/tests/factory.star', define_factory = 'define_tests')
load('//metadata/tests/android.star', define_android = 'define_tests')
load('//metadata/tests/autotest.star', define_autotest = 'define_tests')
load('//metadata/tests/audiovideo.star', define_audiovideo = 'define_tests')
load('//metadata/tests/provision.star', define_provision = 'define_tests')
load('//metadata/tests/debugd.star', define_debugd = 'define_tests')
load('//metadata/tests/rlz.star', define_rlz = 'define_tests')
load('//metadata/tests/moblab.star', define_moblab = 'define_tests')
load('//metadata/tests/crosperf.star', define_crosperf = 'define_tests')
load('//metadata/tests/stress.star', define_stress = 'define_tests')
load('//metadata/tests/uncategorized.star', define_uncategorized = 'define_tests')

def define_tests():
    tests = []
    
    tests += define_graphics()
    tests += define_platform()
    tests += define_desktopui()
    tests += define_policy()
    tests += define_security()
    tests += define_network()
    tests += define_dummy()
    tests += define_power()
    tests += define_kernel()
    tests += define_hardware()
    tests += define_touch()
    tests += define_cellular()
    tests += define_audio()
    tests += define_usbpd()
    tests += define_autoupdate()
    tests += define_display()
    tests += define_webservd()
    tests += define_login()
    tests += define_video()
    tests += define_bluetooth()
    tests += define_enterprise()
    tests += define_firmware()
    tests += define_example()
    tests += define_logging()
    tests += define_files()
    tests += define_performance()
    tests += define_camera()
    tests += define_vpd()
    tests += define_telemetry()
    tests += define_documentscan()
    tests += define_p2p()
    tests += define_suite()
    tests += define_accessibility()
    tests += define_detachablebase()
    tests += define_cfm()
    tests += define_servo()
    tests += define_infra()
    tests += define_system()
    tests += define_factory()
    tests += define_android()
    tests += define_autotest()
    tests += define_audiovideo()
    tests += define_provision()
    tests += define_debugd()
    tests += define_rlz()
    tests += define_moblab()
    tests += define_crosperf()
    tests += define_stress()
    tests += define_uncategorized()
    return tests
