Compiler projects using llvm
; Check that the various input/output formats (rc/res/coff) are implied
; from file suffixes.

; RUN: rm -f %t.res
; RUN: llvm-windres --no-preprocess %p/Inputs/tag-stringtable-basic.rc %t.res
; RUN: llvm-readobj %t.res | FileCheck %s --check-prefix=CHECK-RES

; RUN: rm -f %t.o
; RUN: llvm-windres --no-preprocess -F pe-x86-64 %p/Inputs/tag-stringtable-basic.rc %t.o
; RUN: llvm-readobj --coff-resources %t.o | FileCheck %s --check-prefix=CHECK-OBJ

; RUN: rm -f %t.obj
; RUN: llvm-windres -F pe-x86-64 %t.res %t.obj
; RUN: llvm-readobj --coff-resources %t.obj | FileCheck %s --check-prefix=CHECK-OBJ

; Check that we can specify the input/output file types explicitly.
; Also check options for specifying the input/output file names.

; RUN: cat %p/Inputs/tag-stringtable-basic.rc > %t-anonymous
; RUN: rm -f %t-anonymous2
; RUN: llvm-windres --no-preprocess -O res -J rc -o %t-anonymous2 -i %t-anonymous
; RUN: llvm-readobj %t-anonymous2 | FileCheck %s --check-prefix=CHECK-RES

; RUN: rm -f %t-anonymous3
; RUN: llvm-windres -F pe-x86-64 -J res -O coff -i%t-anonymous2 -o%t-anonymous3
; RUN: llvm-readobj --coff-resources %t-anonymous3 | FileCheck %s --check-prefix=CHECK-OBJ

; CHECK-RES: Resource type (int): STRINGTABLE

; CHECK-OBJ: Format: COFF-x86-64
; CHECK-OBJ: Resources [
; CHECK-OBJ:   Total Number of Resources:

; Check for format conversions that currently aren't supported.

; RUN: not llvm-windres -F pe-x86-64 -J res -O rc -i%t-anonymous2 -o%t-anonymous 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR-OUTPUT
; RUN: not llvm-windres -F pe-x86-64 -J coff -O res -i%t-anonymous3 -o%t-anonymous2 2>&1 | FileCheck %s --check-prefix=CHECK-ERROR-INPUT

; CHECK-ERROR-OUTPUT: Unsupported output format
; CHECK-ERROR-INPUT: Unsupported input format