Reland: Add jni_libs property to java tests

Add jni_libs property to java tests and treat it as test data that
should be copied to the lib or lib64 directory in the test directory.

This relands I3a118b933ab30dcd731c6dc2708da9bc63ab5520 with fixes for
the test on mac.

Fixes: 176593487
Test: java_test.go
Change-Id: I2f8c46643cff7a7ae6dc4d4dbad58f0396e45f09
This commit is contained in:
Colin Cross
2021-01-26 11:01:43 -08:00
parent b5fa2646d8
commit f8d9c499d4
2 changed files with 67 additions and 0 deletions

View File

@@ -20,6 +20,7 @@ import (
"path/filepath"
"reflect"
"regexp"
"runtime"
"strconv"
"strings"
"testing"
@@ -462,6 +463,38 @@ func TestBinary(t *testing.T) {
}
}
func TestTest(t *testing.T) {
ctx, _ := testJava(t, `
java_test_host {
name: "foo",
srcs: ["a.java"],
jni_libs: ["libjni"],
}
cc_library_shared {
name: "libjni",
host_supported: true,
device_supported: false,
stl: "none",
}
`)
buildOS := android.BuildOs.String()
foo := ctx.ModuleForTests("foo", buildOS+"_common").Module().(*TestHost)
expected := "lib64/libjni.so"
if runtime.GOOS == "darwin" {
expected = "lib64/libjni.dylib"
}
fooTestData := foo.data
if len(fooTestData) != 1 || fooTestData[0].Rel() != expected {
t.Errorf(`expected foo test data relative path [%q], got %q`,
expected, fooTestData.Strings())
}
}
func TestHostBinaryNoJavaDebugInfoOverride(t *testing.T) {
bp := `
java_library {