forked from OSchip/llvm-project
				
			
		
			
				
	
	
		
			75 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			75 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
// 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 -r %t | FileCheck %s -check-prefix=X86
 | 
						|
 | 
						|
RUN: llvm-cvtres /machine:X64 /out:%t %p/Inputs/test_resource.res
 | 
						|
RUN: llvm-readobj -h -r %t | FileCheck %s -check-prefix=X64
 | 
						|
 | 
						|
RUN: llvm-cvtres /machine:ARM /out:%t %p/Inputs/test_resource.res
 | 
						|
RUN: llvm-readobj -h -r %t | FileCheck %s -check-prefix=ARM
 | 
						|
 | 
						|
RUN: llvm-cvtres /machine:ARM64 /out:%t %p/Inputs/test_resource.res
 | 
						|
RUN: llvm-readobj -h -r %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
 |