1*9e94795aSAndroid Build Coastguard Worker## Test data 2*9e94795aSAndroid Build Coastguard Worker 3*9e94795aSAndroid Build Coastguard WorkerEach non-regression directory under testdata/ defines a similar build graph. 4*9e94795aSAndroid Build Coastguard WorkerAll have the same structure, but different versions of the graph have different 5*9e94795aSAndroid Build Coastguard Workerlicense metadata. 6*9e94795aSAndroid Build Coastguard Worker 7*9e94795aSAndroid Build Coastguard WorkerThe regression* directories can have whatever structure is required for the 8*9e94795aSAndroid Build Coastguard Workerspecific test case. 9*9e94795aSAndroid Build Coastguard Worker 10*9e94795aSAndroid Build Coastguard Worker### Testdata build graph structure: 11*9e94795aSAndroid Build Coastguard Worker 12*9e94795aSAndroid Build Coastguard WorkerThe structure is meant to simulate some common scenarios: 13*9e94795aSAndroid Build Coastguard Worker 14*9e94795aSAndroid Build Coastguard Worker* a `lib/` directory with some libraries 15*9e94795aSAndroid Build Coastguard Worker* a `bin/` directory with some executables 16*9e94795aSAndroid Build Coastguard Worker* one of the binaries, `bin3`, is a toolchain executable like a compiler 17*9e94795aSAndroid Build Coastguard Worker* an `application` built with the `bin3` compiler and linking a couple libraries 18*9e94795aSAndroid Build Coastguard Worker* a pure aggregation `continer.zip` that merely bundles files together, and 19*9e94795aSAndroid Build Coastguard Worker* an apex file (more like an apk file) with some binaries and libraries. 20*9e94795aSAndroid Build Coastguard Worker 21*9e94795aSAndroid Build Coastguard WorkerThe testdata starts with a `firstparty/` version containng only first-party 22*9e94795aSAndroid Build Coastguard Workerlicenses, and each subsequent directory introduces more restrictive conditions: 23*9e94795aSAndroid Build Coastguard Worker 24*9e94795aSAndroid Build Coastguard Worker* `notice/` starts with `firstparty/` adds third-party notice conditions 25*9e94795aSAndroid Build Coastguard Worker* `reciprocal/` starts with `notice/` and adds some reciprocal conditions 26*9e94795aSAndroid Build Coastguard Worker* `restricted/` starts with `reciprocal/` and adds some restricted conditions 27*9e94795aSAndroid Build Coastguard Worker* `proprietary/` starts with `restricted/` and add some privacy conditions 28*9e94795aSAndroid Build Coastguard Worker 29*9e94795aSAndroid Build Coastguard Worker#### a `lib/` directory with some libraries 30*9e94795aSAndroid Build Coastguard Worker 31*9e94795aSAndroid Build Coastguard Worker```dot 32*9e94795aSAndroid Build Coastguard Workerstrict digraph { 33*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 34*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 35*9e94795aSAndroid Build Coastguard Worker libc [label="lib/libc.a.meta_lic"]; 36*9e94795aSAndroid Build Coastguard Worker libd [label="lib/libd.so.meta_lic"]; 37*9e94795aSAndroid Build Coastguard Worker} 38*9e94795aSAndroid Build Coastguard Worker``` 39*9e94795aSAndroid Build Coastguard Worker 40*9e94795aSAndroid Build Coastguard Worker#### a `bin/` directory with some executables 41*9e94795aSAndroid Build Coastguard Worker 42*9e94795aSAndroid Build Coastguard Workerstrict digraph { 43*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 44*9e94795aSAndroid Build Coastguard Worker bin1 [label="bin/bin1.meta_lic"]; 45*9e94795aSAndroid Build Coastguard Worker bin2 [label="bin/bin2.meta_lic"]; 46*9e94795aSAndroid Build Coastguard Worker bin3 [label="bin/bin3.meta_lic\ntoolchain"]; 47*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 48*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 49*9e94795aSAndroid Build Coastguard Worker libc [label="lib/libc.a.meta_lic"]; 50*9e94795aSAndroid Build Coastguard Worker libd [label="lib/libd.so.meta_lic"]; 51*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 52*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 53*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 54*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 55*9e94795aSAndroid Build Coastguard Worker {rank=same; bin1 bin2 bin3} 56*9e94795aSAndroid Build Coastguard Worker} 57*9e94795aSAndroid Build Coastguard Worker 58*9e94795aSAndroid Build Coastguard Worker#### an `application` built with the `bin3` compiler and linking a couple libraries 59*9e94795aSAndroid Build Coastguard Worker 60*9e94795aSAndroid Build Coastguard Worker```dot 61*9e94795aSAndroid Build Coastguard Workerstrict digraph { 62*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 63*9e94795aSAndroid Build Coastguard Worker app [label="application.meta_lic"]; 64*9e94795aSAndroid Build Coastguard Worker bin3 [label="bin/bin3.meta_lic"]; 65*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 66*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 67*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 68*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 69*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 70*9e94795aSAndroid Build Coastguard Worker {rank=same; app} 71*9e94795aSAndroid Build Coastguard Worker} 72*9e94795aSAndroid Build Coastguard Worker``` 73*9e94795aSAndroid Build Coastguard Worker 74*9e94795aSAndroid Build Coastguard Worker#### a pure aggregation `container.zip` that merely bundles files together 75*9e94795aSAndroid Build Coastguard Worker 76*9e94795aSAndroid Build Coastguard Worker```dot 77*9e94795aSAndroid Build Coastguard Workerstrict digraph { 78*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 79*9e94795aSAndroid Build Coastguard Worker bin1 [label="bin/bin1.meta_lic"]; 80*9e94795aSAndroid Build Coastguard Worker bin2 [label="bin/bin2.meta_lic"]; 81*9e94795aSAndroid Build Coastguard Worker container [label="container.zip.meta_lic"]; 82*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 83*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 84*9e94795aSAndroid Build Coastguard Worker libc [label="lib/libc.a.meta_lic"]; 85*9e94795aSAndroid Build Coastguard Worker libd [label="lib/libd.so.meta_lic"]; 86*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 87*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 88*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 89*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 90*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 91*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 92*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 93*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 94*9e94795aSAndroid Build Coastguard Worker {rank=same; container} 95*9e94795aSAndroid Build Coastguard Worker} 96*9e94795aSAndroid Build Coastguard Worker``` 97*9e94795aSAndroid Build Coastguard Worker 98*9e94795aSAndroid Build Coastguard Worker#### an apex file (more like an apk file) with some binaries and libraries 99*9e94795aSAndroid Build Coastguard Worker 100*9e94795aSAndroid Build Coastguard Worker```dot 101*9e94795aSAndroid Build Coastguard Workerstrict digraph { 102*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 103*9e94795aSAndroid Build Coastguard Worker apex [label="highest.apex.meta_lic"]; 104*9e94795aSAndroid Build Coastguard Worker bin1 [label="bin/bin1.meta_lic"]; 105*9e94795aSAndroid Build Coastguard Worker bin2 [label="bin/bin2.meta_lic"]; 106*9e94795aSAndroid Build Coastguard Worker bin3 [label="bin/bin3.meta_lic"]; 107*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 108*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 109*9e94795aSAndroid Build Coastguard Worker libc [label="lib/libc.a.meta_lic"]; 110*9e94795aSAndroid Build Coastguard Worker libd [label="lib/libd.so.meta_lic"]; 111*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 112*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 113*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 114*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 115*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 116*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 117*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 118*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 119*9e94795aSAndroid Build Coastguard Worker {rank=same; apex} 120*9e94795aSAndroid Build Coastguard Worker} 121*9e94795aSAndroid Build Coastguard Worker``` 122*9e94795aSAndroid Build Coastguard Worker 123*9e94795aSAndroid Build Coastguard Worker#### the whole build graph 124*9e94795aSAndroid Build Coastguard Worker 125*9e94795aSAndroid Build Coastguard Worker```dot 126*9e94795aSAndroid Build Coastguard Workerstrict digraph { 127*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 128*9e94795aSAndroid Build Coastguard Worker apex [label="highest.apex.meta_lic"]; 129*9e94795aSAndroid Build Coastguard Worker app [label="application.meta_lic"]; 130*9e94795aSAndroid Build Coastguard Worker bin1 [label="bin/bin1.meta_lic"]; 131*9e94795aSAndroid Build Coastguard Worker bin2 [label="bin/bin2.meta_lic"]; 132*9e94795aSAndroid Build Coastguard Worker bin3 [label="bin/bin3.meta_lic"]; 133*9e94795aSAndroid Build Coastguard Worker container [label="container.zip.meta_lic"]; 134*9e94795aSAndroid Build Coastguard Worker liba [label="lib/liba.so.meta_lic"]; 135*9e94795aSAndroid Build Coastguard Worker libb [label="lib/libb.so.meta_lic"]; 136*9e94795aSAndroid Build Coastguard Worker libc [label="lib/libc.a.meta_lic"]; 137*9e94795aSAndroid Build Coastguard Worker libd [label="lib/libd.so.meta_lic"]; 138*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 139*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 140*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 141*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 142*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 143*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 144*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 145*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 146*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 147*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 148*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 149*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 150*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 151*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 152*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 153*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 154*9e94795aSAndroid Build Coastguard Worker} 155*9e94795aSAndroid Build Coastguard Worker``` 156*9e94795aSAndroid Build Coastguard Worker 157*9e94795aSAndroid Build Coastguard Worker 158*9e94795aSAndroid Build Coastguard Worker### firstparty/ testdata starts with all first-party licensing 159*9e94795aSAndroid Build Coastguard Worker 160*9e94795aSAndroid Build Coastguard Worker```dot 161*9e94795aSAndroid Build Coastguard Workerstrict digraph { 162*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 163*9e94795aSAndroid Build Coastguard Worker app [label="firstparty/application.meta_lic"]; 164*9e94795aSAndroid Build Coastguard Worker bin1 [label="firstparty/bin/bin1.meta_lic"]; 165*9e94795aSAndroid Build Coastguard Worker bin2 [label="firstparty/bin/bin2.meta_lic"]; 166*9e94795aSAndroid Build Coastguard Worker bin3 [label="firstparty/bin/bin3.meta_lic"]; 167*9e94795aSAndroid Build Coastguard Worker container [label="firstparty/container.zip.meta_lic"]; 168*9e94795aSAndroid Build Coastguard Worker apex [label="firstparty/highest.apex.meta_lic"]; 169*9e94795aSAndroid Build Coastguard Worker liba [label="firstparty/lib/liba.so.meta_lic"]; 170*9e94795aSAndroid Build Coastguard Worker libb [label="firstparty/lib/libb.so.meta_lic"]; 171*9e94795aSAndroid Build Coastguard Worker libc [label="firstparty/lib/libc.a.meta_lic"]; 172*9e94795aSAndroid Build Coastguard Worker lib [label="firstparty/lib/libd.so.meta_lic"]; 173*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 174*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 175*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 176*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 177*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 178*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 179*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 180*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 181*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 182*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 183*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 184*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 185*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 186*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 187*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 188*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 189*9e94795aSAndroid Build Coastguard Worker} 190*9e94795aSAndroid Build Coastguard Worker``` 191*9e94795aSAndroid Build Coastguard Worker 192*9e94795aSAndroid Build Coastguard Worker### notice/ testdata introduces third-party notice conditions 193*9e94795aSAndroid Build Coastguard Worker 194*9e94795aSAndroid Build Coastguard Worker```dot 195*9e94795aSAndroid Build Coastguard Workerstrict digraph { 196*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 197*9e94795aSAndroid Build Coastguard Worker app [label="notice/application.meta_lic"]; 198*9e94795aSAndroid Build Coastguard Worker bin1 [label="notice/bin/bin1.meta_lic"]; 199*9e94795aSAndroid Build Coastguard Worker bin2 [label="notice/bin/bin2.meta_lic"]; 200*9e94795aSAndroid Build Coastguard Worker bin3 [label="notice/bin/bin3.meta_lic\nnotice"]; 201*9e94795aSAndroid Build Coastguard Worker container [label="notice/container.zip.meta_lic"]; 202*9e94795aSAndroid Build Coastguard Worker apex [label="notice/highest.apex.meta_lic"]; 203*9e94795aSAndroid Build Coastguard Worker liba [label="notice/lib/liba.so.meta_lic\nnotice"]; 204*9e94795aSAndroid Build Coastguard Worker libb [label="notice/lib/libb.so.meta_lic"]; 205*9e94795aSAndroid Build Coastguard Worker libc [label="notice/lib/libc.a.meta_lic\nnotice"]; 206*9e94795aSAndroid Build Coastguard Worker libd [label="notice/lib/libd.so.meta_lic\nnotice"]; 207*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 208*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 209*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 210*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 211*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 212*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 213*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 214*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 215*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 216*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 217*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 218*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 219*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 220*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 221*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 222*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 223*9e94795aSAndroid Build Coastguard Worker} 224*9e94795aSAndroid Build Coastguard Worker``` 225*9e94795aSAndroid Build Coastguard Worker 226*9e94795aSAndroid Build Coastguard Worker### reciprocal/ testdata introduces third-party reciprocal sharing conditions 227*9e94795aSAndroid Build Coastguard Worker 228*9e94795aSAndroid Build Coastguard Worker```dot 229*9e94795aSAndroid Build Coastguard Workerstrict digraph { 230*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 231*9e94795aSAndroid Build Coastguard Worker app [label="reciprocal/application.meta_lic"]; 232*9e94795aSAndroid Build Coastguard Worker bin1 [label="reciprocal/bin/bin1.meta_lic"]; 233*9e94795aSAndroid Build Coastguard Worker bin2 [label="reciprocal/bin/bin2.meta_lic"]; 234*9e94795aSAndroid Build Coastguard Worker bin3 [label="reciprocal/bin/bin3.meta_lic\nnotice"]; 235*9e94795aSAndroid Build Coastguard Worker container [label="reciprocal/container.zip.meta_lic"]; 236*9e94795aSAndroid Build Coastguard Worker apex [label="reciprocal/highest.apex.meta_lic"]; 237*9e94795aSAndroid Build Coastguard Worker liba [label="reciprocal/lib/liba.so.meta_lic\nreciprocal"]; 238*9e94795aSAndroid Build Coastguard Worker libb [label="reciprocal/lib/libb.so.meta_lic"]; 239*9e94795aSAndroid Build Coastguard Worker libc [label="reciprocal/lib/libc.a.meta_lic\nreciprocal"]; 240*9e94795aSAndroid Build Coastguard Worker libd [label="reciprocal/lib/libd.so.meta_lic\nnotice"]; 241*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 242*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 243*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 244*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 245*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 246*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 247*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 248*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 249*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 250*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 251*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 252*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 253*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 254*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 255*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 256*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 257*9e94795aSAndroid Build Coastguard Worker} 258*9e94795aSAndroid Build Coastguard Worker``` 259*9e94795aSAndroid Build Coastguard Worker 260*9e94795aSAndroid Build Coastguard Worker### restricted/ testdata introduces restricted source sharing conditions 261*9e94795aSAndroid Build Coastguard Worker 262*9e94795aSAndroid Build Coastguard Worker```dot 263*9e94795aSAndroid Build Coastguard Workerstrict digraph { 264*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 265*9e94795aSAndroid Build Coastguard Worker app [label="restricted/application.meta_lic"]; 266*9e94795aSAndroid Build Coastguard Worker bin1 [label="restricted/bin/bin1.meta_lic"]; 267*9e94795aSAndroid Build Coastguard Worker bin2 [label="restricted/bin/bin2.meta_lic"]; 268*9e94795aSAndroid Build Coastguard Worker bin3 [label="restricted/bin/bin3.meta_lic\nrestricted"]; 269*9e94795aSAndroid Build Coastguard Worker container [label="restricted/container.zip.meta_lic"]; 270*9e94795aSAndroid Build Coastguard Worker apex [label="restricted/highest.apex.meta_lic"]; 271*9e94795aSAndroid Build Coastguard Worker liba [label="restricted/lib/liba.so.meta_lic\nrestricted"]; 272*9e94795aSAndroid Build Coastguard Worker libb [label="restricted/lib/libb.so.meta_lic\nrestricted"]; 273*9e94795aSAndroid Build Coastguard Worker libc [label="restricted/lib/libc.a.meta_lic\nreciprocal"]; 274*9e94795aSAndroid Build Coastguard Worker libd [label="restricted/lib/libd.so.meta_lic\nnotice"]; 275*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 276*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 277*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 278*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 279*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 280*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 281*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 282*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 283*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 284*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 285*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 286*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 287*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 288*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 289*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 290*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 291*9e94795aSAndroid Build Coastguard Worker} 292*9e94795aSAndroid Build Coastguard Worker``` 293*9e94795aSAndroid Build Coastguard Worker 294*9e94795aSAndroid Build Coastguard Worker### proprietary/ testdata introduces privacy conditions 295*9e94795aSAndroid Build Coastguard Worker 296*9e94795aSAndroid Build Coastguard Worker```dot 297*9e94795aSAndroid Build Coastguard Workerstrict digraph { 298*9e94795aSAndroid Build Coastguard Worker rankdir=LR; 299*9e94795aSAndroid Build Coastguard Worker app [label="proprietary/application.meta_lic"]; 300*9e94795aSAndroid Build Coastguard Worker bin1 [label="proprietary/bin/bin1.meta_lic"]; 301*9e94795aSAndroid Build Coastguard Worker bin2 [label="proprietary/bin/bin2.meta_lic\nby_exception_only\nproprietary"]; 302*9e94795aSAndroid Build Coastguard Worker bin3 [label="proprietary/bin/bin3.meta_lic\nrestricted"]; 303*9e94795aSAndroid Build Coastguard Worker container [label="proprietary/container.zip.meta_lic"]; 304*9e94795aSAndroid Build Coastguard Worker apex [label="proprietary/highest.apex.meta_lic"]; 305*9e94795aSAndroid Build Coastguard Worker liba [label="proprietary/lib/liba.so.meta_lic\nby_exception_only\nproprietary"]; 306*9e94795aSAndroid Build Coastguard Worker libb [label="proprietary/lib/libb.so.meta_lic\nrestricted"]; 307*9e94795aSAndroid Build Coastguard Worker libc [label="proprietary/lib/libc.a.meta_lic\nby_exception_only\nproprietary"]; 308*9e94795aSAndroid Build Coastguard Worker libd [label="proprietary/lib/libd.so.meta_lic\nnotice"]; 309*9e94795aSAndroid Build Coastguard Worker app -> bin3 [label="toolchain"]; 310*9e94795aSAndroid Build Coastguard Worker app -> liba [label="static"]; 311*9e94795aSAndroid Build Coastguard Worker app -> libb [label="dynamic"]; 312*9e94795aSAndroid Build Coastguard Worker bin1 -> liba [label="static"]; 313*9e94795aSAndroid Build Coastguard Worker bin1 -> libc [label="static"]; 314*9e94795aSAndroid Build Coastguard Worker bin2 -> libb [label="dynamic"]; 315*9e94795aSAndroid Build Coastguard Worker bin2 -> libd [label="dynamic"]; 316*9e94795aSAndroid Build Coastguard Worker container -> bin1 [label="static"]; 317*9e94795aSAndroid Build Coastguard Worker container -> bin2 [label="static"]; 318*9e94795aSAndroid Build Coastguard Worker container -> liba [label="static"]; 319*9e94795aSAndroid Build Coastguard Worker container -> libb [label="static"]; 320*9e94795aSAndroid Build Coastguard Worker apex -> bin1 [label="static"]; 321*9e94795aSAndroid Build Coastguard Worker apex -> bin2 [label="static"]; 322*9e94795aSAndroid Build Coastguard Worker apex -> liba [label="static"]; 323*9e94795aSAndroid Build Coastguard Worker apex -> libb [label="static"]; 324*9e94795aSAndroid Build Coastguard Worker {rank=same; app container apex} 325*9e94795aSAndroid Build Coastguard Worker} 326*9e94795aSAndroid Build Coastguard Worker``` 327