Track dependencies when reading notice files
Track which files are read by the notice file indexer and add a flag to textnotice and htmlnotice to support writing them out. Bug: 207445310 Test: textnotice_test Test: htmlnotice_test Change-Id: Ib74706b8a87a5ed9268a0fe37982ecf89f4e227d
This commit is contained in:
@@ -20,6 +20,7 @@ import (
|
||||
"fmt"
|
||||
"html"
|
||||
"os"
|
||||
"reflect"
|
||||
"regexp"
|
||||
"strings"
|
||||
"testing"
|
||||
@@ -51,13 +52,14 @@ func TestMain(m *testing.M) {
|
||||
|
||||
func Test(t *testing.T) {
|
||||
tests := []struct {
|
||||
condition string
|
||||
name string
|
||||
roots []string
|
||||
includeTOC bool
|
||||
stripPrefix string
|
||||
title string
|
||||
expectedOut []matcher
|
||||
condition string
|
||||
name string
|
||||
roots []string
|
||||
includeTOC bool
|
||||
stripPrefix string
|
||||
title string
|
||||
expectedOut []matcher
|
||||
expectedDeps []string
|
||||
}{
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -73,6 +75,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/lib/libb.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -100,6 +103,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/lib/libb.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -117,6 +121,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/lib/libb.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -146,6 +151,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/lib/libb.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -161,6 +167,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"container.zip/libb.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -172,6 +179,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"application"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -183,6 +191,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"bin/bin1"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "firstparty",
|
||||
@@ -194,6 +203,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"lib/libd.so"},
|
||||
firstParty{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/firstparty/FIRST_PARTY_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "notice",
|
||||
@@ -215,6 +225,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/bin/bin1"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/notice/NOTICE_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "notice",
|
||||
@@ -236,6 +250,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"container.zip/bin1"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/notice/NOTICE_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "notice",
|
||||
@@ -251,6 +269,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"application"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/notice/NOTICE_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "notice",
|
||||
@@ -268,6 +290,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"bin/bin1"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/notice/NOTICE_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "notice",
|
||||
@@ -279,6 +305,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"lib/libd.so"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/notice/NOTICE_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "reciprocal",
|
||||
@@ -300,6 +327,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/bin/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "reciprocal",
|
||||
@@ -321,6 +352,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"container.zip/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "reciprocal",
|
||||
@@ -336,6 +371,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"application"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "reciprocal",
|
||||
@@ -353,6 +392,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"bin/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "reciprocal",
|
||||
@@ -364,6 +407,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"lib/libd.so"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/notice/NOTICE_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "restricted",
|
||||
@@ -389,6 +433,11 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/bin/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "restricted",
|
||||
@@ -414,6 +463,11 @@ func Test(t *testing.T) {
|
||||
usedBy{"container.zip/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "restricted",
|
||||
@@ -429,6 +483,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"application"},
|
||||
restricted{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "restricted",
|
||||
@@ -448,6 +506,11 @@ func Test(t *testing.T) {
|
||||
usedBy{"bin/bin1"},
|
||||
reciprocal{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/reciprocal/RECIPROCAL_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "restricted",
|
||||
@@ -459,6 +522,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"lib/libd.so"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/notice/NOTICE_LICENSE"},
|
||||
},
|
||||
{
|
||||
condition: "proprietary",
|
||||
@@ -485,6 +549,11 @@ func Test(t *testing.T) {
|
||||
usedBy{"highest.apex/bin/bin1"},
|
||||
proprietary{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/proprietary/PROPRIETARY_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "proprietary",
|
||||
@@ -511,6 +580,11 @@ func Test(t *testing.T) {
|
||||
usedBy{"container.zip/bin1"},
|
||||
proprietary{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/proprietary/PROPRIETARY_LICENSE",
|
||||
"testdata/restricted/RESTRICTED_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "proprietary",
|
||||
@@ -526,6 +600,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"application"},
|
||||
proprietary{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/proprietary/PROPRIETARY_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "proprietary",
|
||||
@@ -543,6 +621,10 @@ func Test(t *testing.T) {
|
||||
usedBy{"bin/bin1"},
|
||||
proprietary{},
|
||||
},
|
||||
expectedDeps: []string{
|
||||
"testdata/firstparty/FIRST_PARTY_LICENSE",
|
||||
"testdata/proprietary/PROPRIETARY_LICENSE",
|
||||
},
|
||||
},
|
||||
{
|
||||
condition: "proprietary",
|
||||
@@ -554,6 +636,7 @@ func Test(t *testing.T) {
|
||||
usedBy{"lib/libd.so"},
|
||||
notice{},
|
||||
},
|
||||
expectedDeps: []string{"testdata/notice/NOTICE_LICENSE"},
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
@@ -566,7 +649,9 @@ func Test(t *testing.T) {
|
||||
rootFiles = append(rootFiles, "testdata/"+tt.condition+"/"+r)
|
||||
}
|
||||
|
||||
ctx := context{stdout, stderr, os.DirFS("."), tt.includeTOC, tt.stripPrefix, tt.title}
|
||||
var deps []string
|
||||
|
||||
ctx := context{stdout, stderr, os.DirFS("."), tt.includeTOC, tt.stripPrefix, tt.title, &deps}
|
||||
|
||||
err := htmlNotice(&ctx, rootFiles...)
|
||||
if err != nil {
|
||||
@@ -625,6 +710,15 @@ func Test(t *testing.T) {
|
||||
for ; lineno < len(tt.expectedOut); lineno++ {
|
||||
t.Errorf("htmlnotice: missing output line %d: ended early, want %q", lineno+1, tt.expectedOut[lineno].String())
|
||||
}
|
||||
|
||||
t.Logf("got deps: %q", deps)
|
||||
|
||||
t.Logf("want deps: %q", tt.expectedDeps)
|
||||
|
||||
if g, w := deps, tt.expectedDeps; !reflect.DeepEqual(g, w) {
|
||||
t.Errorf("unexpected deps, wanted:\n%s\ngot:\n%s\n",
|
||||
strings.Join(w, "\n"), strings.Join(g, "\n"))
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user