; 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
