// Check that cvtres properly generates COFF for different machine types. The
// only things that changes with machine type are the machine constant listed
// in the COFF header, and the relocation types in the relocation tables.
// The input was generated with the following command, using the original Windows
// rc.exe:
// > rc /fo test_resource.res /nologo test_resource.rc
// The object files we are comparing against were generated with these commands
// using the original Windows cvtres.exe.
// > cvtres /machine:X86 /readonly /nologo /out:test_resource.obj.coff \ 
// 	 test_resource.res
// > cvtres /machine:X64 /readonly /nologo /out:test_resource.obj.coff.x64 \ 
// 	 test_resource.res
// > cvtres /machine:ARM /readonly /nologo /out:test_resource.obj.coff.x64 \ 
// 	 test_resource.res

RUN: llvm-cvtres /machine:X86 /out:%t %p/Inputs/test_resource.res
RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=X86

RUN: llvm-cvtres /machine:X64 /out:%t %p/Inputs/test_resource.res
RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=X64

RUN: llvm-cvtres /machine:ARM /out:%t %p/Inputs/test_resource.res
RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=ARM

RUN: llvm-cvtres /machine:ARM64 /out:%t %p/Inputs/test_resource.res
RUN: llvm-readobj -h -relocations %t | FileCheck %s -check-prefix=ARM64

X86:         Machine: IMAGE_FILE_MACHINE_I386 (0x14C)
X86-DAG:   Relocations [
X86-DAG:                 .rsrc$01 {
X86-NEXT:      0x1E8 IMAGE_REL_I386_DIR32NB $R000000
X86-NEXT:      0x198 IMAGE_REL_I386_DIR32NB $R000001
X86-NEXT:      0x1A8 IMAGE_REL_I386_DIR32NB $R000002
X86-NEXT:      0x1C8 IMAGE_REL_I386_DIR32NB $R000003
X86-NEXT:      0x1D8 IMAGE_REL_I386_DIR32NB $R000004
X86-NEXT:      0x1F8 IMAGE_REL_I386_DIR32NB $R000005
X86-NEXT:      0x1B8 IMAGE_REL_I386_DIR32NB $R000006
X86-NEXT:      0x188 IMAGE_REL_I386_DIR32NB $R000007

X64:         Machine: IMAGE_FILE_MACHINE_AMD64 (0x8664)
X64-DAG:   Relocations [
X64-DAG:                 .rsrc$01 {
X64-NEXT:      0x1E8 IMAGE_REL_AMD64_ADDR32NB $R000000
X64-NEXT:      0x198 IMAGE_REL_AMD64_ADDR32NB $R000001
X64-NEXT:      0x1A8 IMAGE_REL_AMD64_ADDR32NB $R000002
X64-NEXT:      0x1C8 IMAGE_REL_AMD64_ADDR32NB $R000003
X64-NEXT:      0x1D8 IMAGE_REL_AMD64_ADDR32NB $R000004
X64-NEXT:      0x1F8 IMAGE_REL_AMD64_ADDR32NB $R000005
X64-NEXT:      0x1B8 IMAGE_REL_AMD64_ADDR32NB $R000006
X64-NEXT:      0x188 IMAGE_REL_AMD64_ADDR32NB $R000007

ARM:         Machine: IMAGE_FILE_MACHINE_ARMNT (0x1C4)
ARM-DAG:   Relocations [
ARM-DAG:                 .rsrc$01 {
ARM-NEXT:      0x1E8 IMAGE_REL_ARM_ADDR32NB $R000000
ARM-NEXT:      0x198 IMAGE_REL_ARM_ADDR32NB $R000001
ARM-NEXT:      0x1A8 IMAGE_REL_ARM_ADDR32NB $R000002
ARM-NEXT:      0x1C8 IMAGE_REL_ARM_ADDR32NB $R000003
ARM-NEXT:      0x1D8 IMAGE_REL_ARM_ADDR32NB $R000004
ARM-NEXT:      0x1F8 IMAGE_REL_ARM_ADDR32NB $R000005
ARM-NEXT:      0x1B8 IMAGE_REL_ARM_ADDR32NB $R000006
ARM-NEXT:      0x188 IMAGE_REL_ARM_ADDR32NB $R000007

ARM64:       Machine: IMAGE_FILE_MACHINE_ARM64 (0xAA64)
ARM64-DAG: Relocations [
ARM64-DAG:               .rsrc$01 {
ARM64-NEXT:    0x1E8 IMAGE_REL_ARM64_ADDR32NB $R000000
ARM64-NEXT:    0x198 IMAGE_REL_ARM64_ADDR32NB $R000001
ARM64-NEXT:    0x1A8 IMAGE_REL_ARM64_ADDR32NB $R000002
ARM64-NEXT:    0x1C8 IMAGE_REL_ARM64_ADDR32NB $R000003
ARM64-NEXT:    0x1D8 IMAGE_REL_ARM64_ADDR32NB $R000004
ARM64-NEXT:    0x1F8 IMAGE_REL_ARM64_ADDR32NB $R000005
ARM64-NEXT:    0x1B8 IMAGE_REL_ARM64_ADDR32NB $R000006
ARM64-NEXT:    0x188 IMAGE_REL_ARM64_ADDR32NB $R000007
