1# RUN: yaml2obj %p/Inputs/ret42.yaml > %t.obj
2
3# RUN: rm -f %t.exe.manifest
4# RUN: lld-link /out:%t.exe /entry:main %t.obj
5# RUN: test ! -e %t.exe.manifest
6
7# RUN: lld-link /manifest /out:%t.exe /entry:main %t.obj
8# RUN: FileCheck -check-prefix=MANIFEST %s < %t.exe.manifest
9
10MANIFEST: <?xml version="1.0" standalone="yes"?>
11MANIFEST: <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
12MANIFEST:           manifestVersion="1.0">
13MANIFEST:   <trustInfo>
14MANIFEST:     <security>
15MANIFEST:       <requestedPrivileges>
16MANIFEST:          <requestedExecutionLevel level='asInvoker' uiAccess='false'/>
17MANIFEST:       </requestedPrivileges>
18MANIFEST:     </security>
19MANIFEST:   </trustInfo>
20MANIFEST: </assembly>
21
22# RUN: lld-link /out:%t.exe /entry:main /manifest \
23# RUN:   /manifestuac:"level='requireAdministrator' uiAccess='true'" %t.obj
24# RUN: FileCheck -check-prefix=UAC %s < %t.exe.manifest
25
26UAC: <?xml version="1.0" standalone="yes"?>
27UAC: <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
28UAC:           manifestVersion="1.0">
29UAC:   <trustInfo>
30UAC:     <security>
31UAC:       <requestedPrivileges>
32UAC:          <requestedExecutionLevel level='requireAdministrator' uiAccess='true'/>
33UAC:       </requestedPrivileges>
34UAC:     </security>
35UAC:   </trustInfo>
36UAC: </assembly>
37
38# /manifestdependency implies /manifest. (/manifestuac doesn't.)
39# RUN: lld-link /out:%t.exe /entry:main \
40# RUN:   /manifestdependency:"foo='bar'" %t.obj
41# RUN: FileCheck -check-prefix=DEPENDENCY %s < %t.exe.manifest
42
43DEPENDENCY: <?xml version="1.0" standalone="yes"?>
44DEPENDENCY: <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
45DEPENDENCY:           manifestVersion="1.0">
46DEPENDENCY:   <trustInfo>
47DEPENDENCY:     <security>
48DEPENDENCY:       <requestedPrivileges>
49DEPENDENCY:          <requestedExecutionLevel level='asInvoker' uiAccess='false'/>
50DEPENDENCY:       </requestedPrivileges>
51DEPENDENCY:     </security>
52DEPENDENCY:   </trustInfo>
53DEPENDENCY:   <dependency>
54DEPENDENCY:     <dependentAssembly>
55DEPENDENCY:       <assemblyIdentity foo='bar' />
56DEPENDENCY:     </dependentAssembly>
57DEPENDENCY:   </dependency>
58DEPENDENCY: </assembly>
59
60# RUN: lld-link /manifest /out:%t.exe /entry:main /manifestuac:no \
61# RUN:   /manifestdependency:"foo='bar'" %t.obj
62# RUN: FileCheck -check-prefix=NOUAC %s < %t.exe.manifest
63
64NOUAC: <?xml version="1.0" standalone="yes"?>
65NOUAC: <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
66NOUAC:           manifestVersion="1.0">
67NOUAC:   <dependency>
68NOUAC:     <dependentAssembly>
69NOUAC:       <assemblyIdentity foo='bar' />
70NOUAC:     </dependentAssembly>
71NOUAC:   </dependency>
72NOUAC: </assembly>
73
74# RUN: lld-link /manifest /out:%t.exe /entry:main /manifestuac:no %t.obj
75# RUN: FileCheck -check-prefix=NOUACNODEP %s < %t.exe.manifest
76
77NOUACNODEP: <?xml version="1.0" standalone="yes"?>
78NOUACNODEP: <assembly xmlns="urn:schemas-microsoft-com:asm.v1"
79NOUACNODEP:           manifestVersion="1.0">
80NOUACNODEP: </assembly>
81