#
# Copyright (C) 2016 The Android Open Source Project
#
# Licensed under the Apache License, Version 2.0 (the 'License');
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an 'AS IS' BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

import os

from vts.testcases.kernel.ltp import ltp_enums

VTS_LTP_OUTPUT = 'DATA/nativetest/ltp'
LTP_RUNTEST_DIR = os.path.join(VTS_LTP_OUTPUT, 'runtest')
LTP_DISABLED_BUILD_TESTS_CONFIG_PATH = os.path.join(VTS_LTP_OUTPUT, 'disabled_tests.txt')


# Environment paths for ltp test cases
# string, ltp build root directory on target
LTPDIR = '/data/local/tmp/ltp'
# Directory for environment variable 'TMP' needed by some test cases
TMP = os.path.join(LTPDIR, 'tmp')
# Directory for environment variable 'TMPBASE' needed by some test cases
TMPBASE = os.path.join(TMP, 'tmpbase')
# Directory for environment variable 'LTPTMP' needed by some test cases
LTPTMP = os.path.join(TMP, 'ltptemp')
# Directory for environment variable 'TMPDIR' needed by some test cases
TMPDIR = os.path.join(TMP, 'tmpdir')
# Path where ltp test binary exists
LTPBINPATH = os.path.join(LTPDIR, 'testcases/bin')
# Add LTP's binary path to PATH
PATH = '/system/bin:%s' % LTPBINPATH

# File system type for loop device
LTP_DEV_FS_TYPE = 'ext4'

# Binaries required by LTP test cases that should exist in PATH
INTERNAL_BINS = [
    'mktemp',
    'cp',
    'chmod',
    'chown',
    'ls',
    'mkfifo',
    'ldd',
]

# Internal shell command required by some LTP test cases
INTERNAL_SHELL_COMMANDS = [
    'export',
    'cd',
]

# Requirement to testcase dictionary.
REQUIREMENTS_TO_TESTCASE = {
    ltp_enums.Requirements.LOOP_DEVICE_SUPPORT: [
        'syscalls.mount01',
        'syscalls.fchmod06',
        'syscalls.ftruncate04',
        'syscalls.ftruncate04_64',
        'syscalls.inotify03',
        'syscalls.link08',
        'syscalls.linkat02',
        'syscalls.mkdir03',
        'syscalls.mkdirat02',
        'syscalls.mknod07',
        'syscalls.mknodat02',
        'syscalls.mmap16',
        'syscalls.mount01',
        'syscalls.mount02',
        'syscalls.mount03',
        'syscalls.mount04',
        'syscalls.mount06',
        'syscalls.rename11',
        'syscalls.renameat01',
        'syscalls.rmdir02',
        'syscalls.umount01',
        'syscalls.umount02',
        'syscalls.umount03',
        'syscalls.umount2_01',
        'syscalls.umount2_02',
        'syscalls.umount2_03',
        'syscalls.utime06',
        'syscalls.utimes01',
        'syscalls.mkfs01',
        'fs.quota_remount_test01',
    ],
    ltp_enums.Requirements.BIN_IN_PATH_LDD: ['commands.ldd'],
}

# Requirement for all test cases
REQUIREMENT_FOR_ALL = [ltp_enums.Requirements.LTP_TMP_DIR]

# Requirement to test suite dictionary
REQUIREMENT_TO_TESTSUITE = {}

# List of LTP test suites to run
TEST_SUITES = [
    'admin_tools',
    'can',
    'cap_bounds',
    'commands',
    'connectors',
    'containers',
#     'controllers',
    'cpuhotplug',
    'dio',
    'fcntl-locktests_android',
    'filecaps',
    'fs',
    'fs_bind',
    'fs_ext4',
    'fs_perms_simple',
    'fsx',
    'hugetlb',
    'hyperthreading',
    'input',
    'io',
    'ipc',
    'kernel_misc',
    'math',
    'mm',
    'modules',
    'nptl',
    'numa',
    'pipes',
    'power_management_tests',
    'pty',
    'sched',
    'syscalls',
    'timers',
    # The following are not included in default LTP scenario group
    'securebits',
    'tracing',
]

