[Alignment][NFC] Instructions::getLoadStoreAlignment
[llvm-complete.git] / test / tools / llvm-objcopy / ELF / mirror-permissions-unix.test
blob39957716a1de06b7004ad9ab16b2f94db3a2d411
1 ## Test that permissions for ouput files are mirrored
2 ## from their input files.
4 ## The Unix version of this test must use umask(1) because
5 ## llvm-objcopy respects the umask in setting output permissions.
6 ## Setting the umask to 0 ensures deterministic permissions across
7 ## test environments.
8 # UNSUPPORTED: system-windows
9 # REQUIRES: shell
11 # RUN: touch %t
12 # RUN: chmod 0777 %t
13 # RUN: ls -l %t | cut -f 1 -d ' ' > %t.0777
14 # RUN: chmod 0666 %t
15 # RUN: ls -l %t | cut -f 1 -d ' ' > %t.0666
16 # RUN: chmod 0640 %t
17 # RUN: ls -l %t | cut -f 1 -d ' ' > %t.0640
19 ## Set umask to be permissive of all permissions,
20 ## only test mirroring of permissions.
21 # RUN: umask 0
23 # RUN: yaml2obj %s -o %t
25 # RUN: chmod 0777 %t
26 # RUN: llvm-objcopy %t %t1
27 # RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
28 # RUN: cmp %t1.perms %t.0777
30 # RUN: chmod 0666 %t
31 # RUN: llvm-objcopy %t %t1
32 # RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
33 # RUN: cmp %t1.perms %t.0666
35 # RUN: chmod 0640 %t
36 # RUN: llvm-objcopy %t %t1
37 # RUN: ls -l %t1 | cut -f 1 -d ' ' > %t1.perms
38 # RUN: cmp %t1.perms %t.0640
40 ## Don't set the permission of a character special file, otherwise there will
41 ## be an EPERM error (or worse: root may change the permission).
42 # RUN: ls -l /dev/null | cut -f 1 -d ' ' > %tnull.perms
43 # RUN: llvm-objcopy %t /dev/null
44 # RUN: ls -l /dev/null | cut -f 1 -d ' ' | diff - %tnull.perms
46 --- !ELF
47 FileHeader:
48   Class:   ELFCLASS64
49   Data:    ELFDATA2LSB
50   Type:    ET_EXEC
51   Machine: EM_X86_64