
# Text file defining lists of tests in the form of key=value. We should be able
# to include contents of this file into Makefile.
#
# Keys TESTS32 and TESTS64 are lists of tests for x86-32 and x86-64 validators
# respectively.
#
# Keys CONVERTIBLE_TESTS32 and CONVERTIBLE_TESTS64 are used to import golden
# outputs for the above tests from the old validator into the format that
# run_ncval_tests.py understands.  The process of importing is done manually.

# These tests pass.
TESTS64 =  3DNow
TESTS64 += add_cs_gs_prefix
TESTS64 += add_mult_prefix
TESTS64 += addrex
TESTS64 += addrex2
TESTS64 += add_rsp_r15
TESTS64 += AhNotSubRsp
TESTS64 += ambig-segment
TESTS64 += ambig-segment
TESTS64 += bad66
TESTS64 += bt
TESTS64 += call_aligned
TESTS64 += call-ex
TESTS64 += change-subregs
TESTS64 += cmpxchg
TESTS64 += cpuid
TESTS64 += dup-prefix
TESTS64 += fs_use
TESTS64 += hlt
TESTS64 += inc67
TESTS64 += incno67
TESTS64 += indirect_jmp_not_masked
TESTS64 += invalid_base
TESTS64 += invalid_base_store
TESTS64 += invalid_width_index
TESTS64 += jmp-16
TESTS64 += jump_outside
TESTS64 += lea
TESTS64 += lea-add-rsp
TESTS64 += lea-rsp
TESTS64 += mmx
TESTS64 += mov-esi-nop-use
TESTS64 += mov_esp_add_rsp_r15
TESTS64 += mov-lea-rbp
TESTS64 += mov-lea-rbp-bad-5
TESTS64 += mov-lea-rsp
TESTS64 += movlps-ex
TESTS64 += mov_rbp_2_rsp
TESTS64 += movsbw
TESTS64 += mv_ebp_add_rbp_r15
TESTS64 += nacl_illegal
TESTS64 += nops
TESTS64 += pop-rbp
TESTS64 += prefix-3
TESTS64 += push-memoff
TESTS64 += rbp67
TESTS64 += read_const_ptr
TESTS64 += rep_tests
TESTS64 += rex_invalid
TESTS64 += rex_not_last
TESTS64 += rip67
TESTS64 += rip-relative
TESTS64 += segment_assign
TESTS64 += segment_store
TESTS64 += stosd
TESTS64 += stosd67
TESTS64 += stosd-bad
TESTS64 += stosdno67
TESTS64 += sub-add-rsp
TESTS64 += sub-rsp
TESTS64 += ud2
TESTS64 += valid_and_store
TESTS64 += valid_base_only
TESTS64 += valid_lea_store
TESTS64 += x87

# new validator allows unaligned calls:
#     TESTS64=call_not_aligned
#     TESTS64=call_not_aligned_16
# reports error on instruction that follows the xchg esp, ebp, replacing it does
#   not help causing an infinite loop
#     TESTS64=stack_regs
#     TESTS64=mov-lea-rbp-bad-1
#     TESTS64=mov-lea-rbp-bad-2
#     TESTS64=mov-lea-rbp-bad-3
#     TESTS64=mov-lea-rbp-bad-4
#     TESTS64=mv_ebp_alone
# the @ expansion is not yet parsed:
#     TESTS64=call0
#     TESTS64=call1
#     TESTS64=call_long
#     TESTS64=call_short
#     TESTS64=jmp0
#     TESTS64=jump_not_atomic
#     TESTS64=jump_not_atomic_1
#     TESTS64=jump_overflow
#     TESTS64=jump_underflow
#     TESTS64=mv_ebp_add_crossing
#     TESTS64=return
#     TESTS64=segment_aligned
#     TESTS64=segment_not_aligned
#     TESTS64=update-rsp
# needs a tiny fix in old validator input file:
#     TESTS64=legacy
# http://code.google.com/p/nativeclient/issues/detail?id=2529
#     TESTS64=maskmov_test
# http://code.google.com/p/nativeclient/issues/detail?id=2603
#     TESTS64=bsf-mask
#     TESTS64=bsr-mask
# http://code.google.com/p/nativeclient/issues/detail?id=2606
#     TESTS64=extensions
# http://code.google.com/p/nativeclient/issues/detail?id=2607
#     TESTS64=indirect_jmp_masked
#     TESTS64=jump_atomic
# super-instruction crosses boundary, small instruction does not:
#     TESTS64=fpu
# have .hex, but not .rval:
#     TESTS64=data66prefix rdmsr stubseq test_alias test_insts wrmsr
# long super-instruction (movl, lea, movl, lea, movsb) crosses bundle boundary,
#   DFA-based validator reports error on offset movsb:
#     TESTS64=movs_test
# http://code.google.com/p/nativeclient/issues/detail?id=2650
#     TESTS64=prefix-2
# http://code.google.com/p/nativeclient/issues/detail?id=2671
#     TESTS64=prefix-single
# http://code.google.com/p/nativeclient/issues/detail?id=2680
#     TESTS64=strings
# http://code.google.com/p/nativeclient/issues/detail?id=2681
# http://code.google.com/p/nativeclient/issues/detail?id=2682
#     TESTS64=sse