# List of LTP test suites that will not run in multi-thread mode
TEST_SUITES_REQUIRE_SINGLE_THREAD_MODE = [
    'dio',
    'io',
    'mm',
]

# Staging tests are for debugging and verifying fixed tests
# Test specified here can be in format: testsuite.testname,
# or testsuite.testname_**bit, or just testname. Using just testname
# is not recommended
STAGING_TESTS = [
    # Flaky on pixel
    # b/32417988
    'syscalls.waitpid02_64bit',

    # Tests currently only failing on pixels,
    # these will be inspected soon
    'syscalls.open14',
    'syscalls.openat03',
    # Fail on local device but pass on lab devices
    'fs.proc01',
    # Failing for missing libcap
    'containers.userns01_64bit',
    'securebits.check_keepcaps03_64bit',
    'securebits.check_keepcaps02_64bit',
    'containers.userns05_64bit',
    'containers.userns07_64bit',
    'containers.userns06_64bit',
    'containers.userns03_64bit',
    'securebits.check_keepcaps01_64bit',
    'containers.userns02_64bit',
]

# Tests disabled
# Based on external/ltp commit 5f01077afe994f4107b147222f3956716d4a8fde
DISABLED_TESTS = [
    # b/32386191 getrusage04 result is flaky
    'syscalls.getrusage04',
    # b/31154962
    'cpuhotplug.cpuhotplug02',
    # b/32385889
    'syscalls.creat08',
    # The following test cases are uncategorized
    'syscalls.fcntl34',
    'syscalls.fcntl34_64',
    'syscalls.inotify06',
    'syscalls.abort01',
    'syscalls.chmod05',
    'syscalls.chmod07',
    'syscalls.chown01_16',
    'syscalls.chown02_16',
    'syscalls.chown03_16',
    'syscalls.chown05_16',
    'syscalls.fchmod01',
    'syscalls.fchmod02',
    'syscalls.fchmod05',
    'syscalls.fchmod06',
    'syscalls.fchown01_16',
    'syscalls.fchown02_16',
    'syscalls.fchown03_16',
    'syscalls.fchown04_16',
    'syscalls.fchown05_16',
    'syscalls.fsync01',
    'syscalls.ftruncate04',
    'syscalls.ftruncate04_64',
    'syscalls.getcwd02',
    'syscalls.getcwd03',
    'syscalls.getegid01_16',
    'syscalls.getegid02_16',
    'syscalls.geteuid01_16',
    'syscalls.geteuid02_16',
    'syscalls.getgid01_16',
    'syscalls.getgid03_16',
    'syscalls.getgroups01_16',
    'syscalls.gethostbyname_r01',
    'syscalls.getuid01_16',
    'syscalls.getuid03_16',
    'syscalls.ioctl03',
    'syscalls.inotify03',
    'syscalls.kill11',
    'syscalls.lchown01_16',
    'syscalls.lchown02_16',
    'syscalls.lchown03_16',
    'syscalls.link08',
    'syscalls.linkat02',
    'syscalls.mkdir03',
    'syscalls.rmdir02',
    'syscalls.mkdirat02',
    'syscalls.mknod07',
    'syscalls.mknodat02',
    'syscalls.mmap16',
    'syscalls.mount01',
    'syscalls.mount02',
    'syscalls.mount03',
    'syscalls.mount04',
    'syscalls.mount06',
    'syscalls.move_pages03',
    'syscalls.move_pages11',
    'syscalls.mprotect01',
    'syscalls.nftw01',
    'syscalls.nftw6401',
    'syscalls.nice04',
    'syscalls.open01',
    'syscalls.open08',
    'syscalls.open10',
    'syscalls.open11',
    'syscalls.madvise01',
    'syscalls.madvise02',
    'syscalls.madvise06',
    'syscalls.pathconf01',
    'syscalls.preadv02',
    'syscalls.process_vm_readv01',
    'syscalls.process_vm_writev01',
    'syscalls.pwritev01_64',
    'syscalls.pwritev02',
    'syscalls.quotactl01',
    'syscalls.readlink04',
    'syscalls.rename11',
    'syscalls.renameat01',
    'syscalls.request_key01',
    'syscalls.request_key02',
    'syscalls.rt_sigprocmask01',
    'syscalls.sbrk03',
    'syscalls.setfsgid01_16',
    'syscalls.setfsgid02_16',
    'syscalls.setfsgid03_16',
    'syscalls.setfsuid01_16',
    'syscalls.setfsuid02_16',
    'syscalls.setfsuid03_16',
    'syscalls.setfsuid04_16',
    'syscalls.setgid01_16',
    'syscalls.setgid02_16',
    'syscalls.setgid03_16',
    'syscalls.setgroups01_16',
    'syscalls.setgroups02_16',
    'syscalls.setgroups03_16',
    'syscalls.setgroups04_16',
    'syscalls.setregid01_16',
    'syscalls.setregid02_16',
    'syscalls.setregid03_16',
    'syscalls.setregid04_16',
    'syscalls.setresgid01_16',
    'syscalls.setresgid02_16',
    'syscalls.setresgid03_16',
    'syscalls.setresgid04_16',
    'syscalls.setresuid01_16',
    'syscalls.setresuid02_16',
    'syscalls.setresuid03_16',
    'syscalls.setresuid04_16',
    'syscalls.setresuid05_16',
    'syscalls.setreuid01_16',
    'syscalls.setreuid02_16',
    'syscalls.setreuid03_16',
    'syscalls.setreuid04_16',
    'syscalls.setreuid05_16',
    'syscalls.setreuid06_16',
    'syscalls.setreuid07_16',
    'syscalls.setuid01_16',
    'syscalls.setuid02_16',
    'syscalls.setuid03_16',
    'syscalls.setuid04_16',
    'syscalls.splice02',
    'syscalls.sysconf01',
    'syscalls.syslog01',
    'syscalls.syslog02',
    'syscalls.syslog03',
    'syscalls.syslog04',
    'syscalls.syslog05',
    'syscalls.syslog06',
    'syscalls.syslog07',
    'syscalls.syslog08',
    'syscalls.syslog09',
    'syscalls.syslog10',
    'syscalls.umask02',
    'syscalls.umask03',
    'syscalls.umount01',
    'syscalls.umount02',
    'syscalls.umount03',
    'syscalls.umount2_01',
    'syscalls.umount2_02',
    'syscalls.umount2_03',
    'syscalls.utime06',
    'syscalls.utimes01',
    'syscalls.utimensat01',
    'syscalls.waitpid05',
    'fs.gf01',
    'fs.gf02',
    'fs.gf03',
    'fs.gf04',
    'fs.gf05',
    'fs.gf06',
    'fs.gf07',
    'fs.gf08',
    'fs.gf09',
    'fs.gf10',
    'fs.gf11',
    'fs.gf14',
    'fs.gf15',
    'fs.gf16',
    'fs.gf17',
    'fs.gf18',
    'fs.gf19',
    'fs.gf20',
    'fs.gf21',
    'fs.gf22',
    'fs.gf23',
    'fs.gf24',
    'fs.gf25',
    'fs.gf26',
    'fs.gf27',
    'fs.gf28',
    'fs.gf29',
    'fs.gf30',
    'fs.rwtest01',
    'fs.rwtest02',
    'fs.rwtest03',
    'fs.rwtest04',
    'fs.rwtest05',
    'fs.iogen01',
    'fs.fs_inod01',
    'fs.ftest06',
    'fs.isofs',
    'fsx.fsx-linux',
    'io.aio01',
    'io.aio02',
    'mm.mtest06',
    'mm.shm_test01',
    'mm.mallocstress01',
    'mm.mmapstress04',
    'mm.mmapstress07',
    'mm.vma03',
    'mm.min_free_kbytes',
    'pipes.pipeio_1',
    'pipes.pipeio_3',
    'pipes.pipeio_4',
    'pipes.pipeio_5',
    'pipes.pipeio_6',
    'pipes.pipeio_8',
    'sched.trace_sched01',
    'math.float_bessel',
    'math.float_exp_log',
    'math.float_iperb',
    'math.float_power',
    'math.float_trigo',
    'pty.pty01',
    'containers.mqns_01_clone',
    'containers.mqns_02_clone',
    'containers.mqns_03_clone',
    'containers.mqns_04_clone',
    'containers.netns_netlink',
    'containers.netns_breakns_ns_exec_ipv4_netlink',
    'containers.netns_breakns_ns_exec_ipv6_netlink',
    'containers.netns_breakns_ns_exec_ipv4_ioctl',
    'containers.netns_breakns_ns_exec_ipv6_ioctl',
    'containers.netns_breakns_ip_ipv4_netlink',
    'containers.netns_breakns_ip_ipv6_netlink',
    'containers.netns_breakns_ip_ipv4_ioctl',
    'containers.netns_breakns_ip_ipv6_ioctl',
    'containers.netns_comm_ns_exec_ipv4_netlink',
    'containers.netns_comm_ns_exec_ipv6_netlink',
    'containers.netns_comm_ns_exec_ipv4_ioctl',
    'containers.netns_comm_ns_exec_ipv6_ioctl',
    'containers.netns_comm_ip_ipv4_netlink',
    'containers.netns_comm_ip_ipv6_netlink',
    'containers.netns_comm_ip_ipv4_ioctl',
    'containers.netns_comm_ip_ipv6_ioctl',
    'containers.netns_sysfs',
    'containers.shmnstest_none',
    'containers.shmnstest_clone',
    'containers.shmnstest_unshare',
    'containers.shmem_2nstest_none',
    'containers.shmem_2nstest_clone',
    'containers.shmem_2nstest_unshare',
    'containers.mesgq_nstest_none',
    'containers.mesgq_nstest_clone',
    'containers.mesgq_nstest_unshare',
    'containers.sem_nstest_none',
    'containers.sem_nstest_clone',
    'containers.sem_nstest_unshare',
    'containers.semtest_2ns_none',
    'containers.semtest_2ns_clone',
    'containers.semtest_2ns_unshare',
    'fs_bind.BindMounts',
    'filecaps.Filecaps',
    'cap_bounds.Cap_bounds',
    'fcntl-locktests_android.FCNTL_LOCKTESTS',
    'admin_tools.su01',
    'admin_tools.cron02',
    'admin_tools.cron_deny01',
    'admin_tools.cron_allow01',
    'admin_tools.cron_dirs_checks01',
    'numa.move_pages03',
    'numa.move_pages11',
    'hugetlb.hugemmap05_1',
    'hugetlb.hugemmap05_2',
    'hugetlb.hugemmap05_3',
    'commands.ar',
    'commands.ld',
    'commands.nm',
    'commands.objdump',
    'commands.file',
    'commands.tar',
    'commands.cron',
    'commands.logrotate',
    'commands.mail',
    'commands.cpio',
    'commands.unzip01',
    'commands.cp_tests01',
    'commands.ln_tests01',
    'commands.mkdir_tests01',
    'commands.mv_tests01',
    'commands.size01',
    'commands.sssd01',
    'commands.sssd02',
    'commands.sssd03',
    'commands.du01',
    'commands.mkfs01',
    'commands.lsmod01',
    'commands.wc01',
    'hyperthreading.smt_smp_enabled',
    'hyperthreading.smt_smp_affinity',
    'kernel_misc.zram03',
    'fs_ext4.ext4-uninit-groups',
    'fs_ext4.ext4-persist-prealloc',
    'cpuhotplug.cpuhotplug03',
    'cpuhotplug.cpuhotplug06',
    'input.input06',
    'dio.dio10',
    'fsx.fsx-linux',
    'dio.dio04',
    'numa.Numa-testcases',
    'syscalls.connect01',
    'syscalls.prot_hsymlinks',
    'fs.ftest01',
    'fs.ftest03',
    'fs.ftest04',
    'fs.ftest05',
    'fs.ftest07',
    'fs.ftest08',
    'fs.inode02',
    'ipc.signal_test_01',
    'mm.data_space',
    'mm.mmapstress01',
    'mm.mmapstress03',
    'mm.mmapstress09',
    'mm.mmapstress10',
    'syscalls.clock_nanosleep01',
    'syscalls.clone04',
    'syscalls.fcntl14',
    'syscalls.fcntl14',
    'syscalls.fcntl14_64',
    'syscalls.fcntl17',
    'syscalls.fcntl17_64',
    'syscalls.getdomainname01',
    'syscalls.kill12',
    'syscalls.setdomainname01',
    'syscalls.setdomainname02',
    'syscalls.setdomainname03',
    'syscalls.sighold02',
    'syscalls.sigpending02',
    'syscalls.sigrelse01',
    'syscalls.vfork02',
    # The following tests are not stable on 64bit version
    'input.input01_64bit',
    'input.input02_64bit',
    'input.input03_64bit',
    'input.input04_64bit',
    'input.input05_64bit',
    'input.input06_64bit',
    # The following tests are failing on 64bit version
    'mm.overcommit_memory01_64bit',
    'mm.overcommit_memory02_64bit',
    'mm.overcommit_memory03_64bit',
    'mm.overcommit_memory04_64bit',
    'mm.overcommit_memory05_64bit',
    'mm.overcommit_memory06_64bit',
    # 'which' in Android does not accept the tested options b/31152668
    'commands.which01',
    # tests that are currently killing some lab devices 64bit on (pixel and bullhead)
    # b/31181781
    'mm.oom01_64bit',
    'mm.oom02_64bit',
    'mm.oom03_64bit',
    'mm.oom04_64bit',
    'mm.oom05_64bit',
    'mm.swapping01_64bit',
    'mm.thp01_64bit',
    'mm.thp02_64bit',
    'mm.thp03_64bit',
    'mm.vma01_64bit',
    # kmsg01 would pass but it occasionally causes socket timeout and misalignment
    # of request and response
    # b/32343072
    'kernel_misc.kmsg01',
    # alarm02 tests for a boundary condition which is impractical to implement
    # correctly on 32-bit Linux.  bionic deliberately breaks with POSIX by reporting
    # that it failed to set up the alarm.  (Other libc implementations fail to
    # set up the alarm too, but then return 0 anyway.)
    'syscalls.alarm02',
    # readdir02 calls opendir() -> closedir() -> readdir() and checks if readdir()
    # returns EBADF.  POSIX doesn't require this, and bionic is likely to instead
    # deadlock trying to acquire a destroyed mutex.
    'syscalls.readdir02',
    # Android sets RLIMIT_NICE to 40, so setpriority02 succeeds unexpectedly
    'syscalls.setpriority02',
    # fork13 takes ~45 minutes to run
    'syscalls.fork13',
    # open13 tests that fchmod() fails on fds opened with O_PATH.  bionic
    # deliberately masks the EBADF returned by the kernel.
    #
    # https://android-review.googlesource.com/#/c/127908/
    'syscalls.open13',
    # Bug#30675453
    'syscalls.perf_event_open02',
    # Bug#30688551
    'syscalls.lstat03_64',
    'syscalls.lstat03',
    # Bug#30688061
    'input.input03',
    # Bug#30688056
    'cpuhotplug.cpuhotplug04',
    # Bug#30699880
    'mm.mtest01w',
    'mm.mtest01',
    # Bug#30688574
    'syscalls.accept4_01',
    # Bug#30689411
    'mm.mmapstress03',
    # Bug #32100169
    'dma_thread_diotest.dma_thread_diotest1',
    'dma_thread_diotest.dma_thread_diotest2',
    'dma_thread_diotest.dma_thread_diotest3',
    'dma_thread_diotest.dma_thread_diotest4',
    'dma_thread_diotest.dma_thread_diotest5',
    'dma_thread_diotest.dma_thread_diotest6',
    'dma_thread_diotest.dma_thread_diotest7',
    # b/33008689 (closed) requires mkfs.ext4 and loop device support.
    'fs.quota_remount_test01',
]
