1392aa97aSMartin Storsjö## Test the --subsystem option. 2392aa97aSMartin Storsjö 3392aa97aSMartin Storsjö# RUN: yaml2obj %s -o %t.in.exe 4392aa97aSMartin Storsjö 5392aa97aSMartin Storsjö# RUN: llvm-objcopy --subsystem=posix:7.4 --subsystem windows %t.in.exe %t.out.exe 6392aa97aSMartin Storsjö# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=WIN74 7392aa97aSMartin Storsjö 8392aa97aSMartin Storsjö# WIN74: MajorOperatingSystemVersion: 6 9392aa97aSMartin Storsjö# WIN74: MinorOperatingSystemVersion: 0 10392aa97aSMartin Storsjö# WIN74: MajorSubsystemVersion: 7 11392aa97aSMartin Storsjö# WIN74: MinorSubsystemVersion: 4 12392aa97aSMartin Storsjö# WIN74: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_GUI 13392aa97aSMartin Storsjö 14392aa97aSMartin Storsjö# RUN: llvm-objcopy --subsystem=posix:7.4 --subsystem windows:9 %t.in.exe %t.out.exe 15392aa97aSMartin Storsjö# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=WIN90 16392aa97aSMartin Storsjö 17392aa97aSMartin Storsjö# WIN90: MajorOperatingSystemVersion: 6 18392aa97aSMartin Storsjö# WIN90: MinorOperatingSystemVersion: 0 19392aa97aSMartin Storsjö# WIN90: MajorSubsystemVersion: 9 20392aa97aSMartin Storsjö# WIN90: MinorSubsystemVersion: 0 21392aa97aSMartin Storsjö# WIN90: Subsystem: IMAGE_SUBSYSTEM_WINDOWS_GUI 22392aa97aSMartin Storsjö 23392aa97aSMartin Storsjö# RUN: not llvm-objcopy --subsystem=foobar %t.in.exe %t.err.exe 2>&1 | FileCheck %s --check-prefix=INVALID-SUBSYS 24392aa97aSMartin Storsjö 25392aa97aSMartin Storsjö# INVALID-SUBSYS: 'foobar' is not a valid subsystem{{$}} 26392aa97aSMartin Storsjö 27392aa97aSMartin Storsjö# RUN: not llvm-objcopy --subsystem=windows:foo %t.in.exe %t.err.exe 2>&1 | FileCheck %s --check-prefix=INVALID-MAJOR-NUMBER 28392aa97aSMartin Storsjö# RUN: not llvm-objcopy --subsystem=windows:8.bar %t.in.exe %t.err.exe 2>&1 | FileCheck %s --check-prefix=INVALID-MINOR-NUMBER 29392aa97aSMartin Storsjö 30392aa97aSMartin Storsjö# INVALID-MAJOR-NUMBER: 'foo' is not a valid subsystem major version 31392aa97aSMartin Storsjö# INVALID-MINOR-NUMBER: 'bar' is not a valid subsystem minor version 32392aa97aSMartin Storsjö 33*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi_application %t.in.exe %t.out.exe 34*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-APPLICATION 35*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi-app %t.in.exe %t.out.exe 36*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-APPLICATION 37*6aefa918SVictor Campos 38*6aefa918SVictor Campos# EFI-APPLICATION: Subsystem: IMAGE_SUBSYSTEM_EFI_APPLICATION 39*6aefa918SVictor Campos 40*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi_boot_service_driver %t.in.exe %t.out.exe 41*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-BOOT-SERVICE-DRIVER 42*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi-bsd %t.in.exe %t.out.exe 43*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-BOOT-SERVICE-DRIVER 44*6aefa918SVictor Campos 45*6aefa918SVictor Campos# EFI-BOOT-SERVICE-DRIVER: Subsystem: IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER 46*6aefa918SVictor Campos 47*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi_runtime_driver %t.in.exe %t.out.exe 48*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-RUNTIME-DRIVER 49*6aefa918SVictor Campos# RUN: llvm-objcopy --subsystem=efi-rtd %t.in.exe %t.out.exe 50*6aefa918SVictor Campos# RUN: llvm-readobj --file-headers %t.out.exe | FileCheck %s --check-prefix=EFI-RUNTIME-DRIVER 51*6aefa918SVictor Campos 52*6aefa918SVictor Campos# EFI-RUNTIME-DRIVER: Subsystem: IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER 53*6aefa918SVictor Campos 54392aa97aSMartin Storsjö--- !COFF 55392aa97aSMartin StorsjöOptionalHeader: 56392aa97aSMartin Storsjö AddressOfEntryPoint: 4096 57392aa97aSMartin Storsjö ImageBase: 1073741824 58392aa97aSMartin Storsjö SectionAlignment: 4096 59392aa97aSMartin Storsjö FileAlignment: 512 60392aa97aSMartin Storsjö MajorOperatingSystemVersion: 6 61392aa97aSMartin Storsjö MinorOperatingSystemVersion: 0 62392aa97aSMartin Storsjö MajorImageVersion: 0 63392aa97aSMartin Storsjö MinorImageVersion: 0 64392aa97aSMartin Storsjö MajorSubsystemVersion: 6 65392aa97aSMartin Storsjö MinorSubsystemVersion: 0 66392aa97aSMartin Storsjö Subsystem: IMAGE_SUBSYSTEM_WINDOWS_CUI 67392aa97aSMartin Storsjö DLLCharacteristics: [ ] 68392aa97aSMartin Storsjö SizeOfStackReserve: 1048576 69392aa97aSMartin Storsjö SizeOfStackCommit: 4096 70392aa97aSMartin Storsjö SizeOfHeapReserve: 1048576 71392aa97aSMartin Storsjö SizeOfHeapCommit: 4096 72392aa97aSMartin Storsjöheader: 73392aa97aSMartin Storsjö Machine: IMAGE_FILE_MACHINE_AMD64 74392aa97aSMartin Storsjö Characteristics: [ ] 75392aa97aSMartin Storsjösections: 76392aa97aSMartin Storsjö - Name: .text 77392aa97aSMartin Storsjö Characteristics: [ ] 78392aa97aSMartin Storsjö VirtualAddress: 4096 79392aa97aSMartin Storsjö VirtualSize: 1 80392aa97aSMartin Storsjö SectionData: C3 81392aa97aSMartin Storsjösymbols: 82392aa97aSMartin Storsjö... 83