Compiler projects using llvm
## The END MRI command is optional. Scripts that omit
## or include END should be handled by llvm-ar.

# RUN: rm -rf %t && split-file %s %t
# RUN: cd %t

# RUN: yaml2obj %S/Inputs/elf.yaml -o elf.o

## Empty file.
# RUN: touch empty.mri
# RUN: llvm-ar -M < empty.mri
# RUN: llvm-ar -M < empty-end.mri

## Comment only.
# RUN: llvm-ar -M < comment.mri
# RUN: llvm-ar -M < comment-end.mri

## Without SAVE.
# RUN: llvm-ar -M < no-save.mri
# RUN: test ! -e no-save.ar

# RUN: llvm-ar -M < no-save-end.mri
# RUN: test ! -e no-save-end.ar

## With SAVE.
# RUN: llvm-ar -M < save.mri
# RUN: llvm-ar t save.ar | FileCheck %s

# RUN: llvm-ar -M < save-end.mri
# RUN: llvm-ar t save-end.ar | FileCheck %s

## Duplicate use of END.
# RUN: llvm-ar -M < duplicate-end-no-save.mri
# RUN: test ! -e duplicate-end-no-save.ar

# RUN: llvm-ar -M < duplicate-end-save.mri
# RUN: llvm-ar t duplicate-end-save.ar | FileCheck %s

## Use of END before saving.
# RUN: llvm-ar -M < end-before-save.mri
# RUN: llvm-ar t end-before-save.ar | FileCheck %s

# CHECK: elf.o

#--- empty-end.mri
END

#--- comment.mri
; a comment

#--- comment-end.mri
; a comment
END

#--- no-save.mri
create no-save.ar
addmod elf.o

#--- no-save-end.mri
create no-save-end.ar
addmod elf.o
END

#--- save.mri
create save.ar
addmod elf.o
save

#--- save-end.mri
create save-end.ar
addmod elf.o
save
end

#--- duplicate-end-no-save.mri
create duplicate-end-no-save.ar
addmod elf.o
END
END

#--- duplicate-end-save.mri
create duplicate-end-save.ar
addmod elf.o
save
END
END

#--- end-before-save.mri
create end-before-save.ar
addmod elf.o
end
save