1*333d2b36SAndroid Build Coastguard Worker// Copyright (C) 2019 The Android Open Source Project 2*333d2b36SAndroid Build Coastguard Worker// 3*333d2b36SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 4*333d2b36SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 5*333d2b36SAndroid Build Coastguard Worker// You may obtain a copy of the License at 6*333d2b36SAndroid Build Coastguard Worker// 7*333d2b36SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 8*333d2b36SAndroid Build Coastguard Worker// 9*333d2b36SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 10*333d2b36SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 11*333d2b36SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12*333d2b36SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 13*333d2b36SAndroid Build Coastguard Worker// limitations under the License. 14*333d2b36SAndroid Build Coastguard Worker 15*333d2b36SAndroid Build Coastguard Workerpackage sdk 16*333d2b36SAndroid Build Coastguard Worker 17*333d2b36SAndroid Build Coastguard Workerimport ( 18*333d2b36SAndroid Build Coastguard Worker "fmt" 19*333d2b36SAndroid Build Coastguard Worker "testing" 20*333d2b36SAndroid Build Coastguard Worker 21*333d2b36SAndroid Build Coastguard Worker "android/soong/android" 22*333d2b36SAndroid Build Coastguard Worker "android/soong/cc" 23*333d2b36SAndroid Build Coastguard Worker) 24*333d2b36SAndroid Build Coastguard Worker 25*333d2b36SAndroid Build Coastguard Workervar ccTestFs = android.MockFS{ 26*333d2b36SAndroid Build Coastguard Worker "Test.cpp": nil, 27*333d2b36SAndroid Build Coastguard Worker "myinclude/Test.h": nil, 28*333d2b36SAndroid Build Coastguard Worker "myinclude-android/AndroidTest.h": nil, 29*333d2b36SAndroid Build Coastguard Worker "myinclude-host/HostTest.h": nil, 30*333d2b36SAndroid Build Coastguard Worker "arm64/include/Arm64Test.h": nil, 31*333d2b36SAndroid Build Coastguard Worker "libfoo.so": nil, 32*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl": nil, 33*333d2b36SAndroid Build Coastguard Worker "some/where/stubslib.map.txt": nil, 34*333d2b36SAndroid Build Coastguard Worker} 35*333d2b36SAndroid Build Coastguard Worker 36*333d2b36SAndroid Build Coastguard Worker// Adds a native bridge target to the configured list of targets. 37*333d2b36SAndroid Build Coastguard Workervar prepareForTestWithNativeBridgeTarget = android.FixtureModifyConfig(func(config android.Config) { 38*333d2b36SAndroid Build Coastguard Worker config.Targets[android.Android] = append(config.Targets[android.Android], android.Target{ 39*333d2b36SAndroid Build Coastguard Worker Os: android.Android, 40*333d2b36SAndroid Build Coastguard Worker Arch: android.Arch{ 41*333d2b36SAndroid Build Coastguard Worker ArchType: android.Arm64, 42*333d2b36SAndroid Build Coastguard Worker ArchVariant: "armv8-a", 43*333d2b36SAndroid Build Coastguard Worker CpuVariant: "cpu", 44*333d2b36SAndroid Build Coastguard Worker Abi: nil, 45*333d2b36SAndroid Build Coastguard Worker ArchFeatures: nil, 46*333d2b36SAndroid Build Coastguard Worker }, 47*333d2b36SAndroid Build Coastguard Worker NativeBridge: android.NativeBridgeEnabled, 48*333d2b36SAndroid Build Coastguard Worker NativeBridgeHostArchName: "x86_64", 49*333d2b36SAndroid Build Coastguard Worker NativeBridgeRelativePath: "native_bridge", 50*333d2b36SAndroid Build Coastguard Worker }) 51*333d2b36SAndroid Build Coastguard Worker}) 52*333d2b36SAndroid Build Coastguard Worker 53*333d2b36SAndroid Build Coastguard Workerfunc testSdkWithCc(t *testing.T, bp string) *android.TestResult { 54*333d2b36SAndroid Build Coastguard Worker t.Helper() 55*333d2b36SAndroid Build Coastguard Worker return testSdkWithFs(t, bp, ccTestFs) 56*333d2b36SAndroid Build Coastguard Worker} 57*333d2b36SAndroid Build Coastguard Worker 58*333d2b36SAndroid Build Coastguard Worker// Contains tests for SDK members provided by the cc package. 59*333d2b36SAndroid Build Coastguard Worker 60*333d2b36SAndroid Build Coastguard Workerfunc TestSingleDeviceOsAssumption(t *testing.T) { 61*333d2b36SAndroid Build Coastguard Worker // Mock a module with DeviceSupported() == true. 62*333d2b36SAndroid Build Coastguard Worker s := &sdk{} 63*333d2b36SAndroid Build Coastguard Worker android.InitAndroidArchModule(s, android.DeviceSupported, android.MultilibCommon) 64*333d2b36SAndroid Build Coastguard Worker 65*333d2b36SAndroid Build Coastguard Worker osTypes := s.getPossibleOsTypes() 66*333d2b36SAndroid Build Coastguard Worker if len(osTypes) != 1 { 67*333d2b36SAndroid Build Coastguard Worker // The snapshot generation assumes there is a single device OS. If more are 68*333d2b36SAndroid Build Coastguard Worker // added it might need to disable them by default, like it does for host 69*333d2b36SAndroid Build Coastguard Worker // OS'es. 70*333d2b36SAndroid Build Coastguard Worker t.Errorf("expected a single device OS, got %v", osTypes) 71*333d2b36SAndroid Build Coastguard Worker } 72*333d2b36SAndroid Build Coastguard Worker} 73*333d2b36SAndroid Build Coastguard Worker 74*333d2b36SAndroid Build Coastguard Workerfunc TestSdkIsCompileMultilibBoth(t *testing.T) { 75*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 76*333d2b36SAndroid Build Coastguard Worker sdk { 77*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 78*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sdkmember"], 79*333d2b36SAndroid Build Coastguard Worker } 80*333d2b36SAndroid Build Coastguard Worker 81*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 82*333d2b36SAndroid Build Coastguard Worker name: "sdkmember", 83*333d2b36SAndroid Build Coastguard Worker srcs: ["Test.cpp"], 84*333d2b36SAndroid Build Coastguard Worker stl: "none", 85*333d2b36SAndroid Build Coastguard Worker } 86*333d2b36SAndroid Build Coastguard Worker `) 87*333d2b36SAndroid Build Coastguard Worker 88*333d2b36SAndroid Build Coastguard Worker armOutput := result.Module("sdkmember", "android_arm_armv7-a-neon_shared").(*cc.Module).OutputFile() 89*333d2b36SAndroid Build Coastguard Worker arm64Output := result.Module("sdkmember", "android_arm64_armv8-a_shared").(*cc.Module).OutputFile() 90*333d2b36SAndroid Build Coastguard Worker 91*333d2b36SAndroid Build Coastguard Worker var inputs []string 92*333d2b36SAndroid Build Coastguard Worker buildParams := result.Module("mysdk", android.CommonOS.Name).BuildParamsForTests() 93*333d2b36SAndroid Build Coastguard Worker for _, bp := range buildParams { 94*333d2b36SAndroid Build Coastguard Worker if bp.Input != nil { 95*333d2b36SAndroid Build Coastguard Worker inputs = append(inputs, bp.Input.String()) 96*333d2b36SAndroid Build Coastguard Worker } 97*333d2b36SAndroid Build Coastguard Worker } 98*333d2b36SAndroid Build Coastguard Worker 99*333d2b36SAndroid Build Coastguard Worker // ensure that both 32/64 outputs are inputs of the sdk snapshot 100*333d2b36SAndroid Build Coastguard Worker ensureListContains(t, inputs, armOutput.String()) 101*333d2b36SAndroid Build Coastguard Worker ensureListContains(t, inputs, arm64Output.String()) 102*333d2b36SAndroid Build Coastguard Worker} 103*333d2b36SAndroid Build Coastguard Worker 104*333d2b36SAndroid Build Coastguard Workerfunc TestSdkCompileMultilibOverride(t *testing.T) { 105*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 106*333d2b36SAndroid Build Coastguard Worker sdk { 107*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 108*333d2b36SAndroid Build Coastguard Worker host_supported: true, 109*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sdkmember"], 110*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 111*333d2b36SAndroid Build Coastguard Worker } 112*333d2b36SAndroid Build Coastguard Worker 113*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 114*333d2b36SAndroid Build Coastguard Worker name: "sdkmember", 115*333d2b36SAndroid Build Coastguard Worker host_supported: true, 116*333d2b36SAndroid Build Coastguard Worker srcs: ["Test.cpp"], 117*333d2b36SAndroid Build Coastguard Worker stl: "none", 118*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 119*333d2b36SAndroid Build Coastguard Worker } 120*333d2b36SAndroid Build Coastguard Worker `) 121*333d2b36SAndroid Build Coastguard Worker 122*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 123*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 124*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 125*333d2b36SAndroid Build Coastguard Worker 126*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 127*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 128*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_sdkmember"], 129*333d2b36SAndroid Build Coastguard Worker} 130*333d2b36SAndroid Build Coastguard Worker 131*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 132*333d2b36SAndroid Build Coastguard Worker name: "sdkmember", 133*333d2b36SAndroid Build Coastguard Worker prefer: false, 134*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 135*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 136*333d2b36SAndroid Build Coastguard Worker host_supported: true, 137*333d2b36SAndroid Build Coastguard Worker stl: "none", 138*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 139*333d2b36SAndroid Build Coastguard Worker target: { 140*333d2b36SAndroid Build Coastguard Worker host: { 141*333d2b36SAndroid Build Coastguard Worker enabled: false, 142*333d2b36SAndroid Build Coastguard Worker }, 143*333d2b36SAndroid Build Coastguard Worker android_arm64: { 144*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/sdkmember.so"], 145*333d2b36SAndroid Build Coastguard Worker }, 146*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 147*333d2b36SAndroid Build Coastguard Worker enabled: true, 148*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/sdkmember.so"], 149*333d2b36SAndroid Build Coastguard Worker }, 150*333d2b36SAndroid Build Coastguard Worker }, 151*333d2b36SAndroid Build Coastguard Worker strip: { 152*333d2b36SAndroid Build Coastguard Worker none: true, 153*333d2b36SAndroid Build Coastguard Worker }, 154*333d2b36SAndroid Build Coastguard Worker} 155*333d2b36SAndroid Build Coastguard Worker`), 156*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 157*333d2b36SAndroid Build Coastguard Worker.intermediates/sdkmember/android_arm64_armv8-a_shared/sdkmember.so -> android/arm64/lib/sdkmember.so 158*333d2b36SAndroid Build Coastguard Worker.intermediates/sdkmember/linux_glibc_x86_64_shared/sdkmember.so -> linux_glibc/x86_64/lib/sdkmember.so 159*333d2b36SAndroid Build Coastguard Worker`)) 160*333d2b36SAndroid Build Coastguard Worker} 161*333d2b36SAndroid Build Coastguard Worker 162*333d2b36SAndroid Build Coastguard Worker// Make sure the sdk can use host specific cc libraries static/shared and both. 163*333d2b36SAndroid Build Coastguard Workerfunc TestHostSdkWithCc(t *testing.T) { 164*333d2b36SAndroid Build Coastguard Worker testSdkWithCc(t, ` 165*333d2b36SAndroid Build Coastguard Worker sdk { 166*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 167*333d2b36SAndroid Build Coastguard Worker device_supported: false, 168*333d2b36SAndroid Build Coastguard Worker host_supported: true, 169*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sdkshared"], 170*333d2b36SAndroid Build Coastguard Worker native_static_libs: ["sdkstatic"], 171*333d2b36SAndroid Build Coastguard Worker } 172*333d2b36SAndroid Build Coastguard Worker 173*333d2b36SAndroid Build Coastguard Worker cc_library_host_shared { 174*333d2b36SAndroid Build Coastguard Worker name: "sdkshared", 175*333d2b36SAndroid Build Coastguard Worker stl: "none", 176*333d2b36SAndroid Build Coastguard Worker } 177*333d2b36SAndroid Build Coastguard Worker 178*333d2b36SAndroid Build Coastguard Worker cc_library_host_static { 179*333d2b36SAndroid Build Coastguard Worker name: "sdkstatic", 180*333d2b36SAndroid Build Coastguard Worker stl: "none", 181*333d2b36SAndroid Build Coastguard Worker } 182*333d2b36SAndroid Build Coastguard Worker `) 183*333d2b36SAndroid Build Coastguard Worker} 184*333d2b36SAndroid Build Coastguard Worker 185*333d2b36SAndroid Build Coastguard Worker// Make sure the sdk can use cc libraries static/shared and both. 186*333d2b36SAndroid Build Coastguard Workerfunc TestSdkWithCc(t *testing.T) { 187*333d2b36SAndroid Build Coastguard Worker testSdkWithCc(t, ` 188*333d2b36SAndroid Build Coastguard Worker sdk { 189*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 190*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sdkshared", "sdkboth1"], 191*333d2b36SAndroid Build Coastguard Worker native_static_libs: ["sdkstatic", "sdkboth2"], 192*333d2b36SAndroid Build Coastguard Worker } 193*333d2b36SAndroid Build Coastguard Worker 194*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 195*333d2b36SAndroid Build Coastguard Worker name: "sdkshared", 196*333d2b36SAndroid Build Coastguard Worker stl: "none", 197*333d2b36SAndroid Build Coastguard Worker } 198*333d2b36SAndroid Build Coastguard Worker 199*333d2b36SAndroid Build Coastguard Worker cc_library_static { 200*333d2b36SAndroid Build Coastguard Worker name: "sdkstatic", 201*333d2b36SAndroid Build Coastguard Worker stl: "none", 202*333d2b36SAndroid Build Coastguard Worker } 203*333d2b36SAndroid Build Coastguard Worker 204*333d2b36SAndroid Build Coastguard Worker cc_library { 205*333d2b36SAndroid Build Coastguard Worker name: "sdkboth1", 206*333d2b36SAndroid Build Coastguard Worker stl: "none", 207*333d2b36SAndroid Build Coastguard Worker } 208*333d2b36SAndroid Build Coastguard Worker 209*333d2b36SAndroid Build Coastguard Worker cc_library { 210*333d2b36SAndroid Build Coastguard Worker name: "sdkboth2", 211*333d2b36SAndroid Build Coastguard Worker stl: "none", 212*333d2b36SAndroid Build Coastguard Worker } 213*333d2b36SAndroid Build Coastguard Worker `) 214*333d2b36SAndroid Build Coastguard Worker} 215*333d2b36SAndroid Build Coastguard Worker 216*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithObject(t *testing.T) { 217*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 218*333d2b36SAndroid Build Coastguard Worker sdk { 219*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 220*333d2b36SAndroid Build Coastguard Worker native_objects: ["crtobj"], 221*333d2b36SAndroid Build Coastguard Worker } 222*333d2b36SAndroid Build Coastguard Worker 223*333d2b36SAndroid Build Coastguard Worker cc_object { 224*333d2b36SAndroid Build Coastguard Worker name: "crtobj", 225*333d2b36SAndroid Build Coastguard Worker stl: "none", 226*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 227*333d2b36SAndroid Build Coastguard Worker sanitize: { 228*333d2b36SAndroid Build Coastguard Worker never: true, 229*333d2b36SAndroid Build Coastguard Worker }, 230*333d2b36SAndroid Build Coastguard Worker } 231*333d2b36SAndroid Build Coastguard Worker `) 232*333d2b36SAndroid Build Coastguard Worker 233*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 234*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 235*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 236*333d2b36SAndroid Build Coastguard Worker 237*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 238*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 239*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_crtobj"], 240*333d2b36SAndroid Build Coastguard Worker} 241*333d2b36SAndroid Build Coastguard Worker 242*333d2b36SAndroid Build Coastguard Workercc_prebuilt_object { 243*333d2b36SAndroid Build Coastguard Worker name: "crtobj", 244*333d2b36SAndroid Build Coastguard Worker prefer: false, 245*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 246*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 247*333d2b36SAndroid Build Coastguard Worker stl: "none", 248*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 249*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 250*333d2b36SAndroid Build Coastguard Worker sanitize: { 251*333d2b36SAndroid Build Coastguard Worker never: true, 252*333d2b36SAndroid Build Coastguard Worker }, 253*333d2b36SAndroid Build Coastguard Worker arch: { 254*333d2b36SAndroid Build Coastguard Worker arm64: { 255*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/crtobj.o"], 256*333d2b36SAndroid Build Coastguard Worker }, 257*333d2b36SAndroid Build Coastguard Worker arm: { 258*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/crtobj.o"], 259*333d2b36SAndroid Build Coastguard Worker }, 260*333d2b36SAndroid Build Coastguard Worker }, 261*333d2b36SAndroid Build Coastguard Worker} 262*333d2b36SAndroid Build Coastguard Worker`), 263*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 264*333d2b36SAndroid Build Coastguard Worker.intermediates/crtobj/android_arm64_armv8-a/crtobj.o -> arm64/lib/crtobj.o 265*333d2b36SAndroid Build Coastguard Worker.intermediates/crtobj/android_arm_armv7-a-neon/crtobj.o -> arm/lib/crtobj.o 266*333d2b36SAndroid Build Coastguard Worker`), 267*333d2b36SAndroid Build Coastguard Worker ) 268*333d2b36SAndroid Build Coastguard Worker} 269*333d2b36SAndroid Build Coastguard Worker 270*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcDuplicateHeaders(t *testing.T) { 271*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 272*333d2b36SAndroid Build Coastguard Worker sdk { 273*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 274*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib1", "mynativelib2"], 275*333d2b36SAndroid Build Coastguard Worker } 276*333d2b36SAndroid Build Coastguard Worker 277*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 278*333d2b36SAndroid Build Coastguard Worker name: "mynativelib1", 279*333d2b36SAndroid Build Coastguard Worker srcs: [ 280*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 281*333d2b36SAndroid Build Coastguard Worker ], 282*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 283*333d2b36SAndroid Build Coastguard Worker stl: "none", 284*333d2b36SAndroid Build Coastguard Worker } 285*333d2b36SAndroid Build Coastguard Worker 286*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 287*333d2b36SAndroid Build Coastguard Worker name: "mynativelib2", 288*333d2b36SAndroid Build Coastguard Worker srcs: [ 289*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 290*333d2b36SAndroid Build Coastguard Worker ], 291*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 292*333d2b36SAndroid Build Coastguard Worker stl: "none", 293*333d2b36SAndroid Build Coastguard Worker } 294*333d2b36SAndroid Build Coastguard Worker `) 295*333d2b36SAndroid Build Coastguard Worker 296*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 297*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 298*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 299*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib1/android_arm64_armv8-a_shared/mynativelib1.so -> arm64/lib/mynativelib1.so 300*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib1/android_arm_armv7-a-neon_shared/mynativelib1.so -> arm/lib/mynativelib1.so 301*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib2/android_arm64_armv8-a_shared/mynativelib2.so -> arm64/lib/mynativelib2.so 302*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib2/android_arm_armv7-a-neon_shared/mynativelib2.so -> arm/lib/mynativelib2.so 303*333d2b36SAndroid Build Coastguard Worker`), 304*333d2b36SAndroid Build Coastguard Worker ) 305*333d2b36SAndroid Build Coastguard Worker} 306*333d2b36SAndroid Build Coastguard Worker 307*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcExportGeneratedHeaders(t *testing.T) { 308*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 309*333d2b36SAndroid Build Coastguard Worker sdk { 310*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 311*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 312*333d2b36SAndroid Build Coastguard Worker } 313*333d2b36SAndroid Build Coastguard Worker 314*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 315*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 316*333d2b36SAndroid Build Coastguard Worker srcs: [ 317*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 318*333d2b36SAndroid Build Coastguard Worker ], 319*333d2b36SAndroid Build Coastguard Worker generated_headers: [ 320*333d2b36SAndroid Build Coastguard Worker "generated_foo", 321*333d2b36SAndroid Build Coastguard Worker ], 322*333d2b36SAndroid Build Coastguard Worker export_generated_headers: [ 323*333d2b36SAndroid Build Coastguard Worker "generated_foo", 324*333d2b36SAndroid Build Coastguard Worker ], 325*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 326*333d2b36SAndroid Build Coastguard Worker stl: "none", 327*333d2b36SAndroid Build Coastguard Worker } 328*333d2b36SAndroid Build Coastguard Worker 329*333d2b36SAndroid Build Coastguard Worker genrule { 330*333d2b36SAndroid Build Coastguard Worker name: "generated_foo", 331*333d2b36SAndroid Build Coastguard Worker cmd: "generate-foo", 332*333d2b36SAndroid Build Coastguard Worker out: [ 333*333d2b36SAndroid Build Coastguard Worker "generated_foo/protos/foo/bar.h", 334*333d2b36SAndroid Build Coastguard Worker ], 335*333d2b36SAndroid Build Coastguard Worker export_include_dirs: [ 336*333d2b36SAndroid Build Coastguard Worker ".", 337*333d2b36SAndroid Build Coastguard Worker "protos", 338*333d2b36SAndroid Build Coastguard Worker ], 339*333d2b36SAndroid Build Coastguard Worker } 340*333d2b36SAndroid Build Coastguard Worker `) 341*333d2b36SAndroid Build Coastguard Worker 342*333d2b36SAndroid Build Coastguard Worker // TODO(b/183322862): Remove this and fix the issue. 343*333d2b36SAndroid Build Coastguard Worker errorHandler := android.FixtureExpectsAtLeastOneErrorMatchingPattern(`module source path "snapshot/include_gen/generated_foo/gen/protos" does not exist`) 344*333d2b36SAndroid Build Coastguard Worker 345*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 346*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 347*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 348*333d2b36SAndroid Build Coastguard Worker 349*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 350*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 351*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 352*333d2b36SAndroid Build Coastguard Worker} 353*333d2b36SAndroid Build Coastguard Worker 354*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 355*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 356*333d2b36SAndroid Build Coastguard Worker prefer: false, 357*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 358*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 359*333d2b36SAndroid Build Coastguard Worker stl: "none", 360*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 361*333d2b36SAndroid Build Coastguard Worker export_include_dirs: [ 362*333d2b36SAndroid Build Coastguard Worker "include/myinclude", 363*333d2b36SAndroid Build Coastguard Worker "include_gen/generated_foo/gen", 364*333d2b36SAndroid Build Coastguard Worker "include_gen/generated_foo/gen/protos", 365*333d2b36SAndroid Build Coastguard Worker ], 366*333d2b36SAndroid Build Coastguard Worker arch: { 367*333d2b36SAndroid Build Coastguard Worker arm64: { 368*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.so"], 369*333d2b36SAndroid Build Coastguard Worker }, 370*333d2b36SAndroid Build Coastguard Worker arm: { 371*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 372*333d2b36SAndroid Build Coastguard Worker }, 373*333d2b36SAndroid Build Coastguard Worker }, 374*333d2b36SAndroid Build Coastguard Worker strip: { 375*333d2b36SAndroid Build Coastguard Worker none: true, 376*333d2b36SAndroid Build Coastguard Worker }, 377*333d2b36SAndroid Build Coastguard Worker} 378*333d2b36SAndroid Build Coastguard Worker`), 379*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 380*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 381*333d2b36SAndroid Build Coastguard Worker.intermediates/generated_foo/gen/generated_foo/protos/foo/bar.h -> include_gen/generated_foo/gen/generated_foo/protos/foo/bar.h 382*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> arm64/lib/mynativelib.so 383*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so 384*333d2b36SAndroid Build Coastguard Worker`), 385*333d2b36SAndroid Build Coastguard Worker snapshotTestErrorHandler(checkSnapshotWithoutSource, errorHandler), 386*333d2b36SAndroid Build Coastguard Worker snapshotTestErrorHandler(checkSnapshotWithSourcePreferred, errorHandler), 387*333d2b36SAndroid Build Coastguard Worker snapshotTestErrorHandler(checkSnapshotPreferredWithSource, errorHandler), 388*333d2b36SAndroid Build Coastguard Worker ) 389*333d2b36SAndroid Build Coastguard Worker} 390*333d2b36SAndroid Build Coastguard Worker 391*333d2b36SAndroid Build Coastguard Worker// Verify that when the shared library has some common and some arch specific 392*333d2b36SAndroid Build Coastguard Worker// properties that the generated snapshot is optimized properly. Substruct 393*333d2b36SAndroid Build Coastguard Worker// handling is tested with the sanitize clauses (but note there's a lot of 394*333d2b36SAndroid Build Coastguard Worker// built-in logic in sanitize.go that can affect those flags). 395*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcSharedLibraryCommonProperties(t *testing.T) { 396*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 397*333d2b36SAndroid Build Coastguard Worker sdk { 398*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 399*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 400*333d2b36SAndroid Build Coastguard Worker } 401*333d2b36SAndroid Build Coastguard Worker 402*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 403*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 404*333d2b36SAndroid Build Coastguard Worker srcs: [ 405*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 406*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 407*333d2b36SAndroid Build Coastguard Worker ], 408*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 409*333d2b36SAndroid Build Coastguard Worker sanitize: { 410*333d2b36SAndroid Build Coastguard Worker fuzzer: false, 411*333d2b36SAndroid Build Coastguard Worker integer_overflow: true, 412*333d2b36SAndroid Build Coastguard Worker diag: { undefined: false }, 413*333d2b36SAndroid Build Coastguard Worker }, 414*333d2b36SAndroid Build Coastguard Worker arch: { 415*333d2b36SAndroid Build Coastguard Worker arm64: { 416*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["arm64/include"], 417*333d2b36SAndroid Build Coastguard Worker sanitize: { 418*333d2b36SAndroid Build Coastguard Worker integer_overflow: false, 419*333d2b36SAndroid Build Coastguard Worker }, 420*333d2b36SAndroid Build Coastguard Worker }, 421*333d2b36SAndroid Build Coastguard Worker }, 422*333d2b36SAndroid Build Coastguard Worker stl: "none", 423*333d2b36SAndroid Build Coastguard Worker } 424*333d2b36SAndroid Build Coastguard Worker `) 425*333d2b36SAndroid Build Coastguard Worker 426*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 427*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 428*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 429*333d2b36SAndroid Build Coastguard Worker 430*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 431*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 432*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 433*333d2b36SAndroid Build Coastguard Worker} 434*333d2b36SAndroid Build Coastguard Worker 435*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 436*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 437*333d2b36SAndroid Build Coastguard Worker prefer: false, 438*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 439*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 440*333d2b36SAndroid Build Coastguard Worker stl: "none", 441*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 442*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 443*333d2b36SAndroid Build Coastguard Worker sanitize: { 444*333d2b36SAndroid Build Coastguard Worker fuzzer: false, 445*333d2b36SAndroid Build Coastguard Worker diag: { 446*333d2b36SAndroid Build Coastguard Worker undefined: false, 447*333d2b36SAndroid Build Coastguard Worker }, 448*333d2b36SAndroid Build Coastguard Worker }, 449*333d2b36SAndroid Build Coastguard Worker arch: { 450*333d2b36SAndroid Build Coastguard Worker arm64: { 451*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.so"], 452*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["arm64/include/arm64/include"], 453*333d2b36SAndroid Build Coastguard Worker sanitize: { 454*333d2b36SAndroid Build Coastguard Worker integer_overflow: false, 455*333d2b36SAndroid Build Coastguard Worker }, 456*333d2b36SAndroid Build Coastguard Worker }, 457*333d2b36SAndroid Build Coastguard Worker arm: { 458*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 459*333d2b36SAndroid Build Coastguard Worker sanitize: { 460*333d2b36SAndroid Build Coastguard Worker integer_overflow: true, 461*333d2b36SAndroid Build Coastguard Worker }, 462*333d2b36SAndroid Build Coastguard Worker }, 463*333d2b36SAndroid Build Coastguard Worker }, 464*333d2b36SAndroid Build Coastguard Worker strip: { 465*333d2b36SAndroid Build Coastguard Worker none: true, 466*333d2b36SAndroid Build Coastguard Worker }, 467*333d2b36SAndroid Build Coastguard Worker} 468*333d2b36SAndroid Build Coastguard Worker`), 469*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 470*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 471*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> arm64/lib/mynativelib.so 472*333d2b36SAndroid Build Coastguard Workerarm64/include/Arm64Test.h -> arm64/include/arm64/include/Arm64Test.h 473*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so`), 474*333d2b36SAndroid Build Coastguard Worker ) 475*333d2b36SAndroid Build Coastguard Worker} 476*333d2b36SAndroid Build Coastguard Worker 477*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcBinary(t *testing.T) { 478*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 479*333d2b36SAndroid Build Coastguard Worker module_exports { 480*333d2b36SAndroid Build Coastguard Worker name: "mymodule_exports", 481*333d2b36SAndroid Build Coastguard Worker native_binaries: ["mynativebinary"], 482*333d2b36SAndroid Build Coastguard Worker } 483*333d2b36SAndroid Build Coastguard Worker 484*333d2b36SAndroid Build Coastguard Worker cc_binary { 485*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 486*333d2b36SAndroid Build Coastguard Worker srcs: [ 487*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 488*333d2b36SAndroid Build Coastguard Worker ], 489*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 490*333d2b36SAndroid Build Coastguard Worker } 491*333d2b36SAndroid Build Coastguard Worker `) 492*333d2b36SAndroid Build Coastguard Worker 493*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mymodule_exports", "", 494*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 495*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 496*333d2b36SAndroid Build Coastguard Worker 497*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 498*333d2b36SAndroid Build Coastguard Worker name: "mymodule_exports.contributions", 499*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativebinary"], 500*333d2b36SAndroid Build Coastguard Worker} 501*333d2b36SAndroid Build Coastguard Worker 502*333d2b36SAndroid Build Coastguard Workercc_prebuilt_binary { 503*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 504*333d2b36SAndroid Build Coastguard Worker prefer: false, 505*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 506*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 507*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 508*333d2b36SAndroid Build Coastguard Worker arch: { 509*333d2b36SAndroid Build Coastguard Worker arm64: { 510*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/bin/mynativebinary"], 511*333d2b36SAndroid Build Coastguard Worker }, 512*333d2b36SAndroid Build Coastguard Worker arm: { 513*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/bin/mynativebinary"], 514*333d2b36SAndroid Build Coastguard Worker }, 515*333d2b36SAndroid Build Coastguard Worker }, 516*333d2b36SAndroid Build Coastguard Worker} 517*333d2b36SAndroid Build Coastguard Worker`), 518*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 519*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/android_arm64_armv8-a/mynativebinary -> arm64/bin/mynativebinary 520*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/android_arm_armv7-a-neon/mynativebinary -> arm/bin/mynativebinary 521*333d2b36SAndroid Build Coastguard Worker`), 522*333d2b36SAndroid Build Coastguard Worker ) 523*333d2b36SAndroid Build Coastguard Worker} 524*333d2b36SAndroid Build Coastguard Worker 525*333d2b36SAndroid Build Coastguard Workerfunc TestMultipleHostOsTypesSnapshotWithCcBinary(t *testing.T) { 526*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 527*333d2b36SAndroid Build Coastguard Worker module_exports { 528*333d2b36SAndroid Build Coastguard Worker name: "myexports", 529*333d2b36SAndroid Build Coastguard Worker device_supported: false, 530*333d2b36SAndroid Build Coastguard Worker host_supported: true, 531*333d2b36SAndroid Build Coastguard Worker native_binaries: ["mynativebinary"], 532*333d2b36SAndroid Build Coastguard Worker target: { 533*333d2b36SAndroid Build Coastguard Worker windows: { 534*333d2b36SAndroid Build Coastguard Worker enabled: true, 535*333d2b36SAndroid Build Coastguard Worker }, 536*333d2b36SAndroid Build Coastguard Worker }, 537*333d2b36SAndroid Build Coastguard Worker } 538*333d2b36SAndroid Build Coastguard Worker 539*333d2b36SAndroid Build Coastguard Worker cc_binary { 540*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 541*333d2b36SAndroid Build Coastguard Worker device_supported: false, 542*333d2b36SAndroid Build Coastguard Worker host_supported: true, 543*333d2b36SAndroid Build Coastguard Worker srcs: [ 544*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 545*333d2b36SAndroid Build Coastguard Worker ], 546*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 547*333d2b36SAndroid Build Coastguard Worker stl: "none", 548*333d2b36SAndroid Build Coastguard Worker target: { 549*333d2b36SAndroid Build Coastguard Worker windows: { 550*333d2b36SAndroid Build Coastguard Worker enabled: true, 551*333d2b36SAndroid Build Coastguard Worker }, 552*333d2b36SAndroid Build Coastguard Worker }, 553*333d2b36SAndroid Build Coastguard Worker } 554*333d2b36SAndroid Build Coastguard Worker `) 555*333d2b36SAndroid Build Coastguard Worker 556*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 557*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 558*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 559*333d2b36SAndroid Build Coastguard Worker 560*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 561*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 562*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativebinary"], 563*333d2b36SAndroid Build Coastguard Worker} 564*333d2b36SAndroid Build Coastguard Worker 565*333d2b36SAndroid Build Coastguard Workercc_prebuilt_binary { 566*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 567*333d2b36SAndroid Build Coastguard Worker prefer: false, 568*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 569*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 570*333d2b36SAndroid Build Coastguard Worker device_supported: false, 571*333d2b36SAndroid Build Coastguard Worker host_supported: true, 572*333d2b36SAndroid Build Coastguard Worker stl: "none", 573*333d2b36SAndroid Build Coastguard Worker target: { 574*333d2b36SAndroid Build Coastguard Worker host: { 575*333d2b36SAndroid Build Coastguard Worker enabled: false, 576*333d2b36SAndroid Build Coastguard Worker }, 577*333d2b36SAndroid Build Coastguard Worker linux_glibc: { 578*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 579*333d2b36SAndroid Build Coastguard Worker }, 580*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 581*333d2b36SAndroid Build Coastguard Worker enabled: true, 582*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/bin/mynativebinary"], 583*333d2b36SAndroid Build Coastguard Worker }, 584*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 585*333d2b36SAndroid Build Coastguard Worker enabled: true, 586*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/bin/mynativebinary"], 587*333d2b36SAndroid Build Coastguard Worker }, 588*333d2b36SAndroid Build Coastguard Worker windows: { 589*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 590*333d2b36SAndroid Build Coastguard Worker }, 591*333d2b36SAndroid Build Coastguard Worker windows_x86_64: { 592*333d2b36SAndroid Build Coastguard Worker enabled: true, 593*333d2b36SAndroid Build Coastguard Worker srcs: ["windows/x86_64/bin/mynativebinary.exe"], 594*333d2b36SAndroid Build Coastguard Worker }, 595*333d2b36SAndroid Build Coastguard Worker }, 596*333d2b36SAndroid Build Coastguard Worker} 597*333d2b36SAndroid Build Coastguard Worker`), 598*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 599*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/linux_glibc_x86_64/mynativebinary -> linux_glibc/x86_64/bin/mynativebinary 600*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/linux_glibc_x86/mynativebinary -> linux_glibc/x86/bin/mynativebinary 601*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/windows_x86_64/mynativebinary.exe -> windows/x86_64/bin/mynativebinary.exe 602*333d2b36SAndroid Build Coastguard Worker`), 603*333d2b36SAndroid Build Coastguard Worker ) 604*333d2b36SAndroid Build Coastguard Worker} 605*333d2b36SAndroid Build Coastguard Worker 606*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithSingleHostOsType(t *testing.T) { 607*333d2b36SAndroid Build Coastguard Worker result := android.GroupFixturePreparers( 608*333d2b36SAndroid Build Coastguard Worker prepareForSdkTest, 609*333d2b36SAndroid Build Coastguard Worker ccTestFs.AddToFixture(), 610*333d2b36SAndroid Build Coastguard Worker cc.PrepareForTestOnLinuxBionic, 611*333d2b36SAndroid Build Coastguard Worker android.FixtureModifyConfig(func(config android.Config) { 612*333d2b36SAndroid Build Coastguard Worker config.Targets[android.LinuxBionic] = []android.Target{ 613*333d2b36SAndroid Build Coastguard Worker {android.LinuxBionic, android.Arch{ArchType: android.X86_64}, android.NativeBridgeDisabled, "", "", false}, 614*333d2b36SAndroid Build Coastguard Worker } 615*333d2b36SAndroid Build Coastguard Worker }), 616*333d2b36SAndroid Build Coastguard Worker ).RunTestWithBp(t, ` 617*333d2b36SAndroid Build Coastguard Worker cc_defaults { 618*333d2b36SAndroid Build Coastguard Worker name: "mydefaults", 619*333d2b36SAndroid Build Coastguard Worker device_supported: false, 620*333d2b36SAndroid Build Coastguard Worker host_supported: true, 621*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 622*333d2b36SAndroid Build Coastguard Worker target: { 623*333d2b36SAndroid Build Coastguard Worker host: { 624*333d2b36SAndroid Build Coastguard Worker enabled: false, 625*333d2b36SAndroid Build Coastguard Worker }, 626*333d2b36SAndroid Build Coastguard Worker linux_bionic: { 627*333d2b36SAndroid Build Coastguard Worker enabled: true, 628*333d2b36SAndroid Build Coastguard Worker }, 629*333d2b36SAndroid Build Coastguard Worker }, 630*333d2b36SAndroid Build Coastguard Worker } 631*333d2b36SAndroid Build Coastguard Worker 632*333d2b36SAndroid Build Coastguard Worker module_exports { 633*333d2b36SAndroid Build Coastguard Worker name: "myexports", 634*333d2b36SAndroid Build Coastguard Worker defaults: ["mydefaults"], 635*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 636*333d2b36SAndroid Build Coastguard Worker native_binaries: ["mynativebinary"], 637*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", // The built-in default in sdk.go overrides mydefaults. 638*333d2b36SAndroid Build Coastguard Worker } 639*333d2b36SAndroid Build Coastguard Worker 640*333d2b36SAndroid Build Coastguard Worker cc_library { 641*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 642*333d2b36SAndroid Build Coastguard Worker defaults: ["mydefaults"], 643*333d2b36SAndroid Build Coastguard Worker srcs: [ 644*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 645*333d2b36SAndroid Build Coastguard Worker ], 646*333d2b36SAndroid Build Coastguard Worker stl: "none", 647*333d2b36SAndroid Build Coastguard Worker } 648*333d2b36SAndroid Build Coastguard Worker 649*333d2b36SAndroid Build Coastguard Worker cc_binary { 650*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 651*333d2b36SAndroid Build Coastguard Worker defaults: ["mydefaults"], 652*333d2b36SAndroid Build Coastguard Worker srcs: [ 653*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 654*333d2b36SAndroid Build Coastguard Worker ], 655*333d2b36SAndroid Build Coastguard Worker stl: "none", 656*333d2b36SAndroid Build Coastguard Worker } 657*333d2b36SAndroid Build Coastguard Worker `) 658*333d2b36SAndroid Build Coastguard Worker 659*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 660*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 661*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 662*333d2b36SAndroid Build Coastguard Worker 663*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 664*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 665*333d2b36SAndroid Build Coastguard Worker contents: [ 666*333d2b36SAndroid Build Coastguard Worker "prebuilt_mynativebinary", 667*333d2b36SAndroid Build Coastguard Worker "prebuilt_mynativelib", 668*333d2b36SAndroid Build Coastguard Worker ], 669*333d2b36SAndroid Build Coastguard Worker} 670*333d2b36SAndroid Build Coastguard Worker 671*333d2b36SAndroid Build Coastguard Workercc_prebuilt_binary { 672*333d2b36SAndroid Build Coastguard Worker name: "mynativebinary", 673*333d2b36SAndroid Build Coastguard Worker prefer: false, 674*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 675*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 676*333d2b36SAndroid Build Coastguard Worker device_supported: false, 677*333d2b36SAndroid Build Coastguard Worker host_supported: true, 678*333d2b36SAndroid Build Coastguard Worker stl: "none", 679*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 680*333d2b36SAndroid Build Coastguard Worker target: { 681*333d2b36SAndroid Build Coastguard Worker host: { 682*333d2b36SAndroid Build Coastguard Worker enabled: false, 683*333d2b36SAndroid Build Coastguard Worker }, 684*333d2b36SAndroid Build Coastguard Worker linux_bionic_x86_64: { 685*333d2b36SAndroid Build Coastguard Worker enabled: true, 686*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/bin/mynativebinary"], 687*333d2b36SAndroid Build Coastguard Worker }, 688*333d2b36SAndroid Build Coastguard Worker }, 689*333d2b36SAndroid Build Coastguard Worker} 690*333d2b36SAndroid Build Coastguard Worker 691*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 692*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 693*333d2b36SAndroid Build Coastguard Worker prefer: false, 694*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 695*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 696*333d2b36SAndroid Build Coastguard Worker device_supported: false, 697*333d2b36SAndroid Build Coastguard Worker host_supported: true, 698*333d2b36SAndroid Build Coastguard Worker stl: "none", 699*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 700*333d2b36SAndroid Build Coastguard Worker target: { 701*333d2b36SAndroid Build Coastguard Worker host: { 702*333d2b36SAndroid Build Coastguard Worker enabled: false, 703*333d2b36SAndroid Build Coastguard Worker }, 704*333d2b36SAndroid Build Coastguard Worker linux_bionic_x86_64: { 705*333d2b36SAndroid Build Coastguard Worker enabled: true, 706*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/lib/mynativelib.so"], 707*333d2b36SAndroid Build Coastguard Worker }, 708*333d2b36SAndroid Build Coastguard Worker }, 709*333d2b36SAndroid Build Coastguard Worker strip: { 710*333d2b36SAndroid Build Coastguard Worker none: true, 711*333d2b36SAndroid Build Coastguard Worker }, 712*333d2b36SAndroid Build Coastguard Worker} 713*333d2b36SAndroid Build Coastguard Worker`), 714*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 715*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativebinary/linux_bionic_x86_64/mynativebinary -> x86_64/bin/mynativebinary 716*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_bionic_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so 717*333d2b36SAndroid Build Coastguard Worker`), 718*333d2b36SAndroid Build Coastguard Worker ) 719*333d2b36SAndroid Build Coastguard Worker} 720*333d2b36SAndroid Build Coastguard Worker 721*333d2b36SAndroid Build Coastguard Worker// Test that we support the necessary flags for the linker binary, which is 722*333d2b36SAndroid Build Coastguard Worker// special in several ways. 723*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcStaticNocrtBinary(t *testing.T) { 724*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 725*333d2b36SAndroid Build Coastguard Worker module_exports { 726*333d2b36SAndroid Build Coastguard Worker name: "mymodule_exports", 727*333d2b36SAndroid Build Coastguard Worker host_supported: true, 728*333d2b36SAndroid Build Coastguard Worker device_supported: false, 729*333d2b36SAndroid Build Coastguard Worker native_binaries: ["linker"], 730*333d2b36SAndroid Build Coastguard Worker } 731*333d2b36SAndroid Build Coastguard Worker 732*333d2b36SAndroid Build Coastguard Worker cc_binary { 733*333d2b36SAndroid Build Coastguard Worker name: "linker", 734*333d2b36SAndroid Build Coastguard Worker host_supported: true, 735*333d2b36SAndroid Build Coastguard Worker static_executable: true, 736*333d2b36SAndroid Build Coastguard Worker nocrt: true, 737*333d2b36SAndroid Build Coastguard Worker stl: "none", 738*333d2b36SAndroid Build Coastguard Worker srcs: [ 739*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 740*333d2b36SAndroid Build Coastguard Worker ], 741*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 742*333d2b36SAndroid Build Coastguard Worker } 743*333d2b36SAndroid Build Coastguard Worker `) 744*333d2b36SAndroid Build Coastguard Worker 745*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mymodule_exports", "", 746*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 747*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 748*333d2b36SAndroid Build Coastguard Worker 749*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 750*333d2b36SAndroid Build Coastguard Worker name: "mymodule_exports.contributions", 751*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_linker"], 752*333d2b36SAndroid Build Coastguard Worker} 753*333d2b36SAndroid Build Coastguard Worker 754*333d2b36SAndroid Build Coastguard Workercc_prebuilt_binary { 755*333d2b36SAndroid Build Coastguard Worker name: "linker", 756*333d2b36SAndroid Build Coastguard Worker prefer: false, 757*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 758*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 759*333d2b36SAndroid Build Coastguard Worker device_supported: false, 760*333d2b36SAndroid Build Coastguard Worker host_supported: true, 761*333d2b36SAndroid Build Coastguard Worker stl: "none", 762*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 763*333d2b36SAndroid Build Coastguard Worker static_executable: true, 764*333d2b36SAndroid Build Coastguard Worker nocrt: true, 765*333d2b36SAndroid Build Coastguard Worker target: { 766*333d2b36SAndroid Build Coastguard Worker host: { 767*333d2b36SAndroid Build Coastguard Worker enabled: false, 768*333d2b36SAndroid Build Coastguard Worker }, 769*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 770*333d2b36SAndroid Build Coastguard Worker enabled: true, 771*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/bin/linker"], 772*333d2b36SAndroid Build Coastguard Worker }, 773*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 774*333d2b36SAndroid Build Coastguard Worker enabled: true, 775*333d2b36SAndroid Build Coastguard Worker srcs: ["x86/bin/linker"], 776*333d2b36SAndroid Build Coastguard Worker }, 777*333d2b36SAndroid Build Coastguard Worker }, 778*333d2b36SAndroid Build Coastguard Worker} 779*333d2b36SAndroid Build Coastguard Worker`), 780*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 781*333d2b36SAndroid Build Coastguard Worker.intermediates/linker/linux_glibc_x86_64/linker -> x86_64/bin/linker 782*333d2b36SAndroid Build Coastguard Worker.intermediates/linker/linux_glibc_x86/linker -> x86/bin/linker 783*333d2b36SAndroid Build Coastguard Worker`), 784*333d2b36SAndroid Build Coastguard Worker ) 785*333d2b36SAndroid Build Coastguard Worker} 786*333d2b36SAndroid Build Coastguard Worker 787*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcSharedLibrary(t *testing.T) { 788*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 789*333d2b36SAndroid Build Coastguard Worker sdk { 790*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 791*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 792*333d2b36SAndroid Build Coastguard Worker } 793*333d2b36SAndroid Build Coastguard Worker 794*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 795*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 796*333d2b36SAndroid Build Coastguard Worker srcs: [ 797*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 798*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 799*333d2b36SAndroid Build Coastguard Worker ], 800*333d2b36SAndroid Build Coastguard Worker apex_available: ["apex1", "apex2"], 801*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 802*333d2b36SAndroid Build Coastguard Worker aidl: { 803*333d2b36SAndroid Build Coastguard Worker export_aidl_headers: true, 804*333d2b36SAndroid Build Coastguard Worker }, 805*333d2b36SAndroid Build Coastguard Worker stl: "none", 806*333d2b36SAndroid Build Coastguard Worker } 807*333d2b36SAndroid Build Coastguard Worker `) 808*333d2b36SAndroid Build Coastguard Worker 809*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 810*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 811*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 812*333d2b36SAndroid Build Coastguard Worker 813*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 814*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 815*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 816*333d2b36SAndroid Build Coastguard Worker} 817*333d2b36SAndroid Build Coastguard Worker 818*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 819*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 820*333d2b36SAndroid Build Coastguard Worker prefer: false, 821*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 822*333d2b36SAndroid Build Coastguard Worker apex_available: [ 823*333d2b36SAndroid Build Coastguard Worker "apex1", 824*333d2b36SAndroid Build Coastguard Worker "apex2", 825*333d2b36SAndroid Build Coastguard Worker ], 826*333d2b36SAndroid Build Coastguard Worker stl: "none", 827*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 828*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 829*333d2b36SAndroid Build Coastguard Worker arch: { 830*333d2b36SAndroid Build Coastguard Worker arm64: { 831*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.so"], 832*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["arm64/include_gen/mynativelib/android_arm64_armv8-a_shared/gen/aidl"], 833*333d2b36SAndroid Build Coastguard Worker }, 834*333d2b36SAndroid Build Coastguard Worker arm: { 835*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 836*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["arm/include_gen/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl"], 837*333d2b36SAndroid Build Coastguard Worker }, 838*333d2b36SAndroid Build Coastguard Worker }, 839*333d2b36SAndroid Build Coastguard Worker strip: { 840*333d2b36SAndroid Build Coastguard Worker none: true, 841*333d2b36SAndroid Build Coastguard Worker }, 842*333d2b36SAndroid Build Coastguard Worker} 843*333d2b36SAndroid Build Coastguard Worker`), 844*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 845*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 846*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> arm64/lib/mynativelib.so 847*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/Test.h 848*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/BnTest.h 849*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_shared/gen/aidl/aidl/foo/bar/BpTest.h 850*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so 851*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/Test.h 852*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/BnTest.h 853*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_shared/gen/aidl/aidl/foo/bar/BpTest.h 854*333d2b36SAndroid Build Coastguard Worker`), 855*333d2b36SAndroid Build Coastguard Worker ) 856*333d2b36SAndroid Build Coastguard Worker} 857*333d2b36SAndroid Build Coastguard Worker 858*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcSharedLibrarySharedLibs(t *testing.T) { 859*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 860*333d2b36SAndroid Build Coastguard Worker sdk { 861*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 862*333d2b36SAndroid Build Coastguard Worker native_shared_libs: [ 863*333d2b36SAndroid Build Coastguard Worker "mynativelib", 864*333d2b36SAndroid Build Coastguard Worker "myothernativelib", 865*333d2b36SAndroid Build Coastguard Worker "mysystemnativelib", 866*333d2b36SAndroid Build Coastguard Worker ], 867*333d2b36SAndroid Build Coastguard Worker } 868*333d2b36SAndroid Build Coastguard Worker 869*333d2b36SAndroid Build Coastguard Worker cc_library { 870*333d2b36SAndroid Build Coastguard Worker name: "mysystemnativelib", 871*333d2b36SAndroid Build Coastguard Worker srcs: [ 872*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 873*333d2b36SAndroid Build Coastguard Worker ], 874*333d2b36SAndroid Build Coastguard Worker stl: "none", 875*333d2b36SAndroid Build Coastguard Worker } 876*333d2b36SAndroid Build Coastguard Worker 877*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 878*333d2b36SAndroid Build Coastguard Worker name: "myothernativelib", 879*333d2b36SAndroid Build Coastguard Worker srcs: [ 880*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 881*333d2b36SAndroid Build Coastguard Worker ], 882*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [ 883*333d2b36SAndroid Build Coastguard Worker // A reference to a library that is not an sdk member. Uses libm as that 884*333d2b36SAndroid Build Coastguard Worker // is in the default set of modules available to this test and so is available 885*333d2b36SAndroid Build Coastguard Worker // both here and also when the generated Android.bp file is tested in 886*333d2b36SAndroid Build Coastguard Worker // CheckSnapshot(). This ensures that the system_shared_libs property correctly 887*333d2b36SAndroid Build Coastguard Worker // handles references to modules that are not sdk members. 888*333d2b36SAndroid Build Coastguard Worker "libm", 889*333d2b36SAndroid Build Coastguard Worker ], 890*333d2b36SAndroid Build Coastguard Worker stl: "none", 891*333d2b36SAndroid Build Coastguard Worker } 892*333d2b36SAndroid Build Coastguard Worker 893*333d2b36SAndroid Build Coastguard Worker cc_library { 894*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 895*333d2b36SAndroid Build Coastguard Worker srcs: [ 896*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 897*333d2b36SAndroid Build Coastguard Worker ], 898*333d2b36SAndroid Build Coastguard Worker shared_libs: [ 899*333d2b36SAndroid Build Coastguard Worker // A reference to another sdk member. 900*333d2b36SAndroid Build Coastguard Worker "myothernativelib", 901*333d2b36SAndroid Build Coastguard Worker ], 902*333d2b36SAndroid Build Coastguard Worker target: { 903*333d2b36SAndroid Build Coastguard Worker android: { 904*333d2b36SAndroid Build Coastguard Worker shared: { 905*333d2b36SAndroid Build Coastguard Worker shared_libs: [ 906*333d2b36SAndroid Build Coastguard Worker // A reference to a library that is not an sdk member. The libc library 907*333d2b36SAndroid Build Coastguard Worker // is used here to check that the shared_libs property is handled correctly 908*333d2b36SAndroid Build Coastguard Worker // in a similar way to how libm is used to check system_shared_libs above. 909*333d2b36SAndroid Build Coastguard Worker "libc", 910*333d2b36SAndroid Build Coastguard Worker ], 911*333d2b36SAndroid Build Coastguard Worker }, 912*333d2b36SAndroid Build Coastguard Worker }, 913*333d2b36SAndroid Build Coastguard Worker }, 914*333d2b36SAndroid Build Coastguard Worker stl: "none", 915*333d2b36SAndroid Build Coastguard Worker } 916*333d2b36SAndroid Build Coastguard Worker `) 917*333d2b36SAndroid Build Coastguard Worker 918*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 919*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 920*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 921*333d2b36SAndroid Build Coastguard Worker 922*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 923*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 924*333d2b36SAndroid Build Coastguard Worker contents: [ 925*333d2b36SAndroid Build Coastguard Worker "prebuilt_mynativelib", 926*333d2b36SAndroid Build Coastguard Worker "prebuilt_myothernativelib", 927*333d2b36SAndroid Build Coastguard Worker "prebuilt_mysystemnativelib", 928*333d2b36SAndroid Build Coastguard Worker ], 929*333d2b36SAndroid Build Coastguard Worker} 930*333d2b36SAndroid Build Coastguard Worker 931*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 932*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 933*333d2b36SAndroid Build Coastguard Worker prefer: false, 934*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 935*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 936*333d2b36SAndroid Build Coastguard Worker stl: "none", 937*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 938*333d2b36SAndroid Build Coastguard Worker shared_libs: [ 939*333d2b36SAndroid Build Coastguard Worker "myothernativelib", 940*333d2b36SAndroid Build Coastguard Worker "libc", 941*333d2b36SAndroid Build Coastguard Worker ], 942*333d2b36SAndroid Build Coastguard Worker arch: { 943*333d2b36SAndroid Build Coastguard Worker arm64: { 944*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.so"], 945*333d2b36SAndroid Build Coastguard Worker }, 946*333d2b36SAndroid Build Coastguard Worker arm: { 947*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 948*333d2b36SAndroid Build Coastguard Worker }, 949*333d2b36SAndroid Build Coastguard Worker }, 950*333d2b36SAndroid Build Coastguard Worker strip: { 951*333d2b36SAndroid Build Coastguard Worker none: true, 952*333d2b36SAndroid Build Coastguard Worker }, 953*333d2b36SAndroid Build Coastguard Worker} 954*333d2b36SAndroid Build Coastguard Worker 955*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 956*333d2b36SAndroid Build Coastguard Worker name: "myothernativelib", 957*333d2b36SAndroid Build Coastguard Worker prefer: false, 958*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 959*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 960*333d2b36SAndroid Build Coastguard Worker stl: "none", 961*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 962*333d2b36SAndroid Build Coastguard Worker system_shared_libs: ["libm"], 963*333d2b36SAndroid Build Coastguard Worker arch: { 964*333d2b36SAndroid Build Coastguard Worker arm64: { 965*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/myothernativelib.so"], 966*333d2b36SAndroid Build Coastguard Worker }, 967*333d2b36SAndroid Build Coastguard Worker arm: { 968*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/myothernativelib.so"], 969*333d2b36SAndroid Build Coastguard Worker }, 970*333d2b36SAndroid Build Coastguard Worker }, 971*333d2b36SAndroid Build Coastguard Worker strip: { 972*333d2b36SAndroid Build Coastguard Worker none: true, 973*333d2b36SAndroid Build Coastguard Worker }, 974*333d2b36SAndroid Build Coastguard Worker} 975*333d2b36SAndroid Build Coastguard Worker 976*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 977*333d2b36SAndroid Build Coastguard Worker name: "mysystemnativelib", 978*333d2b36SAndroid Build Coastguard Worker prefer: false, 979*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 980*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 981*333d2b36SAndroid Build Coastguard Worker stl: "none", 982*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 983*333d2b36SAndroid Build Coastguard Worker arch: { 984*333d2b36SAndroid Build Coastguard Worker arm64: { 985*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mysystemnativelib.so"], 986*333d2b36SAndroid Build Coastguard Worker }, 987*333d2b36SAndroid Build Coastguard Worker arm: { 988*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mysystemnativelib.so"], 989*333d2b36SAndroid Build Coastguard Worker }, 990*333d2b36SAndroid Build Coastguard Worker }, 991*333d2b36SAndroid Build Coastguard Worker strip: { 992*333d2b36SAndroid Build Coastguard Worker none: true, 993*333d2b36SAndroid Build Coastguard Worker }, 994*333d2b36SAndroid Build Coastguard Worker} 995*333d2b36SAndroid Build Coastguard Worker`), 996*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 997*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> arm64/lib/mynativelib.so 998*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so 999*333d2b36SAndroid Build Coastguard Worker.intermediates/myothernativelib/android_arm64_armv8-a_shared/myothernativelib.so -> arm64/lib/myothernativelib.so 1000*333d2b36SAndroid Build Coastguard Worker.intermediates/myothernativelib/android_arm_armv7-a-neon_shared/myothernativelib.so -> arm/lib/myothernativelib.so 1001*333d2b36SAndroid Build Coastguard Worker.intermediates/mysystemnativelib/android_arm64_armv8-a_shared/mysystemnativelib.so -> arm64/lib/mysystemnativelib.so 1002*333d2b36SAndroid Build Coastguard Worker.intermediates/mysystemnativelib/android_arm_armv7-a-neon_shared/mysystemnativelib.so -> arm/lib/mysystemnativelib.so 1003*333d2b36SAndroid Build Coastguard Worker`), 1004*333d2b36SAndroid Build Coastguard Worker ) 1005*333d2b36SAndroid Build Coastguard Worker} 1006*333d2b36SAndroid Build Coastguard Worker 1007*333d2b36SAndroid Build Coastguard Workerfunc TestHostSnapshotWithCcSharedLibrary(t *testing.T) { 1008*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1009*333d2b36SAndroid Build Coastguard Worker sdk { 1010*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1011*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1012*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1013*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 1014*333d2b36SAndroid Build Coastguard Worker } 1015*333d2b36SAndroid Build Coastguard Worker 1016*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 1017*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1018*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1019*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1020*333d2b36SAndroid Build Coastguard Worker srcs: [ 1021*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1022*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 1023*333d2b36SAndroid Build Coastguard Worker ], 1024*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1025*333d2b36SAndroid Build Coastguard Worker aidl: { 1026*333d2b36SAndroid Build Coastguard Worker export_aidl_headers: true, 1027*333d2b36SAndroid Build Coastguard Worker }, 1028*333d2b36SAndroid Build Coastguard Worker stl: "none", 1029*333d2b36SAndroid Build Coastguard Worker sdk_version: "minimum", 1030*333d2b36SAndroid Build Coastguard Worker } 1031*333d2b36SAndroid Build Coastguard Worker `) 1032*333d2b36SAndroid Build Coastguard Worker 1033*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1034*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1035*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1036*333d2b36SAndroid Build Coastguard Worker 1037*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1038*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1039*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1040*333d2b36SAndroid Build Coastguard Worker} 1041*333d2b36SAndroid Build Coastguard Worker 1042*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 1043*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1044*333d2b36SAndroid Build Coastguard Worker prefer: false, 1045*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1046*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1047*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1048*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1049*333d2b36SAndroid Build Coastguard Worker sdk_version: "minimum", 1050*333d2b36SAndroid Build Coastguard Worker stl: "none", 1051*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1052*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1053*333d2b36SAndroid Build Coastguard Worker target: { 1054*333d2b36SAndroid Build Coastguard Worker host: { 1055*333d2b36SAndroid Build Coastguard Worker enabled: false, 1056*333d2b36SAndroid Build Coastguard Worker }, 1057*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1058*333d2b36SAndroid Build Coastguard Worker enabled: true, 1059*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/lib/mynativelib.so"], 1060*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["x86_64/include_gen/mynativelib/linux_glibc_x86_64_shared/gen/aidl"], 1061*333d2b36SAndroid Build Coastguard Worker }, 1062*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1063*333d2b36SAndroid Build Coastguard Worker enabled: true, 1064*333d2b36SAndroid Build Coastguard Worker srcs: ["x86/lib/mynativelib.so"], 1065*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["x86/include_gen/mynativelib/linux_glibc_x86_shared/gen/aidl"], 1066*333d2b36SAndroid Build Coastguard Worker }, 1067*333d2b36SAndroid Build Coastguard Worker }, 1068*333d2b36SAndroid Build Coastguard Worker strip: { 1069*333d2b36SAndroid Build Coastguard Worker none: true, 1070*333d2b36SAndroid Build Coastguard Worker }, 1071*333d2b36SAndroid Build Coastguard Worker} 1072*333d2b36SAndroid Build Coastguard Worker`), 1073*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1074*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1075*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> x86_64/lib/mynativelib.so 1076*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/Test.h 1077*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BnTest.h 1078*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_shared/gen/aidl/aidl/foo/bar/BpTest.h 1079*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> x86/lib/mynativelib.so 1080*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/Test.h 1081*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BnTest.h 1082*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/linux_glibc_x86_shared/gen/aidl/aidl/foo/bar/BpTest.h 1083*333d2b36SAndroid Build Coastguard Worker`), 1084*333d2b36SAndroid Build Coastguard Worker ) 1085*333d2b36SAndroid Build Coastguard Worker} 1086*333d2b36SAndroid Build Coastguard Worker 1087*333d2b36SAndroid Build Coastguard Workerfunc TestMultipleHostOsTypesSnapshotWithCcSharedLibrary(t *testing.T) { 1088*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1089*333d2b36SAndroid Build Coastguard Worker sdk { 1090*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1091*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1092*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1093*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 1094*333d2b36SAndroid Build Coastguard Worker target: { 1095*333d2b36SAndroid Build Coastguard Worker windows: { 1096*333d2b36SAndroid Build Coastguard Worker enabled: true, 1097*333d2b36SAndroid Build Coastguard Worker }, 1098*333d2b36SAndroid Build Coastguard Worker }, 1099*333d2b36SAndroid Build Coastguard Worker } 1100*333d2b36SAndroid Build Coastguard Worker 1101*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 1102*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1103*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1104*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1105*333d2b36SAndroid Build Coastguard Worker srcs: [ 1106*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1107*333d2b36SAndroid Build Coastguard Worker ], 1108*333d2b36SAndroid Build Coastguard Worker stl: "none", 1109*333d2b36SAndroid Build Coastguard Worker target: { 1110*333d2b36SAndroid Build Coastguard Worker windows: { 1111*333d2b36SAndroid Build Coastguard Worker enabled: true, 1112*333d2b36SAndroid Build Coastguard Worker }, 1113*333d2b36SAndroid Build Coastguard Worker }, 1114*333d2b36SAndroid Build Coastguard Worker } 1115*333d2b36SAndroid Build Coastguard Worker `) 1116*333d2b36SAndroid Build Coastguard Worker 1117*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1118*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1119*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1120*333d2b36SAndroid Build Coastguard Worker 1121*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1122*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1123*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1124*333d2b36SAndroid Build Coastguard Worker} 1125*333d2b36SAndroid Build Coastguard Worker 1126*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 1127*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1128*333d2b36SAndroid Build Coastguard Worker prefer: false, 1129*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1130*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1131*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1132*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1133*333d2b36SAndroid Build Coastguard Worker stl: "none", 1134*333d2b36SAndroid Build Coastguard Worker target: { 1135*333d2b36SAndroid Build Coastguard Worker host: { 1136*333d2b36SAndroid Build Coastguard Worker enabled: false, 1137*333d2b36SAndroid Build Coastguard Worker }, 1138*333d2b36SAndroid Build Coastguard Worker linux_glibc: { 1139*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1140*333d2b36SAndroid Build Coastguard Worker }, 1141*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1142*333d2b36SAndroid Build Coastguard Worker enabled: true, 1143*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/mynativelib.so"], 1144*333d2b36SAndroid Build Coastguard Worker }, 1145*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1146*333d2b36SAndroid Build Coastguard Worker enabled: true, 1147*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/mynativelib.so"], 1148*333d2b36SAndroid Build Coastguard Worker }, 1149*333d2b36SAndroid Build Coastguard Worker windows: { 1150*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 1151*333d2b36SAndroid Build Coastguard Worker }, 1152*333d2b36SAndroid Build Coastguard Worker windows_x86_64: { 1153*333d2b36SAndroid Build Coastguard Worker enabled: true, 1154*333d2b36SAndroid Build Coastguard Worker srcs: ["windows/x86_64/lib/mynativelib.dll"], 1155*333d2b36SAndroid Build Coastguard Worker }, 1156*333d2b36SAndroid Build Coastguard Worker }, 1157*333d2b36SAndroid Build Coastguard Worker strip: { 1158*333d2b36SAndroid Build Coastguard Worker none: true, 1159*333d2b36SAndroid Build Coastguard Worker }, 1160*333d2b36SAndroid Build Coastguard Worker} 1161*333d2b36SAndroid Build Coastguard Worker`), 1162*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1163*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> linux_glibc/x86_64/lib/mynativelib.so 1164*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> linux_glibc/x86/lib/mynativelib.so 1165*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/windows_x86_64_shared/mynativelib.dll -> windows/x86_64/lib/mynativelib.dll 1166*333d2b36SAndroid Build Coastguard Worker`), 1167*333d2b36SAndroid Build Coastguard Worker ) 1168*333d2b36SAndroid Build Coastguard Worker} 1169*333d2b36SAndroid Build Coastguard Worker 1170*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcStaticLibrary(t *testing.T) { 1171*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1172*333d2b36SAndroid Build Coastguard Worker module_exports { 1173*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1174*333d2b36SAndroid Build Coastguard Worker native_static_libs: ["mynativelib"], 1175*333d2b36SAndroid Build Coastguard Worker } 1176*333d2b36SAndroid Build Coastguard Worker 1177*333d2b36SAndroid Build Coastguard Worker cc_library_static { 1178*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1179*333d2b36SAndroid Build Coastguard Worker srcs: [ 1180*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1181*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 1182*333d2b36SAndroid Build Coastguard Worker ], 1183*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1184*333d2b36SAndroid Build Coastguard Worker aidl: { 1185*333d2b36SAndroid Build Coastguard Worker export_aidl_headers: true, 1186*333d2b36SAndroid Build Coastguard Worker }, 1187*333d2b36SAndroid Build Coastguard Worker stl: "none", 1188*333d2b36SAndroid Build Coastguard Worker } 1189*333d2b36SAndroid Build Coastguard Worker `) 1190*333d2b36SAndroid Build Coastguard Worker 1191*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1192*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1193*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1194*333d2b36SAndroid Build Coastguard Worker 1195*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1196*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1197*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1198*333d2b36SAndroid Build Coastguard Worker} 1199*333d2b36SAndroid Build Coastguard Worker 1200*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_static { 1201*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1202*333d2b36SAndroid Build Coastguard Worker prefer: false, 1203*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1204*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1205*333d2b36SAndroid Build Coastguard Worker stl: "none", 1206*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1207*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1208*333d2b36SAndroid Build Coastguard Worker arch: { 1209*333d2b36SAndroid Build Coastguard Worker arm64: { 1210*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.a"], 1211*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["arm64/include_gen/mynativelib/android_arm64_armv8-a_static/gen/aidl"], 1212*333d2b36SAndroid Build Coastguard Worker }, 1213*333d2b36SAndroid Build Coastguard Worker arm: { 1214*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.a"], 1215*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["arm/include_gen/mynativelib/android_arm_armv7-a-neon_static/gen/aidl"], 1216*333d2b36SAndroid Build Coastguard Worker }, 1217*333d2b36SAndroid Build Coastguard Worker }, 1218*333d2b36SAndroid Build Coastguard Worker} 1219*333d2b36SAndroid Build Coastguard Worker`), 1220*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1221*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1222*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/mynativelib.a -> arm64/lib/mynativelib.a 1223*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/Test.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/Test.h 1224*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/BnTest.h 1225*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm64/include_gen/mynativelib/android_arm64_armv8-a_static/gen/aidl/aidl/foo/bar/BpTest.h 1226*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/mynativelib.a -> arm/lib/mynativelib.a 1227*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/Test.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/Test.h 1228*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/BnTest.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/BnTest.h 1229*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/BpTest.h -> arm/include_gen/mynativelib/android_arm_armv7-a-neon_static/gen/aidl/aidl/foo/bar/BpTest.h 1230*333d2b36SAndroid Build Coastguard Worker`), 1231*333d2b36SAndroid Build Coastguard Worker ) 1232*333d2b36SAndroid Build Coastguard Worker} 1233*333d2b36SAndroid Build Coastguard Worker 1234*333d2b36SAndroid Build Coastguard Workerfunc TestHostSnapshotWithCcStaticLibrary(t *testing.T) { 1235*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1236*333d2b36SAndroid Build Coastguard Worker module_exports { 1237*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1238*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1239*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1240*333d2b36SAndroid Build Coastguard Worker native_static_libs: ["mynativelib"], 1241*333d2b36SAndroid Build Coastguard Worker } 1242*333d2b36SAndroid Build Coastguard Worker 1243*333d2b36SAndroid Build Coastguard Worker cc_library_static { 1244*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1245*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1246*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1247*333d2b36SAndroid Build Coastguard Worker srcs: [ 1248*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1249*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 1250*333d2b36SAndroid Build Coastguard Worker ], 1251*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1252*333d2b36SAndroid Build Coastguard Worker aidl: { 1253*333d2b36SAndroid Build Coastguard Worker export_aidl_headers: true, 1254*333d2b36SAndroid Build Coastguard Worker }, 1255*333d2b36SAndroid Build Coastguard Worker stl: "none", 1256*333d2b36SAndroid Build Coastguard Worker } 1257*333d2b36SAndroid Build Coastguard Worker `) 1258*333d2b36SAndroid Build Coastguard Worker 1259*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1260*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1261*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1262*333d2b36SAndroid Build Coastguard Worker 1263*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1264*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1265*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1266*333d2b36SAndroid Build Coastguard Worker} 1267*333d2b36SAndroid Build Coastguard Worker 1268*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_static { 1269*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1270*333d2b36SAndroid Build Coastguard Worker prefer: false, 1271*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1272*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1273*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1274*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1275*333d2b36SAndroid Build Coastguard Worker stl: "none", 1276*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1277*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1278*333d2b36SAndroid Build Coastguard Worker target: { 1279*333d2b36SAndroid Build Coastguard Worker host: { 1280*333d2b36SAndroid Build Coastguard Worker enabled: false, 1281*333d2b36SAndroid Build Coastguard Worker }, 1282*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1283*333d2b36SAndroid Build Coastguard Worker enabled: true, 1284*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/lib/mynativelib.a"], 1285*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["x86_64/include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl"], 1286*333d2b36SAndroid Build Coastguard Worker }, 1287*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1288*333d2b36SAndroid Build Coastguard Worker enabled: true, 1289*333d2b36SAndroid Build Coastguard Worker srcs: ["x86/lib/mynativelib.a"], 1290*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["x86/include_gen/mynativelib/linux_glibc_x86_static/gen/aidl"], 1291*333d2b36SAndroid Build Coastguard Worker }, 1292*333d2b36SAndroid Build Coastguard Worker }, 1293*333d2b36SAndroid Build Coastguard Worker} 1294*333d2b36SAndroid Build Coastguard Worker`), 1295*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1296*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1297*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a 1298*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h 1299*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h 1300*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86_64/include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h 1301*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> x86/lib/mynativelib.a 1302*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h -> x86/include_gen/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/Test.h 1303*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h -> x86/include_gen/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BnTest.h 1304*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h -> x86/include_gen/mynativelib/linux_glibc_x86_static/gen/aidl/aidl/foo/bar/BpTest.h 1305*333d2b36SAndroid Build Coastguard Worker`), 1306*333d2b36SAndroid Build Coastguard Worker ) 1307*333d2b36SAndroid Build Coastguard Worker} 1308*333d2b36SAndroid Build Coastguard Worker 1309*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcLibrary(t *testing.T) { 1310*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1311*333d2b36SAndroid Build Coastguard Worker module_exports { 1312*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1313*333d2b36SAndroid Build Coastguard Worker native_libs: ["mynativelib"], 1314*333d2b36SAndroid Build Coastguard Worker } 1315*333d2b36SAndroid Build Coastguard Worker 1316*333d2b36SAndroid Build Coastguard Worker cc_library { 1317*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1318*333d2b36SAndroid Build Coastguard Worker srcs: [ 1319*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1320*333d2b36SAndroid Build Coastguard Worker ], 1321*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1322*333d2b36SAndroid Build Coastguard Worker stl: "none", 1323*333d2b36SAndroid Build Coastguard Worker recovery_available: true, 1324*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1325*333d2b36SAndroid Build Coastguard Worker } 1326*333d2b36SAndroid Build Coastguard Worker `) 1327*333d2b36SAndroid Build Coastguard Worker 1328*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1329*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1330*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1331*333d2b36SAndroid Build Coastguard Worker 1332*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1333*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1334*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1335*333d2b36SAndroid Build Coastguard Worker} 1336*333d2b36SAndroid Build Coastguard Worker 1337*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library { 1338*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1339*333d2b36SAndroid Build Coastguard Worker prefer: false, 1340*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1341*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1342*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1343*333d2b36SAndroid Build Coastguard Worker stl: "none", 1344*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1345*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1346*333d2b36SAndroid Build Coastguard Worker arch: { 1347*333d2b36SAndroid Build Coastguard Worker arm64: { 1348*333d2b36SAndroid Build Coastguard Worker static: { 1349*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.a"], 1350*333d2b36SAndroid Build Coastguard Worker }, 1351*333d2b36SAndroid Build Coastguard Worker shared: { 1352*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/mynativelib.so"], 1353*333d2b36SAndroid Build Coastguard Worker }, 1354*333d2b36SAndroid Build Coastguard Worker }, 1355*333d2b36SAndroid Build Coastguard Worker arm: { 1356*333d2b36SAndroid Build Coastguard Worker static: { 1357*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.a"], 1358*333d2b36SAndroid Build Coastguard Worker }, 1359*333d2b36SAndroid Build Coastguard Worker shared: { 1360*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 1361*333d2b36SAndroid Build Coastguard Worker }, 1362*333d2b36SAndroid Build Coastguard Worker }, 1363*333d2b36SAndroid Build Coastguard Worker }, 1364*333d2b36SAndroid Build Coastguard Worker} 1365*333d2b36SAndroid Build Coastguard Worker`), 1366*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1367*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1368*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/mynativelib.a -> arm64/lib/mynativelib.a 1369*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> arm64/lib/mynativelib.so 1370*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/mynativelib.a -> arm/lib/mynativelib.a 1371*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so 1372*333d2b36SAndroid Build Coastguard Worker`), 1373*333d2b36SAndroid Build Coastguard Worker // TODO(b/183315522): Remove this and fix the issue. 1374*333d2b36SAndroid Build Coastguard Worker snapshotTestErrorHandler(checkSnapshotPreferredWithSource, android.FixtureExpectsAtLeastOneErrorMatchingPattern(`\Qunrecognized property "arch.arm.shared.export_include_dirs"\E`)), 1375*333d2b36SAndroid Build Coastguard Worker ) 1376*333d2b36SAndroid Build Coastguard Worker} 1377*333d2b36SAndroid Build Coastguard Worker 1378*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotSameLibraryWithNativeLibsAndNativeSharedLib(t *testing.T) { 1379*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1380*333d2b36SAndroid Build Coastguard Worker module_exports { 1381*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1382*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1383*333d2b36SAndroid Build Coastguard Worker target: { 1384*333d2b36SAndroid Build Coastguard Worker android: { 1385*333d2b36SAndroid Build Coastguard Worker native_shared_libs: [ 1386*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1387*333d2b36SAndroid Build Coastguard Worker ], 1388*333d2b36SAndroid Build Coastguard Worker }, 1389*333d2b36SAndroid Build Coastguard Worker not_windows: { 1390*333d2b36SAndroid Build Coastguard Worker native_libs: [ 1391*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1392*333d2b36SAndroid Build Coastguard Worker ], 1393*333d2b36SAndroid Build Coastguard Worker }, 1394*333d2b36SAndroid Build Coastguard Worker }, 1395*333d2b36SAndroid Build Coastguard Worker } 1396*333d2b36SAndroid Build Coastguard Worker 1397*333d2b36SAndroid Build Coastguard Worker cc_library { 1398*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1399*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1400*333d2b36SAndroid Build Coastguard Worker srcs: [ 1401*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1402*333d2b36SAndroid Build Coastguard Worker ], 1403*333d2b36SAndroid Build Coastguard Worker stl: "none", 1404*333d2b36SAndroid Build Coastguard Worker recovery_available: true, 1405*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1406*333d2b36SAndroid Build Coastguard Worker } 1407*333d2b36SAndroid Build Coastguard Worker `) 1408*333d2b36SAndroid Build Coastguard Worker 1409*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1410*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1411*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1412*333d2b36SAndroid Build Coastguard Worker 1413*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1414*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1415*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1416*333d2b36SAndroid Build Coastguard Worker} 1417*333d2b36SAndroid Build Coastguard Worker 1418*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library { 1419*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1420*333d2b36SAndroid Build Coastguard Worker prefer: false, 1421*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1422*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1423*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1424*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1425*333d2b36SAndroid Build Coastguard Worker stl: "none", 1426*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1427*333d2b36SAndroid Build Coastguard Worker target: { 1428*333d2b36SAndroid Build Coastguard Worker host: { 1429*333d2b36SAndroid Build Coastguard Worker enabled: false, 1430*333d2b36SAndroid Build Coastguard Worker }, 1431*333d2b36SAndroid Build Coastguard Worker android_arm64: { 1432*333d2b36SAndroid Build Coastguard Worker shared: { 1433*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/mynativelib.so"], 1434*333d2b36SAndroid Build Coastguard Worker }, 1435*333d2b36SAndroid Build Coastguard Worker static: { 1436*333d2b36SAndroid Build Coastguard Worker enabled: false, 1437*333d2b36SAndroid Build Coastguard Worker }, 1438*333d2b36SAndroid Build Coastguard Worker }, 1439*333d2b36SAndroid Build Coastguard Worker android_arm: { 1440*333d2b36SAndroid Build Coastguard Worker shared: { 1441*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/mynativelib.so"], 1442*333d2b36SAndroid Build Coastguard Worker }, 1443*333d2b36SAndroid Build Coastguard Worker static: { 1444*333d2b36SAndroid Build Coastguard Worker enabled: false, 1445*333d2b36SAndroid Build Coastguard Worker }, 1446*333d2b36SAndroid Build Coastguard Worker }, 1447*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1448*333d2b36SAndroid Build Coastguard Worker enabled: true, 1449*333d2b36SAndroid Build Coastguard Worker static: { 1450*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/mynativelib.a"], 1451*333d2b36SAndroid Build Coastguard Worker }, 1452*333d2b36SAndroid Build Coastguard Worker shared: { 1453*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/mynativelib.so"], 1454*333d2b36SAndroid Build Coastguard Worker }, 1455*333d2b36SAndroid Build Coastguard Worker }, 1456*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1457*333d2b36SAndroid Build Coastguard Worker enabled: true, 1458*333d2b36SAndroid Build Coastguard Worker static: { 1459*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/mynativelib.a"], 1460*333d2b36SAndroid Build Coastguard Worker }, 1461*333d2b36SAndroid Build Coastguard Worker shared: { 1462*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/mynativelib.so"], 1463*333d2b36SAndroid Build Coastguard Worker }, 1464*333d2b36SAndroid Build Coastguard Worker }, 1465*333d2b36SAndroid Build Coastguard Worker }, 1466*333d2b36SAndroid Build Coastguard Worker} 1467*333d2b36SAndroid Build Coastguard Worker`), 1468*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1469*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> android/arm64/lib/mynativelib.so 1470*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> android/arm/lib/mynativelib.so 1471*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> linux_glibc/x86_64/lib/mynativelib.a 1472*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> linux_glibc/x86_64/lib/mynativelib.so 1473*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_static/mynativelib.a -> linux_glibc/x86/lib/mynativelib.a 1474*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> linux_glibc/x86/lib/mynativelib.so 1475*333d2b36SAndroid Build Coastguard Worker`), 1476*333d2b36SAndroid Build Coastguard Worker ) 1477*333d2b36SAndroid Build Coastguard Worker} 1478*333d2b36SAndroid Build Coastguard Worker 1479*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotSameLibraryWithAndroidNativeLibsAndHostNativeSharedLib(t *testing.T) { 1480*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1481*333d2b36SAndroid Build Coastguard Worker module_exports { 1482*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1483*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1484*333d2b36SAndroid Build Coastguard Worker target: { 1485*333d2b36SAndroid Build Coastguard Worker android: { 1486*333d2b36SAndroid Build Coastguard Worker native_libs: [ 1487*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1488*333d2b36SAndroid Build Coastguard Worker ], 1489*333d2b36SAndroid Build Coastguard Worker }, 1490*333d2b36SAndroid Build Coastguard Worker not_windows: { 1491*333d2b36SAndroid Build Coastguard Worker native_shared_libs: [ 1492*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1493*333d2b36SAndroid Build Coastguard Worker ], 1494*333d2b36SAndroid Build Coastguard Worker }, 1495*333d2b36SAndroid Build Coastguard Worker }, 1496*333d2b36SAndroid Build Coastguard Worker } 1497*333d2b36SAndroid Build Coastguard Worker 1498*333d2b36SAndroid Build Coastguard Worker cc_library { 1499*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1500*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1501*333d2b36SAndroid Build Coastguard Worker srcs: [ 1502*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1503*333d2b36SAndroid Build Coastguard Worker ], 1504*333d2b36SAndroid Build Coastguard Worker stl: "none", 1505*333d2b36SAndroid Build Coastguard Worker recovery_available: true, 1506*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1507*333d2b36SAndroid Build Coastguard Worker } 1508*333d2b36SAndroid Build Coastguard Worker `) 1509*333d2b36SAndroid Build Coastguard Worker 1510*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1511*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1512*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1513*333d2b36SAndroid Build Coastguard Worker 1514*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1515*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1516*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1517*333d2b36SAndroid Build Coastguard Worker} 1518*333d2b36SAndroid Build Coastguard Worker 1519*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library { 1520*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1521*333d2b36SAndroid Build Coastguard Worker prefer: false, 1522*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1523*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1524*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1525*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1526*333d2b36SAndroid Build Coastguard Worker stl: "none", 1527*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1528*333d2b36SAndroid Build Coastguard Worker target: { 1529*333d2b36SAndroid Build Coastguard Worker host: { 1530*333d2b36SAndroid Build Coastguard Worker enabled: false, 1531*333d2b36SAndroid Build Coastguard Worker }, 1532*333d2b36SAndroid Build Coastguard Worker android_arm64: { 1533*333d2b36SAndroid Build Coastguard Worker static: { 1534*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/mynativelib.a"], 1535*333d2b36SAndroid Build Coastguard Worker }, 1536*333d2b36SAndroid Build Coastguard Worker shared: { 1537*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/mynativelib.so"], 1538*333d2b36SAndroid Build Coastguard Worker }, 1539*333d2b36SAndroid Build Coastguard Worker }, 1540*333d2b36SAndroid Build Coastguard Worker android_arm: { 1541*333d2b36SAndroid Build Coastguard Worker static: { 1542*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/mynativelib.a"], 1543*333d2b36SAndroid Build Coastguard Worker }, 1544*333d2b36SAndroid Build Coastguard Worker shared: { 1545*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/mynativelib.so"], 1546*333d2b36SAndroid Build Coastguard Worker }, 1547*333d2b36SAndroid Build Coastguard Worker }, 1548*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1549*333d2b36SAndroid Build Coastguard Worker enabled: true, 1550*333d2b36SAndroid Build Coastguard Worker shared: { 1551*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/mynativelib.so"], 1552*333d2b36SAndroid Build Coastguard Worker }, 1553*333d2b36SAndroid Build Coastguard Worker static: { 1554*333d2b36SAndroid Build Coastguard Worker enabled: false, 1555*333d2b36SAndroid Build Coastguard Worker }, 1556*333d2b36SAndroid Build Coastguard Worker }, 1557*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1558*333d2b36SAndroid Build Coastguard Worker enabled: true, 1559*333d2b36SAndroid Build Coastguard Worker shared: { 1560*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/mynativelib.so"], 1561*333d2b36SAndroid Build Coastguard Worker }, 1562*333d2b36SAndroid Build Coastguard Worker static: { 1563*333d2b36SAndroid Build Coastguard Worker enabled: false, 1564*333d2b36SAndroid Build Coastguard Worker }, 1565*333d2b36SAndroid Build Coastguard Worker }, 1566*333d2b36SAndroid Build Coastguard Worker }, 1567*333d2b36SAndroid Build Coastguard Worker} 1568*333d2b36SAndroid Build Coastguard Worker`), 1569*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1570*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_static/mynativelib.a -> android/arm64/lib/mynativelib.a 1571*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm64_armv8-a_shared/mynativelib.so -> android/arm64/lib/mynativelib.so 1572*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_static/mynativelib.a -> android/arm/lib/mynativelib.a 1573*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> android/arm/lib/mynativelib.so 1574*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_shared/mynativelib.so -> linux_glibc/x86_64/lib/mynativelib.so 1575*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_shared/mynativelib.so -> linux_glibc/x86/lib/mynativelib.so 1576*333d2b36SAndroid Build Coastguard Worker`), 1577*333d2b36SAndroid Build Coastguard Worker ) 1578*333d2b36SAndroid Build Coastguard Worker} 1579*333d2b36SAndroid Build Coastguard Worker 1580*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotSameLibraryWithNativeStaticLibsAndNativeSharedLib(t *testing.T) { 1581*333d2b36SAndroid Build Coastguard Worker testSdkError(t, "Incompatible member types", ` 1582*333d2b36SAndroid Build Coastguard Worker module_exports { 1583*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1584*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1585*333d2b36SAndroid Build Coastguard Worker target: { 1586*333d2b36SAndroid Build Coastguard Worker android: { 1587*333d2b36SAndroid Build Coastguard Worker native_shared_libs: [ 1588*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1589*333d2b36SAndroid Build Coastguard Worker ], 1590*333d2b36SAndroid Build Coastguard Worker }, 1591*333d2b36SAndroid Build Coastguard Worker not_windows: { 1592*333d2b36SAndroid Build Coastguard Worker native_static_libs: [ 1593*333d2b36SAndroid Build Coastguard Worker "mynativelib", 1594*333d2b36SAndroid Build Coastguard Worker ], 1595*333d2b36SAndroid Build Coastguard Worker }, 1596*333d2b36SAndroid Build Coastguard Worker }, 1597*333d2b36SAndroid Build Coastguard Worker } 1598*333d2b36SAndroid Build Coastguard Worker 1599*333d2b36SAndroid Build Coastguard Worker cc_library { 1600*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1601*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1602*333d2b36SAndroid Build Coastguard Worker srcs: [ 1603*333d2b36SAndroid Build Coastguard Worker ], 1604*333d2b36SAndroid Build Coastguard Worker stl: "none", 1605*333d2b36SAndroid Build Coastguard Worker recovery_available: true, 1606*333d2b36SAndroid Build Coastguard Worker vendor_available: true, 1607*333d2b36SAndroid Build Coastguard Worker } 1608*333d2b36SAndroid Build Coastguard Worker `) 1609*333d2b36SAndroid Build Coastguard Worker} 1610*333d2b36SAndroid Build Coastguard Worker 1611*333d2b36SAndroid Build Coastguard Workerfunc TestHostSnapshotWithMultiLib64(t *testing.T) { 1612*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1613*333d2b36SAndroid Build Coastguard Worker module_exports { 1614*333d2b36SAndroid Build Coastguard Worker name: "myexports", 1615*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1616*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1617*333d2b36SAndroid Build Coastguard Worker target: { 1618*333d2b36SAndroid Build Coastguard Worker host: { 1619*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 1620*333d2b36SAndroid Build Coastguard Worker }, 1621*333d2b36SAndroid Build Coastguard Worker }, 1622*333d2b36SAndroid Build Coastguard Worker native_static_libs: ["mynativelib"], 1623*333d2b36SAndroid Build Coastguard Worker } 1624*333d2b36SAndroid Build Coastguard Worker 1625*333d2b36SAndroid Build Coastguard Worker cc_library_static { 1626*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1627*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1628*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1629*333d2b36SAndroid Build Coastguard Worker srcs: [ 1630*333d2b36SAndroid Build Coastguard Worker "Test.cpp", 1631*333d2b36SAndroid Build Coastguard Worker "aidl/foo/bar/Test.aidl", 1632*333d2b36SAndroid Build Coastguard Worker ], 1633*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1634*333d2b36SAndroid Build Coastguard Worker aidl: { 1635*333d2b36SAndroid Build Coastguard Worker export_aidl_headers: true, 1636*333d2b36SAndroid Build Coastguard Worker }, 1637*333d2b36SAndroid Build Coastguard Worker stl: "none", 1638*333d2b36SAndroid Build Coastguard Worker } 1639*333d2b36SAndroid Build Coastguard Worker `) 1640*333d2b36SAndroid Build Coastguard Worker 1641*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "myexports", "", 1642*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1643*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1644*333d2b36SAndroid Build Coastguard Worker 1645*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1646*333d2b36SAndroid Build Coastguard Worker name: "myexports.contributions", 1647*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 1648*333d2b36SAndroid Build Coastguard Worker} 1649*333d2b36SAndroid Build Coastguard Worker 1650*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_static { 1651*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 1652*333d2b36SAndroid Build Coastguard Worker prefer: false, 1653*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1654*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1655*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1656*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1657*333d2b36SAndroid Build Coastguard Worker stl: "none", 1658*333d2b36SAndroid Build Coastguard Worker compile_multilib: "64", 1659*333d2b36SAndroid Build Coastguard Worker export_include_dirs: [ 1660*333d2b36SAndroid Build Coastguard Worker "include/myinclude", 1661*333d2b36SAndroid Build Coastguard Worker "include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl", 1662*333d2b36SAndroid Build Coastguard Worker ], 1663*333d2b36SAndroid Build Coastguard Worker target: { 1664*333d2b36SAndroid Build Coastguard Worker host: { 1665*333d2b36SAndroid Build Coastguard Worker enabled: false, 1666*333d2b36SAndroid Build Coastguard Worker }, 1667*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1668*333d2b36SAndroid Build Coastguard Worker enabled: true, 1669*333d2b36SAndroid Build Coastguard Worker srcs: ["x86_64/lib/mynativelib.a"], 1670*333d2b36SAndroid Build Coastguard Worker }, 1671*333d2b36SAndroid Build Coastguard Worker }, 1672*333d2b36SAndroid Build Coastguard Worker} 1673*333d2b36SAndroid Build Coastguard Worker`), 1674*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1675*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1676*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h -> include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/Test.h 1677*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h -> include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BnTest.h 1678*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h -> include_gen/mynativelib/linux_glibc_x86_64_static/gen/aidl/aidl/foo/bar/BpTest.h 1679*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/linux_glibc_x86_64_static/mynativelib.a -> x86_64/lib/mynativelib.a 1680*333d2b36SAndroid Build Coastguard Worker`), 1681*333d2b36SAndroid Build Coastguard Worker ) 1682*333d2b36SAndroid Build Coastguard Worker} 1683*333d2b36SAndroid Build Coastguard Worker 1684*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcHeadersLibrary(t *testing.T) { 1685*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1686*333d2b36SAndroid Build Coastguard Worker sdk { 1687*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1688*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1689*333d2b36SAndroid Build Coastguard Worker } 1690*333d2b36SAndroid Build Coastguard Worker 1691*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1692*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1693*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1694*333d2b36SAndroid Build Coastguard Worker stl: "none", 1695*333d2b36SAndroid Build Coastguard Worker } 1696*333d2b36SAndroid Build Coastguard Worker `) 1697*333d2b36SAndroid Build Coastguard Worker 1698*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1699*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1700*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1701*333d2b36SAndroid Build Coastguard Worker 1702*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1703*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1704*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativeheaders"], 1705*333d2b36SAndroid Build Coastguard Worker} 1706*333d2b36SAndroid Build Coastguard Worker 1707*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_headers { 1708*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1709*333d2b36SAndroid Build Coastguard Worker prefer: false, 1710*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1711*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1712*333d2b36SAndroid Build Coastguard Worker stl: "none", 1713*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1714*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1715*333d2b36SAndroid Build Coastguard Worker} 1716*333d2b36SAndroid Build Coastguard Worker`), 1717*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1718*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1719*333d2b36SAndroid Build Coastguard Worker`), 1720*333d2b36SAndroid Build Coastguard Worker ) 1721*333d2b36SAndroid Build Coastguard Worker} 1722*333d2b36SAndroid Build Coastguard Worker 1723*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcHeadersLibraryAndNativeBridgeSupport(t *testing.T) { 1724*333d2b36SAndroid Build Coastguard Worker result := android.GroupFixturePreparers( 1725*333d2b36SAndroid Build Coastguard Worker cc.PrepareForTestWithCcDefaultModules, 1726*333d2b36SAndroid Build Coastguard Worker PrepareForTestWithSdkBuildComponents, 1727*333d2b36SAndroid Build Coastguard Worker ccTestFs.AddToFixture(), 1728*333d2b36SAndroid Build Coastguard Worker prepareForTestWithNativeBridgeTarget, 1729*333d2b36SAndroid Build Coastguard Worker android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { 1730*333d2b36SAndroid Build Coastguard Worker android.RegisterApexContributionsBuildComponents(ctx) 1731*333d2b36SAndroid Build Coastguard Worker }), 1732*333d2b36SAndroid Build Coastguard Worker ).RunTestWithBp(t, ` 1733*333d2b36SAndroid Build Coastguard Worker sdk { 1734*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1735*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1736*333d2b36SAndroid Build Coastguard Worker traits: { 1737*333d2b36SAndroid Build Coastguard Worker native_bridge_support: ["mynativeheaders"], 1738*333d2b36SAndroid Build Coastguard Worker }, 1739*333d2b36SAndroid Build Coastguard Worker } 1740*333d2b36SAndroid Build Coastguard Worker 1741*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1742*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1743*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1744*333d2b36SAndroid Build Coastguard Worker stl: "none", 1745*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 1746*333d2b36SAndroid Build Coastguard Worker native_bridge_supported: true, 1747*333d2b36SAndroid Build Coastguard Worker } 1748*333d2b36SAndroid Build Coastguard Worker `) 1749*333d2b36SAndroid Build Coastguard Worker 1750*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1751*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1752*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1753*333d2b36SAndroid Build Coastguard Worker 1754*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1755*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1756*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativeheaders"], 1757*333d2b36SAndroid Build Coastguard Worker} 1758*333d2b36SAndroid Build Coastguard Worker 1759*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_headers { 1760*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1761*333d2b36SAndroid Build Coastguard Worker prefer: false, 1762*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1763*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1764*333d2b36SAndroid Build Coastguard Worker native_bridge_supported: true, 1765*333d2b36SAndroid Build Coastguard Worker stl: "none", 1766*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1767*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 1768*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1769*333d2b36SAndroid Build Coastguard Worker} 1770*333d2b36SAndroid Build Coastguard Worker`), 1771*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1772*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1773*333d2b36SAndroid Build Coastguard Worker`), 1774*333d2b36SAndroid Build Coastguard Worker ) 1775*333d2b36SAndroid Build Coastguard Worker} 1776*333d2b36SAndroid Build Coastguard Worker 1777*333d2b36SAndroid Build Coastguard Worker// TestSnapshotWithCcHeadersLibrary_DetectsNativeBridgeSpecificProperties verifies that when a 1778*333d2b36SAndroid Build Coastguard Worker// module that has different output files for a native bridge target requests the native bridge 1779*333d2b36SAndroid Build Coastguard Worker// variants are copied into the sdk snapshot that it reports an error. 1780*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcHeadersLibrary_DetectsNativeBridgeSpecificProperties(t *testing.T) { 1781*333d2b36SAndroid Build Coastguard Worker android.GroupFixturePreparers( 1782*333d2b36SAndroid Build Coastguard Worker cc.PrepareForTestWithCcDefaultModules, 1783*333d2b36SAndroid Build Coastguard Worker PrepareForTestWithSdkBuildComponents, 1784*333d2b36SAndroid Build Coastguard Worker ccTestFs.AddToFixture(), 1785*333d2b36SAndroid Build Coastguard Worker prepareForTestWithNativeBridgeTarget, 1786*333d2b36SAndroid Build Coastguard Worker ).ExtendWithErrorHandler(android.FixtureExpectsAtLeastOneErrorMatchingPattern( 1787*333d2b36SAndroid Build Coastguard Worker `\QArchitecture variant "arm64_native_bridge" of sdk member "mynativeheaders" has properties distinct from other variants; this is not yet supported. The properties are: 1788*333d2b36SAndroid Build Coastguard Worker export_include_dirs: [ 1789*333d2b36SAndroid Build Coastguard Worker "arm64_native_bridge/include/myinclude_nativebridge", 1790*333d2b36SAndroid Build Coastguard Worker "arm64_native_bridge/include/myinclude", 1791*333d2b36SAndroid Build Coastguard Worker ],\E`)). 1792*333d2b36SAndroid Build Coastguard Worker RunTestWithBp(t, ` 1793*333d2b36SAndroid Build Coastguard Worker sdk { 1794*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1795*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1796*333d2b36SAndroid Build Coastguard Worker traits: { 1797*333d2b36SAndroid Build Coastguard Worker native_bridge_support: ["mynativeheaders"], 1798*333d2b36SAndroid Build Coastguard Worker }, 1799*333d2b36SAndroid Build Coastguard Worker } 1800*333d2b36SAndroid Build Coastguard Worker 1801*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1802*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1803*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1804*333d2b36SAndroid Build Coastguard Worker stl: "none", 1805*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 1806*333d2b36SAndroid Build Coastguard Worker native_bridge_supported: true, 1807*333d2b36SAndroid Build Coastguard Worker target: { 1808*333d2b36SAndroid Build Coastguard Worker native_bridge: { 1809*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude_nativebridge"], 1810*333d2b36SAndroid Build Coastguard Worker }, 1811*333d2b36SAndroid Build Coastguard Worker }, 1812*333d2b36SAndroid Build Coastguard Worker } 1813*333d2b36SAndroid Build Coastguard Worker `) 1814*333d2b36SAndroid Build Coastguard Worker} 1815*333d2b36SAndroid Build Coastguard Worker 1816*333d2b36SAndroid Build Coastguard Workerfunc TestSnapshotWithCcHeadersLibraryAndImageVariants(t *testing.T) { 1817*333d2b36SAndroid Build Coastguard Worker testImageVariant := func(t *testing.T, property, trait string) { 1818*333d2b36SAndroid Build Coastguard Worker result := android.GroupFixturePreparers( 1819*333d2b36SAndroid Build Coastguard Worker cc.PrepareForTestWithCcDefaultModules, 1820*333d2b36SAndroid Build Coastguard Worker PrepareForTestWithSdkBuildComponents, 1821*333d2b36SAndroid Build Coastguard Worker ccTestFs.AddToFixture(), 1822*333d2b36SAndroid Build Coastguard Worker android.FixtureRegisterWithContext(func(ctx android.RegistrationContext) { 1823*333d2b36SAndroid Build Coastguard Worker android.RegisterApexContributionsBuildComponents(ctx) 1824*333d2b36SAndroid Build Coastguard Worker }), 1825*333d2b36SAndroid Build Coastguard Worker ).RunTestWithBp(t, fmt.Sprintf(` 1826*333d2b36SAndroid Build Coastguard Worker sdk { 1827*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1828*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1829*333d2b36SAndroid Build Coastguard Worker traits: { 1830*333d2b36SAndroid Build Coastguard Worker %s: ["mynativeheaders"], 1831*333d2b36SAndroid Build Coastguard Worker }, 1832*333d2b36SAndroid Build Coastguard Worker } 1833*333d2b36SAndroid Build Coastguard Worker 1834*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1835*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1836*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1837*333d2b36SAndroid Build Coastguard Worker stl: "none", 1838*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 1839*333d2b36SAndroid Build Coastguard Worker %s: true, 1840*333d2b36SAndroid Build Coastguard Worker } 1841*333d2b36SAndroid Build Coastguard Worker `, trait, property)) 1842*333d2b36SAndroid Build Coastguard Worker 1843*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1844*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(fmt.Sprintf(` 1845*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1846*333d2b36SAndroid Build Coastguard Worker 1847*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1848*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1849*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativeheaders"], 1850*333d2b36SAndroid Build Coastguard Worker} 1851*333d2b36SAndroid Build Coastguard Worker 1852*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_headers { 1853*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1854*333d2b36SAndroid Build Coastguard Worker prefer: false, 1855*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1856*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1857*333d2b36SAndroid Build Coastguard Worker %s: true, 1858*333d2b36SAndroid Build Coastguard Worker stl: "none", 1859*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1860*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 1861*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1862*333d2b36SAndroid Build Coastguard Worker} 1863*333d2b36SAndroid Build Coastguard Worker`, property)), 1864*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1865*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1866*333d2b36SAndroid Build Coastguard Worker`), 1867*333d2b36SAndroid Build Coastguard Worker ) 1868*333d2b36SAndroid Build Coastguard Worker } 1869*333d2b36SAndroid Build Coastguard Worker 1870*333d2b36SAndroid Build Coastguard Worker t.Run("ramdisk", func(t *testing.T) { 1871*333d2b36SAndroid Build Coastguard Worker testImageVariant(t, "ramdisk_available", "ramdisk_image_required") 1872*333d2b36SAndroid Build Coastguard Worker }) 1873*333d2b36SAndroid Build Coastguard Worker 1874*333d2b36SAndroid Build Coastguard Worker t.Run("recovery", func(t *testing.T) { 1875*333d2b36SAndroid Build Coastguard Worker testImageVariant(t, "recovery_available", "recovery_image_required") 1876*333d2b36SAndroid Build Coastguard Worker }) 1877*333d2b36SAndroid Build Coastguard Worker} 1878*333d2b36SAndroid Build Coastguard Worker 1879*333d2b36SAndroid Build Coastguard Workerfunc TestHostSnapshotWithCcHeadersLibrary(t *testing.T) { 1880*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1881*333d2b36SAndroid Build Coastguard Worker sdk { 1882*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1883*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1884*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1885*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1886*333d2b36SAndroid Build Coastguard Worker } 1887*333d2b36SAndroid Build Coastguard Worker 1888*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1889*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1890*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1891*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1892*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 1893*333d2b36SAndroid Build Coastguard Worker stl: "none", 1894*333d2b36SAndroid Build Coastguard Worker } 1895*333d2b36SAndroid Build Coastguard Worker `) 1896*333d2b36SAndroid Build Coastguard Worker 1897*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1898*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1899*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1900*333d2b36SAndroid Build Coastguard Worker 1901*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1902*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1903*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativeheaders"], 1904*333d2b36SAndroid Build Coastguard Worker} 1905*333d2b36SAndroid Build Coastguard Worker 1906*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_headers { 1907*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1908*333d2b36SAndroid Build Coastguard Worker prefer: false, 1909*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1910*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1911*333d2b36SAndroid Build Coastguard Worker device_supported: false, 1912*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1913*333d2b36SAndroid Build Coastguard Worker stl: "none", 1914*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1915*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 1916*333d2b36SAndroid Build Coastguard Worker target: { 1917*333d2b36SAndroid Build Coastguard Worker host: { 1918*333d2b36SAndroid Build Coastguard Worker enabled: false, 1919*333d2b36SAndroid Build Coastguard Worker }, 1920*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1921*333d2b36SAndroid Build Coastguard Worker enabled: true, 1922*333d2b36SAndroid Build Coastguard Worker }, 1923*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1924*333d2b36SAndroid Build Coastguard Worker enabled: true, 1925*333d2b36SAndroid Build Coastguard Worker }, 1926*333d2b36SAndroid Build Coastguard Worker }, 1927*333d2b36SAndroid Build Coastguard Worker} 1928*333d2b36SAndroid Build Coastguard Worker`), 1929*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1930*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 1931*333d2b36SAndroid Build Coastguard Worker`), 1932*333d2b36SAndroid Build Coastguard Worker ) 1933*333d2b36SAndroid Build Coastguard Worker} 1934*333d2b36SAndroid Build Coastguard Worker 1935*333d2b36SAndroid Build Coastguard Workerfunc TestDeviceAndHostSnapshotWithCcHeadersLibrary(t *testing.T) { 1936*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 1937*333d2b36SAndroid Build Coastguard Worker sdk { 1938*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 1939*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1940*333d2b36SAndroid Build Coastguard Worker native_header_libs: ["mynativeheaders"], 1941*333d2b36SAndroid Build Coastguard Worker } 1942*333d2b36SAndroid Build Coastguard Worker 1943*333d2b36SAndroid Build Coastguard Worker cc_library_headers { 1944*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1945*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1946*333d2b36SAndroid Build Coastguard Worker stl: "none", 1947*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["myinclude"], 1948*333d2b36SAndroid Build Coastguard Worker target: { 1949*333d2b36SAndroid Build Coastguard Worker android: { 1950*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude-android"], 1951*333d2b36SAndroid Build Coastguard Worker }, 1952*333d2b36SAndroid Build Coastguard Worker host: { 1953*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude-host"], 1954*333d2b36SAndroid Build Coastguard Worker }, 1955*333d2b36SAndroid Build Coastguard Worker }, 1956*333d2b36SAndroid Build Coastguard Worker } 1957*333d2b36SAndroid Build Coastguard Worker `) 1958*333d2b36SAndroid Build Coastguard Worker 1959*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 1960*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 1961*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 1962*333d2b36SAndroid Build Coastguard Worker 1963*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 1964*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 1965*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativeheaders"], 1966*333d2b36SAndroid Build Coastguard Worker} 1967*333d2b36SAndroid Build Coastguard Worker 1968*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_headers { 1969*333d2b36SAndroid Build Coastguard Worker name: "mynativeheaders", 1970*333d2b36SAndroid Build Coastguard Worker prefer: false, 1971*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 1972*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 1973*333d2b36SAndroid Build Coastguard Worker host_supported: true, 1974*333d2b36SAndroid Build Coastguard Worker stl: "none", 1975*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 1976*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["common_os/include/myinclude"], 1977*333d2b36SAndroid Build Coastguard Worker target: { 1978*333d2b36SAndroid Build Coastguard Worker host: { 1979*333d2b36SAndroid Build Coastguard Worker enabled: false, 1980*333d2b36SAndroid Build Coastguard Worker }, 1981*333d2b36SAndroid Build Coastguard Worker android: { 1982*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["android/include/myinclude-android"], 1983*333d2b36SAndroid Build Coastguard Worker }, 1984*333d2b36SAndroid Build Coastguard Worker linux_glibc: { 1985*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["linux_glibc/include/myinclude-host"], 1986*333d2b36SAndroid Build Coastguard Worker }, 1987*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 1988*333d2b36SAndroid Build Coastguard Worker enabled: true, 1989*333d2b36SAndroid Build Coastguard Worker }, 1990*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 1991*333d2b36SAndroid Build Coastguard Worker enabled: true, 1992*333d2b36SAndroid Build Coastguard Worker }, 1993*333d2b36SAndroid Build Coastguard Worker }, 1994*333d2b36SAndroid Build Coastguard Worker} 1995*333d2b36SAndroid Build Coastguard Worker`), 1996*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 1997*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> common_os/include/myinclude/Test.h 1998*333d2b36SAndroid Build Coastguard Workermyinclude-android/AndroidTest.h -> android/include/myinclude-android/AndroidTest.h 1999*333d2b36SAndroid Build Coastguard Workermyinclude-host/HostTest.h -> linux_glibc/include/myinclude-host/HostTest.h 2000*333d2b36SAndroid Build Coastguard Worker`), 2001*333d2b36SAndroid Build Coastguard Worker ) 2002*333d2b36SAndroid Build Coastguard Worker} 2003*333d2b36SAndroid Build Coastguard Worker 2004*333d2b36SAndroid Build Coastguard Workerfunc TestSystemSharedLibPropagation(t *testing.T) { 2005*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 2006*333d2b36SAndroid Build Coastguard Worker sdk { 2007*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2008*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sslnil", "sslempty", "sslnonempty"], 2009*333d2b36SAndroid Build Coastguard Worker } 2010*333d2b36SAndroid Build Coastguard Worker 2011*333d2b36SAndroid Build Coastguard Worker cc_library { 2012*333d2b36SAndroid Build Coastguard Worker name: "sslnil", 2013*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2014*333d2b36SAndroid Build Coastguard Worker } 2015*333d2b36SAndroid Build Coastguard Worker 2016*333d2b36SAndroid Build Coastguard Worker cc_library { 2017*333d2b36SAndroid Build Coastguard Worker name: "sslempty", 2018*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 2019*333d2b36SAndroid Build Coastguard Worker } 2020*333d2b36SAndroid Build Coastguard Worker 2021*333d2b36SAndroid Build Coastguard Worker cc_library { 2022*333d2b36SAndroid Build Coastguard Worker name: "sslnonempty", 2023*333d2b36SAndroid Build Coastguard Worker system_shared_libs: ["sslnil"], 2024*333d2b36SAndroid Build Coastguard Worker } 2025*333d2b36SAndroid Build Coastguard Worker `) 2026*333d2b36SAndroid Build Coastguard Worker 2027*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2028*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2029*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2030*333d2b36SAndroid Build Coastguard Worker 2031*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2032*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2033*333d2b36SAndroid Build Coastguard Worker contents: [ 2034*333d2b36SAndroid Build Coastguard Worker "prebuilt_sslnil", 2035*333d2b36SAndroid Build Coastguard Worker "prebuilt_sslempty", 2036*333d2b36SAndroid Build Coastguard Worker "prebuilt_sslnonempty", 2037*333d2b36SAndroid Build Coastguard Worker ], 2038*333d2b36SAndroid Build Coastguard Worker} 2039*333d2b36SAndroid Build Coastguard Worker 2040*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2041*333d2b36SAndroid Build Coastguard Worker name: "sslnil", 2042*333d2b36SAndroid Build Coastguard Worker prefer: false, 2043*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2044*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2045*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2046*333d2b36SAndroid Build Coastguard Worker arch: { 2047*333d2b36SAndroid Build Coastguard Worker arm64: { 2048*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/sslnil.so"], 2049*333d2b36SAndroid Build Coastguard Worker }, 2050*333d2b36SAndroid Build Coastguard Worker arm: { 2051*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/sslnil.so"], 2052*333d2b36SAndroid Build Coastguard Worker }, 2053*333d2b36SAndroid Build Coastguard Worker }, 2054*333d2b36SAndroid Build Coastguard Worker strip: { 2055*333d2b36SAndroid Build Coastguard Worker none: true, 2056*333d2b36SAndroid Build Coastguard Worker }, 2057*333d2b36SAndroid Build Coastguard Worker} 2058*333d2b36SAndroid Build Coastguard Worker 2059*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2060*333d2b36SAndroid Build Coastguard Worker name: "sslempty", 2061*333d2b36SAndroid Build Coastguard Worker prefer: false, 2062*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2063*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2064*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2065*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 2066*333d2b36SAndroid Build Coastguard Worker arch: { 2067*333d2b36SAndroid Build Coastguard Worker arm64: { 2068*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/sslempty.so"], 2069*333d2b36SAndroid Build Coastguard Worker }, 2070*333d2b36SAndroid Build Coastguard Worker arm: { 2071*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/sslempty.so"], 2072*333d2b36SAndroid Build Coastguard Worker }, 2073*333d2b36SAndroid Build Coastguard Worker }, 2074*333d2b36SAndroid Build Coastguard Worker strip: { 2075*333d2b36SAndroid Build Coastguard Worker none: true, 2076*333d2b36SAndroid Build Coastguard Worker }, 2077*333d2b36SAndroid Build Coastguard Worker} 2078*333d2b36SAndroid Build Coastguard Worker 2079*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2080*333d2b36SAndroid Build Coastguard Worker name: "sslnonempty", 2081*333d2b36SAndroid Build Coastguard Worker prefer: false, 2082*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2083*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2084*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2085*333d2b36SAndroid Build Coastguard Worker system_shared_libs: ["sslnil"], 2086*333d2b36SAndroid Build Coastguard Worker arch: { 2087*333d2b36SAndroid Build Coastguard Worker arm64: { 2088*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/sslnonempty.so"], 2089*333d2b36SAndroid Build Coastguard Worker }, 2090*333d2b36SAndroid Build Coastguard Worker arm: { 2091*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/sslnonempty.so"], 2092*333d2b36SAndroid Build Coastguard Worker }, 2093*333d2b36SAndroid Build Coastguard Worker }, 2094*333d2b36SAndroid Build Coastguard Worker strip: { 2095*333d2b36SAndroid Build Coastguard Worker none: true, 2096*333d2b36SAndroid Build Coastguard Worker }, 2097*333d2b36SAndroid Build Coastguard Worker} 2098*333d2b36SAndroid Build Coastguard Worker`)) 2099*333d2b36SAndroid Build Coastguard Worker 2100*333d2b36SAndroid Build Coastguard Worker result = testSdkWithCc(t, ` 2101*333d2b36SAndroid Build Coastguard Worker sdk { 2102*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2103*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2104*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["sslvariants"], 2105*333d2b36SAndroid Build Coastguard Worker } 2106*333d2b36SAndroid Build Coastguard Worker 2107*333d2b36SAndroid Build Coastguard Worker cc_library { 2108*333d2b36SAndroid Build Coastguard Worker name: "sslvariants", 2109*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2110*333d2b36SAndroid Build Coastguard Worker target: { 2111*333d2b36SAndroid Build Coastguard Worker android: { 2112*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 2113*333d2b36SAndroid Build Coastguard Worker }, 2114*333d2b36SAndroid Build Coastguard Worker }, 2115*333d2b36SAndroid Build Coastguard Worker } 2116*333d2b36SAndroid Build Coastguard Worker `) 2117*333d2b36SAndroid Build Coastguard Worker 2118*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2119*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2120*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2121*333d2b36SAndroid Build Coastguard Worker 2122*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2123*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2124*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_sslvariants"], 2125*333d2b36SAndroid Build Coastguard Worker} 2126*333d2b36SAndroid Build Coastguard Worker 2127*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2128*333d2b36SAndroid Build Coastguard Worker name: "sslvariants", 2129*333d2b36SAndroid Build Coastguard Worker prefer: false, 2130*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2131*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2132*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2133*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2134*333d2b36SAndroid Build Coastguard Worker target: { 2135*333d2b36SAndroid Build Coastguard Worker host: { 2136*333d2b36SAndroid Build Coastguard Worker enabled: false, 2137*333d2b36SAndroid Build Coastguard Worker }, 2138*333d2b36SAndroid Build Coastguard Worker android: { 2139*333d2b36SAndroid Build Coastguard Worker system_shared_libs: [], 2140*333d2b36SAndroid Build Coastguard Worker }, 2141*333d2b36SAndroid Build Coastguard Worker android_arm64: { 2142*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/sslvariants.so"], 2143*333d2b36SAndroid Build Coastguard Worker }, 2144*333d2b36SAndroid Build Coastguard Worker android_arm: { 2145*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/sslvariants.so"], 2146*333d2b36SAndroid Build Coastguard Worker }, 2147*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 2148*333d2b36SAndroid Build Coastguard Worker enabled: true, 2149*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/sslvariants.so"], 2150*333d2b36SAndroid Build Coastguard Worker }, 2151*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 2152*333d2b36SAndroid Build Coastguard Worker enabled: true, 2153*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/sslvariants.so"], 2154*333d2b36SAndroid Build Coastguard Worker }, 2155*333d2b36SAndroid Build Coastguard Worker }, 2156*333d2b36SAndroid Build Coastguard Worker strip: { 2157*333d2b36SAndroid Build Coastguard Worker none: true, 2158*333d2b36SAndroid Build Coastguard Worker }, 2159*333d2b36SAndroid Build Coastguard Worker} 2160*333d2b36SAndroid Build Coastguard Worker`), 2161*333d2b36SAndroid Build Coastguard Worker ) 2162*333d2b36SAndroid Build Coastguard Worker} 2163*333d2b36SAndroid Build Coastguard Worker 2164*333d2b36SAndroid Build Coastguard Workerfunc TestStubsLibrary(t *testing.T) { 2165*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 2166*333d2b36SAndroid Build Coastguard Worker sdk { 2167*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2168*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["stubslib"], 2169*333d2b36SAndroid Build Coastguard Worker } 2170*333d2b36SAndroid Build Coastguard Worker 2171*333d2b36SAndroid Build Coastguard Worker cc_library { 2172*333d2b36SAndroid Build Coastguard Worker name: "internaldep", 2173*333d2b36SAndroid Build Coastguard Worker } 2174*333d2b36SAndroid Build Coastguard Worker 2175*333d2b36SAndroid Build Coastguard Worker cc_library { 2176*333d2b36SAndroid Build Coastguard Worker name: "stubslib", 2177*333d2b36SAndroid Build Coastguard Worker shared_libs: ["internaldep"], 2178*333d2b36SAndroid Build Coastguard Worker stubs: { 2179*333d2b36SAndroid Build Coastguard Worker symbol_file: "some/where/stubslib.map.txt", 2180*333d2b36SAndroid Build Coastguard Worker versions: ["1", "2", "3"], 2181*333d2b36SAndroid Build Coastguard Worker }, 2182*333d2b36SAndroid Build Coastguard Worker } 2183*333d2b36SAndroid Build Coastguard Worker `) 2184*333d2b36SAndroid Build Coastguard Worker 2185*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2186*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2187*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2188*333d2b36SAndroid Build Coastguard Worker 2189*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2190*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2191*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_stubslib"], 2192*333d2b36SAndroid Build Coastguard Worker} 2193*333d2b36SAndroid Build Coastguard Worker 2194*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2195*333d2b36SAndroid Build Coastguard Worker name: "stubslib", 2196*333d2b36SAndroid Build Coastguard Worker prefer: false, 2197*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2198*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2199*333d2b36SAndroid Build Coastguard Worker stl: "none", 2200*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2201*333d2b36SAndroid Build Coastguard Worker stubs: { 2202*333d2b36SAndroid Build Coastguard Worker versions: [ 2203*333d2b36SAndroid Build Coastguard Worker "1", 2204*333d2b36SAndroid Build Coastguard Worker "2", 2205*333d2b36SAndroid Build Coastguard Worker "3", 2206*333d2b36SAndroid Build Coastguard Worker "current", 2207*333d2b36SAndroid Build Coastguard Worker ], 2208*333d2b36SAndroid Build Coastguard Worker symbol_file: "stubslib.map.txt", 2209*333d2b36SAndroid Build Coastguard Worker }, 2210*333d2b36SAndroid Build Coastguard Worker arch: { 2211*333d2b36SAndroid Build Coastguard Worker arm64: { 2212*333d2b36SAndroid Build Coastguard Worker srcs: ["arm64/lib/stubslib.so"], 2213*333d2b36SAndroid Build Coastguard Worker }, 2214*333d2b36SAndroid Build Coastguard Worker arm: { 2215*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/stubslib.so"], 2216*333d2b36SAndroid Build Coastguard Worker }, 2217*333d2b36SAndroid Build Coastguard Worker }, 2218*333d2b36SAndroid Build Coastguard Worker strip: { 2219*333d2b36SAndroid Build Coastguard Worker none: true, 2220*333d2b36SAndroid Build Coastguard Worker }, 2221*333d2b36SAndroid Build Coastguard Worker} 2222*333d2b36SAndroid Build Coastguard Worker`)) 2223*333d2b36SAndroid Build Coastguard Worker} 2224*333d2b36SAndroid Build Coastguard Worker 2225*333d2b36SAndroid Build Coastguard Workerfunc TestDeviceAndHostSnapshotWithStubsLibrary(t *testing.T) { 2226*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 2227*333d2b36SAndroid Build Coastguard Worker sdk { 2228*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2229*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2230*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["stubslib"], 2231*333d2b36SAndroid Build Coastguard Worker } 2232*333d2b36SAndroid Build Coastguard Worker 2233*333d2b36SAndroid Build Coastguard Worker cc_library { 2234*333d2b36SAndroid Build Coastguard Worker name: "internaldep", 2235*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2236*333d2b36SAndroid Build Coastguard Worker } 2237*333d2b36SAndroid Build Coastguard Worker 2238*333d2b36SAndroid Build Coastguard Worker cc_library { 2239*333d2b36SAndroid Build Coastguard Worker name: "stubslib", 2240*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2241*333d2b36SAndroid Build Coastguard Worker shared_libs: ["internaldep"], 2242*333d2b36SAndroid Build Coastguard Worker stubs: { 2243*333d2b36SAndroid Build Coastguard Worker symbol_file: "some/where/stubslib.map.txt", 2244*333d2b36SAndroid Build Coastguard Worker versions: ["1", "2", "3"], 2245*333d2b36SAndroid Build Coastguard Worker }, 2246*333d2b36SAndroid Build Coastguard Worker } 2247*333d2b36SAndroid Build Coastguard Worker `) 2248*333d2b36SAndroid Build Coastguard Worker 2249*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2250*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2251*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2252*333d2b36SAndroid Build Coastguard Worker 2253*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2254*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2255*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_stubslib"], 2256*333d2b36SAndroid Build Coastguard Worker} 2257*333d2b36SAndroid Build Coastguard Worker 2258*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2259*333d2b36SAndroid Build Coastguard Worker name: "stubslib", 2260*333d2b36SAndroid Build Coastguard Worker prefer: false, 2261*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2262*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2263*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2264*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2265*333d2b36SAndroid Build Coastguard Worker stubs: { 2266*333d2b36SAndroid Build Coastguard Worker versions: [ 2267*333d2b36SAndroid Build Coastguard Worker "1", 2268*333d2b36SAndroid Build Coastguard Worker "2", 2269*333d2b36SAndroid Build Coastguard Worker "3", 2270*333d2b36SAndroid Build Coastguard Worker "current", 2271*333d2b36SAndroid Build Coastguard Worker ], 2272*333d2b36SAndroid Build Coastguard Worker symbol_file: "stubslib.map.txt", 2273*333d2b36SAndroid Build Coastguard Worker }, 2274*333d2b36SAndroid Build Coastguard Worker target: { 2275*333d2b36SAndroid Build Coastguard Worker host: { 2276*333d2b36SAndroid Build Coastguard Worker enabled: false, 2277*333d2b36SAndroid Build Coastguard Worker }, 2278*333d2b36SAndroid Build Coastguard Worker android_arm64: { 2279*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/stubslib.so"], 2280*333d2b36SAndroid Build Coastguard Worker }, 2281*333d2b36SAndroid Build Coastguard Worker android_arm: { 2282*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/stubslib.so"], 2283*333d2b36SAndroid Build Coastguard Worker }, 2284*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 2285*333d2b36SAndroid Build Coastguard Worker enabled: true, 2286*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/stubslib.so"], 2287*333d2b36SAndroid Build Coastguard Worker }, 2288*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 2289*333d2b36SAndroid Build Coastguard Worker enabled: true, 2290*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/stubslib.so"], 2291*333d2b36SAndroid Build Coastguard Worker }, 2292*333d2b36SAndroid Build Coastguard Worker }, 2293*333d2b36SAndroid Build Coastguard Worker strip: { 2294*333d2b36SAndroid Build Coastguard Worker none: true, 2295*333d2b36SAndroid Build Coastguard Worker }, 2296*333d2b36SAndroid Build Coastguard Worker} 2297*333d2b36SAndroid Build Coastguard Worker`), 2298*333d2b36SAndroid Build Coastguard Worker ) 2299*333d2b36SAndroid Build Coastguard Worker} 2300*333d2b36SAndroid Build Coastguard Worker 2301*333d2b36SAndroid Build Coastguard Workerfunc TestUniqueHostSoname(t *testing.T) { 2302*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 2303*333d2b36SAndroid Build Coastguard Worker sdk { 2304*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2305*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2306*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mylib"], 2307*333d2b36SAndroid Build Coastguard Worker } 2308*333d2b36SAndroid Build Coastguard Worker 2309*333d2b36SAndroid Build Coastguard Worker cc_library { 2310*333d2b36SAndroid Build Coastguard Worker name: "mylib", 2311*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2312*333d2b36SAndroid Build Coastguard Worker unique_host_soname: true, 2313*333d2b36SAndroid Build Coastguard Worker } 2314*333d2b36SAndroid Build Coastguard Worker `) 2315*333d2b36SAndroid Build Coastguard Worker 2316*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2317*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2318*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2319*333d2b36SAndroid Build Coastguard Worker 2320*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2321*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2322*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mylib"], 2323*333d2b36SAndroid Build Coastguard Worker} 2324*333d2b36SAndroid Build Coastguard Worker 2325*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2326*333d2b36SAndroid Build Coastguard Worker name: "mylib", 2327*333d2b36SAndroid Build Coastguard Worker prefer: false, 2328*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2329*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2330*333d2b36SAndroid Build Coastguard Worker host_supported: true, 2331*333d2b36SAndroid Build Coastguard Worker unique_host_soname: true, 2332*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2333*333d2b36SAndroid Build Coastguard Worker target: { 2334*333d2b36SAndroid Build Coastguard Worker host: { 2335*333d2b36SAndroid Build Coastguard Worker enabled: false, 2336*333d2b36SAndroid Build Coastguard Worker }, 2337*333d2b36SAndroid Build Coastguard Worker android_arm64: { 2338*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm64/lib/mylib.so"], 2339*333d2b36SAndroid Build Coastguard Worker }, 2340*333d2b36SAndroid Build Coastguard Worker android_arm: { 2341*333d2b36SAndroid Build Coastguard Worker srcs: ["android/arm/lib/mylib.so"], 2342*333d2b36SAndroid Build Coastguard Worker }, 2343*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86_64: { 2344*333d2b36SAndroid Build Coastguard Worker enabled: true, 2345*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86_64/lib/mylib-host.so"], 2346*333d2b36SAndroid Build Coastguard Worker }, 2347*333d2b36SAndroid Build Coastguard Worker linux_glibc_x86: { 2348*333d2b36SAndroid Build Coastguard Worker enabled: true, 2349*333d2b36SAndroid Build Coastguard Worker srcs: ["linux_glibc/x86/lib/mylib-host.so"], 2350*333d2b36SAndroid Build Coastguard Worker }, 2351*333d2b36SAndroid Build Coastguard Worker }, 2352*333d2b36SAndroid Build Coastguard Worker strip: { 2353*333d2b36SAndroid Build Coastguard Worker none: true, 2354*333d2b36SAndroid Build Coastguard Worker }, 2355*333d2b36SAndroid Build Coastguard Worker} 2356*333d2b36SAndroid Build Coastguard Worker`), 2357*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 2358*333d2b36SAndroid Build Coastguard Worker.intermediates/mylib/android_arm64_armv8-a_shared/mylib.so -> android/arm64/lib/mylib.so 2359*333d2b36SAndroid Build Coastguard Worker.intermediates/mylib/android_arm_armv7-a-neon_shared/mylib.so -> android/arm/lib/mylib.so 2360*333d2b36SAndroid Build Coastguard Worker.intermediates/mylib/linux_glibc_x86_64_shared/mylib-host.so -> linux_glibc/x86_64/lib/mylib-host.so 2361*333d2b36SAndroid Build Coastguard Worker.intermediates/mylib/linux_glibc_x86_shared/mylib-host.so -> linux_glibc/x86/lib/mylib-host.so 2362*333d2b36SAndroid Build Coastguard Worker`), 2363*333d2b36SAndroid Build Coastguard Worker ) 2364*333d2b36SAndroid Build Coastguard Worker} 2365*333d2b36SAndroid Build Coastguard Worker 2366*333d2b36SAndroid Build Coastguard Workerfunc TestNoSanitizerMembers(t *testing.T) { 2367*333d2b36SAndroid Build Coastguard Worker result := testSdkWithCc(t, ` 2368*333d2b36SAndroid Build Coastguard Worker sdk { 2369*333d2b36SAndroid Build Coastguard Worker name: "mysdk", 2370*333d2b36SAndroid Build Coastguard Worker native_shared_libs: ["mynativelib"], 2371*333d2b36SAndroid Build Coastguard Worker } 2372*333d2b36SAndroid Build Coastguard Worker 2373*333d2b36SAndroid Build Coastguard Worker cc_library_shared { 2374*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 2375*333d2b36SAndroid Build Coastguard Worker srcs: ["Test.cpp"], 2376*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["myinclude"], 2377*333d2b36SAndroid Build Coastguard Worker arch: { 2378*333d2b36SAndroid Build Coastguard Worker arm64: { 2379*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["arm64/include"], 2380*333d2b36SAndroid Build Coastguard Worker sanitize: { 2381*333d2b36SAndroid Build Coastguard Worker hwaddress: true, 2382*333d2b36SAndroid Build Coastguard Worker }, 2383*333d2b36SAndroid Build Coastguard Worker }, 2384*333d2b36SAndroid Build Coastguard Worker }, 2385*333d2b36SAndroid Build Coastguard Worker } 2386*333d2b36SAndroid Build Coastguard Worker `) 2387*333d2b36SAndroid Build Coastguard Worker 2388*333d2b36SAndroid Build Coastguard Worker CheckSnapshot(t, result, "mysdk", "", 2389*333d2b36SAndroid Build Coastguard Worker checkAndroidBpContents(` 2390*333d2b36SAndroid Build Coastguard Worker// This is auto-generated. DO NOT EDIT. 2391*333d2b36SAndroid Build Coastguard Worker 2392*333d2b36SAndroid Build Coastguard Workerapex_contributions_defaults { 2393*333d2b36SAndroid Build Coastguard Worker name: "mysdk.contributions", 2394*333d2b36SAndroid Build Coastguard Worker contents: ["prebuilt_mynativelib"], 2395*333d2b36SAndroid Build Coastguard Worker} 2396*333d2b36SAndroid Build Coastguard Worker 2397*333d2b36SAndroid Build Coastguard Workercc_prebuilt_library_shared { 2398*333d2b36SAndroid Build Coastguard Worker name: "mynativelib", 2399*333d2b36SAndroid Build Coastguard Worker prefer: false, 2400*333d2b36SAndroid Build Coastguard Worker visibility: ["//visibility:public"], 2401*333d2b36SAndroid Build Coastguard Worker apex_available: ["//apex_available:platform"], 2402*333d2b36SAndroid Build Coastguard Worker compile_multilib: "both", 2403*333d2b36SAndroid Build Coastguard Worker export_include_dirs: ["include/myinclude"], 2404*333d2b36SAndroid Build Coastguard Worker arch: { 2405*333d2b36SAndroid Build Coastguard Worker arm64: { 2406*333d2b36SAndroid Build Coastguard Worker export_system_include_dirs: ["arm64/include/arm64/include"], 2407*333d2b36SAndroid Build Coastguard Worker }, 2408*333d2b36SAndroid Build Coastguard Worker arm: { 2409*333d2b36SAndroid Build Coastguard Worker srcs: ["arm/lib/mynativelib.so"], 2410*333d2b36SAndroid Build Coastguard Worker }, 2411*333d2b36SAndroid Build Coastguard Worker }, 2412*333d2b36SAndroid Build Coastguard Worker strip: { 2413*333d2b36SAndroid Build Coastguard Worker none: true, 2414*333d2b36SAndroid Build Coastguard Worker }, 2415*333d2b36SAndroid Build Coastguard Worker} 2416*333d2b36SAndroid Build Coastguard Worker`), 2417*333d2b36SAndroid Build Coastguard Worker checkAllCopyRules(` 2418*333d2b36SAndroid Build Coastguard Workermyinclude/Test.h -> include/myinclude/Test.h 2419*333d2b36SAndroid Build Coastguard Workerarm64/include/Arm64Test.h -> arm64/include/arm64/include/Arm64Test.h 2420*333d2b36SAndroid Build Coastguard Worker.intermediates/mynativelib/android_arm_armv7-a-neon_shared/mynativelib.so -> arm/lib/mynativelib.so 2421*333d2b36SAndroid Build Coastguard Worker`), 2422*333d2b36SAndroid Build Coastguard Worker ) 2423*333d2b36SAndroid Build Coastguard Worker} 2424