# These tests pass.
TESTS32 =  addr16
TESTS32 += bt
TESTS32 += crosses_block
TESTS32 += cs-twobyte
TESTS32 += direct-call-16
TESTS32 += direct-call-32
TESTS32 += direct-cond-jump-16
TESTS32 += direct-cond-jump-32
TESTS32 += direct-jump-16
TESTS32 += direct-jump-32
TESTS32 += foof-bug
TESTS32 += fpu
TESTS32 += hlt
TESTS32 += jmp-ind-beg
TESTS32 += legacy
TESTS32 += predef-nop
TESTS32 += ret
TESTS32 += x87

# http://code.google.com/p/nativeclient/issues/detail?id=2624
#     TESTS32 = load-segment
# http://code.google.com/p/nativeclient/issues/detail?id=2625
#     TESTS32 = nop-misses
# recent validator difference:
# http://code.google.com/p/nativeclient/issues/detail?id=2518
#     TESTS32 = lock-66-test
# http://code.google.com/p/nativeclient/issues/detail?id=2629
#     TESTS32 = tls

# The list of tests having both .hex and .rval files, acquired by
# scanning native_client/src/trusted/validator_x86/testdata/64/.
# TODO(pasko): automate the process of detecting convertible tests.
CONVERTIBLE_TESTS64 =  3DNow
CONVERTIBLE_TESTS64 += add_cs_gs_prefix
CONVERTIBLE_TESTS64 += add_mult_prefix
CONVERTIBLE_TESTS64 += addrex
CONVERTIBLE_TESTS64 += addrex2
CONVERTIBLE_TESTS64 += add_rsp_r15
CONVERTIBLE_TESTS64 += AhNotSubRsp
CONVERTIBLE_TESTS64 += ambig-segment
CONVERTIBLE_TESTS64 += bad66
CONVERTIBLE_TESTS64 += bsf-mask
CONVERTIBLE_TESTS64 += bsr-mask
CONVERTIBLE_TESTS64 += bt
CONVERTIBLE_TESTS64 += call_aligned
CONVERTIBLE_TESTS64 += call-ex
CONVERTIBLE_TESTS64 += call_not_aligned
CONVERTIBLE_TESTS64 += call_not_aligned_16
CONVERTIBLE_TESTS64 += change-subregs
CONVERTIBLE_TESTS64 += cmpxchg
CONVERTIBLE_TESTS64 += cpuid
CONVERTIBLE_TESTS64 += data66prefix
CONVERTIBLE_TESTS64 += direct-call-16
CONVERTIBLE_TESTS64 += direct-call-32
CONVERTIBLE_TESTS64 += direct-cond-jump-16
CONVERTIBLE_TESTS64 += direct-cond-jump-32
CONVERTIBLE_TESTS64 += direct-jump-16
CONVERTIBLE_TESTS64 += direct-jump-32
CONVERTIBLE_TESTS64 += dup-prefix
CONVERTIBLE_TESTS64 += extensions
CONVERTIBLE_TESTS64 += fpu
CONVERTIBLE_TESTS64 += fs_use
CONVERTIBLE_TESTS64 += hlt
CONVERTIBLE_TESTS64 += inc67
CONVERTIBLE_TESTS64 += incno67
CONVERTIBLE_TESTS64 += indirect_jmp_masked
CONVERTIBLE_TESTS64 += indirect_jmp_not_masked
CONVERTIBLE_TESTS64 += invalid_base
CONVERTIBLE_TESTS64 += invalid_base_store
CONVERTIBLE_TESTS64 += invalid_width_index
CONVERTIBLE_TESTS64 += jmp-16
CONVERTIBLE_TESTS64 += jump_atomic
CONVERTIBLE_TESTS64 += jump_outside
CONVERTIBLE_TESTS64 += lea
CONVERTIBLE_TESTS64 += lea-add-rsp
CONVERTIBLE_TESTS64 += lea-rsp
CONVERTIBLE_TESTS64 += legacy
CONVERTIBLE_TESTS64 += maskmov_test
CONVERTIBLE_TESTS64 += mmx
CONVERTIBLE_TESTS64 += mov-esi-nop-use
CONVERTIBLE_TESTS64 += mov_esp_add_rsp_r15
CONVERTIBLE_TESTS64 += mov-lea-rbp
CONVERTIBLE_TESTS64 += mov-lea-rbp-bad-1
CONVERTIBLE_TESTS64 += mov-lea-rbp-bad-2
CONVERTIBLE_TESTS64 += mov-lea-rbp-bad-3
CONVERTIBLE_TESTS64 += mov-lea-rbp-bad-4
CONVERTIBLE_TESTS64 += mov-lea-rbp-bad-5
CONVERTIBLE_TESTS64 += mov-lea-rsp
CONVERTIBLE_TESTS64 += movlps-ex
CONVERTIBLE_TESTS64 += mov_rbp_2_rsp
CONVERTIBLE_TESTS64 += movsbw
CONVERTIBLE_TESTS64 += movs_test
CONVERTIBLE_TESTS64 += mv_ebp_add_rbp_r15
CONVERTIBLE_TESTS64 += mv_ebp_alone
CONVERTIBLE_TESTS64 += nacl_illegal
CONVERTIBLE_TESTS64 += nops
CONVERTIBLE_TESTS64 += pop-rbp
CONVERTIBLE_TESTS64 += prefix-2
CONVERTIBLE_TESTS64 += prefix-3
CONVERTIBLE_TESTS64 += prefix-single
CONVERTIBLE_TESTS64 += push-memoff
CONVERTIBLE_TESTS64 += rbp67
CONVERTIBLE_TESTS64 += rdmsr
CONVERTIBLE_TESTS64 += read_const_ptr
CONVERTIBLE_TESTS64 += rep_tests
CONVERTIBLE_TESTS64 += rex_invalid
CONVERTIBLE_TESTS64 += rex_not_last
CONVERTIBLE_TESTS64 += rip67
CONVERTIBLE_TESTS64 += rip-relative
CONVERTIBLE_TESTS64 += segment_assign
CONVERTIBLE_TESTS64 += segment_store
CONVERTIBLE_TESTS64 += sse
CONVERTIBLE_TESTS64 += stack_regs
CONVERTIBLE_TESTS64 += stosd
CONVERTIBLE_TESTS64 += stosd67
CONVERTIBLE_TESTS64 += stosd-bad
CONVERTIBLE_TESTS64 += stosdno67
CONVERTIBLE_TESTS64 += strings
CONVERTIBLE_TESTS64 += stubseq
CONVERTIBLE_TESTS64 += sub-add-rsp
CONVERTIBLE_TESTS64 += sub-rsp
CONVERTIBLE_TESTS64 += test_alias
CONVERTIBLE_TESTS64 += test_insts
CONVERTIBLE_TESTS64 += ud2
CONVERTIBLE_TESTS64 += valid_and_store
CONVERTIBLE_TESTS64 += valid_base_only
CONVERTIBLE_TESTS64 += valid_lea_store
CONVERTIBLE_TESTS64 += wrmsr
CONVERTIBLE_TESTS64 += x87

CONVERTIBLE_TESTS32 =  addr16
CONVERTIBLE_TESTS32 += bt
CONVERTIBLE_TESTS32 += crosses_block
CONVERTIBLE_TESTS32 += cs-twobyte
CONVERTIBLE_TESTS32 += direct-call-16
CONVERTIBLE_TESTS32 += direct-call-32
CONVERTIBLE_TESTS32 += direct-cond-jump-16
CONVERTIBLE_TESTS32 += direct-cond-jump-32
CONVERTIBLE_TESTS32 += direct-jump-16
CONVERTIBLE_TESTS32 += direct-jump-32
CONVERTIBLE_TESTS32 += foof-bug
CONVERTIBLE_TESTS32 += fpu
CONVERTIBLE_TESTS32 += hlt
CONVERTIBLE_TESTS32 += jmp-ind-beg
CONVERTIBLE_TESTS32 += legacy
CONVERTIBLE_TESTS32 += load-segment
CONVERTIBLE_TESTS32 += lock-66-test
CONVERTIBLE_TESTS32 += nop-misses
CONVERTIBLE_TESTS32 += predef-nop
CONVERTIBLE_TESTS32 += ret
CONVERTIBLE_TESTS32 += tls
CONVERTIBLE_TESTS32 += x87
