## Test that permissions for ouput files are mirrored
## from their input files.

## The Unix version of this test must use umask(1) because
## llvm-objcopy respects the umask in setting output permissions.
## Setting the umask to 0 ensures deterministic permissions across
## test environments.
# UNSUPPORTED: system-windows
# REQUIRES: shell

# RUN: touch %t
# RUN: chmod 0777 %t
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0777
# RUN: chmod 0666 %t
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0666
# RUN: chmod 0640 %t
# RUN: ls -l %t | cut -f 1 -d ' ' > %t.0640

## Set umask to be permissive of all permissions,
## only test mirroring of permissions.
# RUN: umask 0

# RUN: yaml2obj %s -o %t

# RUN: chmod 0777 %t
# RUN: llvm-objcopy %t %t1
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
# RUN: cmp %t1.perms %t.0777

# RUN: chmod 0666 %t
# RUN: llvm-objcopy %t %t1
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
# RUN: cmp %t1.perms %t.0666

# RUN: chmod 0640 %t
# RUN: llvm-objcopy %t %t1
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
# RUN: cmp %t1.perms %t.0640

## Drop S_ISUID/S_ISGID bits.
# RUN: chmod 6640 %t
# RUN: llvm-objcopy %t %t1
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
# RUN: cmp %t1.perms %t.0640

## Don't set the permission of a character special file, otherwise there will
## be an EPERM error (or worse: root may change the permission).
# RUN: ls -l /dev/null | cut -f 1 -d ' ' > %tnull.perms
# RUN: llvm-objcopy %t /dev/null
# RUN: ls -l /dev/null | cut -f 1 -d ' ' | diff - %tnull.perms

## Ignore umask if the output filename is the same as the input filename.
# RUN: umask 022
# RUN: cp %t %t1 && chmod 0777 %t1 && llvm-objcopy %t1
# RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
# RUN: cmp %t1.perms %t.0777

--- !ELF
FileHeader:
  Class:   ELFCLASS64
  Data:    ELFDATA2LSB
  Type:    ET_EXEC
  Machine: EM_X86_64
