tools/gen: Add flags for explicit output

`-o` will emit the files to the given root output directory
`--verbose` will print what's going on, to help with debugging

Omitting these flags will behave as before.

Also consolidate the utils package into fileutils. These were two packages with near identical functionality.

Change-Id: I855dd4b57807fb9239a52e7f357842d4ba2517ee
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/107687
Commit-Queue: Ben Clayton <bclayton@google.com>
Reviewed-by: Dan Sinclair <dsinclair@chromium.org>
Kokoro: Kokoro <noreply+kokoro@google.com>
This commit is contained in:
Ben Clayton
2022-10-31 18:28:22 +00:00
committed by Dawn LUCI CQ
parent 6dbb463f1d
commit 68ed8d92d3
17 changed files with 192 additions and 234 deletions

View File

@@ -6,7 +6,7 @@ import (
"dawn.googlesource.com/dawn/tools/src/container"
"dawn.googlesource.com/dawn/tools/src/cts/query"
"dawn.googlesource.com/dawn/tools/src/utils"
"dawn.googlesource.com/dawn/tools/src/fileutils"
"github.com/google/go-cmp/cmp"
)
@@ -735,7 +735,7 @@ func TestReduceUnder(t *testing.T) {
}
for _, test := range []Test{
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a,b,*`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: failure},
@@ -745,7 +745,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a,*`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: failure},
@@ -755,7 +755,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:*`),
in: []QueryData{
{Query: Q(`suite:a,b:*`), Data: failure},
@@ -765,7 +765,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a,*`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: failure},
@@ -777,7 +777,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a,*`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: pass},
@@ -788,7 +788,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: pass},
@@ -799,7 +799,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:x`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: pass},
@@ -814,7 +814,7 @@ func TestReduceUnder(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
to: Q(`suite:a,b,c,*`),
in: []QueryData{
{Query: Q(`suite:a,b,*`), Data: pass},

View File

@@ -19,7 +19,7 @@ import (
"testing"
"dawn.googlesource.com/dawn/tools/src/cts/result"
"dawn.googlesource.com/dawn/tools/src/utils"
"dawn.googlesource.com/dawn/tools/src/fileutils"
"github.com/google/go-cmp/cmp"
)
@@ -31,12 +31,12 @@ func TestMinimalVariantTags(t *testing.T) {
}
for _, test := range []Test{
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{},
expect: []result.Variant{},
}, { ///////////////////////////////////////////////////////////////////
// Single variant, that can be entirely optimized away
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d,*"), Tags: T("a0", "b1", "c2"), Status: result.Pass},
},
@@ -44,7 +44,7 @@ func TestMinimalVariantTags(t *testing.T) {
}, { ///////////////////////////////////////////////////////////////////
// Multiple variants on the same query.
// Can also be entirely optimized away.
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d,*"), Tags: T("a0", "b1", "c2"), Status: result.Pass},
{Query: Q("a:b,c:d,*"), Tags: T("a1", "b2", "c0"), Status: result.Pass},
@@ -53,7 +53,7 @@ func TestMinimalVariantTags(t *testing.T) {
expect: []result.Variant{T()},
}, { ///////////////////////////////////////////////////////////////////
// Two variants where the 1st and 2nd tag-sets are redundant.
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d,*"), Tags: T("a0", "b0", "c0"), Status: result.Pass},
{Query: Q("a:b,c:d,*"), Tags: T("a1", "b1", "c1"), Status: result.Failure},
@@ -61,7 +61,7 @@ func TestMinimalVariantTags(t *testing.T) {
expect: []result.Variant{T("c0"), T("c1")},
}, { ///////////////////////////////////////////////////////////////////
// Two variants where the 1st and 3rd tag-sets are redundant.
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d,*"), Tags: T("a0", "b0", "c0"), Status: result.Pass},
{Query: Q("a:b,c:d,*"), Tags: T("a1", "b1", "c1"), Status: result.Failure},
@@ -71,7 +71,7 @@ func TestMinimalVariantTags(t *testing.T) {
expect: []result.Variant{T("b0"), T("b1")},
}, { ///////////////////////////////////////////////////////////////////
// Two variants where the 2nd and 3rd tag-sets are redundant.
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d,*"), Tags: T("a0", "b0", "c0"), Status: result.Pass},
{Query: Q("a:b,c:d,*"), Tags: T("a1", "b1", "c1"), Status: result.Failure},
@@ -82,7 +82,7 @@ func TestMinimalVariantTags(t *testing.T) {
}, { ///////////////////////////////////////////////////////////////////
// Check that variants aren't optimized to expand the set of results
// they target, even if results are uniform
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d0,*"), Tags: T("a0", "b0", "c0"), Status: result.Pass},
{Query: Q("a:b,c:d1,*"), Tags: T("a1", "b1", "c1"), Status: result.Pass},
@@ -91,7 +91,7 @@ func TestMinimalVariantTags(t *testing.T) {
}, { ///////////////////////////////////////////////////////////////////
// Exercise the optimizations to skip checks on tag removals that
// aren't found in all variants
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
{Query: Q("a:b,c:d0,*"), Tags: T("a0"), Status: result.Pass},
{Query: Q("a:b,c:d1,*"), Tags: T("b0"), Status: result.Pass},

View File

@@ -22,7 +22,7 @@ import (
"dawn.googlesource.com/dawn/tools/src/container"
"dawn.googlesource.com/dawn/tools/src/cts/query"
"dawn.googlesource.com/dawn/tools/src/cts/result"
"dawn.googlesource.com/dawn/tools/src/utils"
"dawn.googlesource.com/dawn/tools/src/fileutils"
"github.com/google/go-cmp/cmp"
)
@@ -325,7 +325,7 @@ func TestReplaceDuplicates(t *testing.T) {
}
for _, test := range []Test{
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
result.Result{Query: Q(`a`), Status: result.Pass, Duration: 1},
},
@@ -337,7 +337,7 @@ func TestReplaceDuplicates(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
result.Result{Query: Q(`a`), Status: result.Pass, Duration: 1},
result.Result{Query: Q(`a`), Status: result.Pass, Duration: 3},
@@ -350,7 +350,7 @@ func TestReplaceDuplicates(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
result.Result{Query: Q(`a`), Status: result.Pass},
result.Result{Query: Q(`b`), Status: result.Pass},
@@ -364,7 +364,7 @@ func TestReplaceDuplicates(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
result.Result{Query: Q(`a`), Status: result.Pass},
result.Result{Query: Q(`b`), Status: result.Pass},
@@ -383,7 +383,7 @@ func TestReplaceDuplicates(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
results: result.List{
result.Result{Query: Q(`a`), Status: result.Failure, Duration: 1, MayExonerate: true},
result.Result{Query: Q(`a`), Status: result.Failure, Duration: 3, MayExonerate: true},
@@ -1070,13 +1070,13 @@ func TestMerge(t *testing.T) {
}
for _, test := range []Test{
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{},
b: result.List{},
expect: result.List{},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
},
@@ -1086,7 +1086,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{},
b: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
@@ -1096,7 +1096,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
},
@@ -1109,7 +1109,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:b:*`), Tags: T(`x`), Status: result.Pass},
},
@@ -1122,7 +1122,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
},
@@ -1135,7 +1135,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Status: result.Pass},
},
@@ -1147,7 +1147,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
},
@@ -1159,7 +1159,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Crash},
},
@@ -1171,7 +1171,7 @@ func TestMerge(t *testing.T) {
},
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
a: result.List{
{Query: Q(`suite:a:*`), Tags: T(`x`), Status: result.Pass},
{Query: Q(`suite:b:*`), Tags: T(`x`), Status: result.Pass},
@@ -1211,82 +1211,82 @@ func TestDeduplicate(t *testing.T) {
}
for _, test := range []Test{
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass),
expect: result.Pass,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Abort),
expect: result.Abort,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Failure),
expect: result.Failure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Skip),
expect: result.Skip,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Crash),
expect: result.Crash,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Slow),
expect: result.Slow,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Unknown),
expect: result.Unknown,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.RetryOnFailure),
expect: result.RetryOnFailure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Failure),
expect: result.RetryOnFailure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Abort),
expect: result.Abort,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Skip),
expect: result.RetryOnFailure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Crash),
expect: result.Crash,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Slow),
expect: result.RetryOnFailure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.Unknown),
expect: result.Unknown,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Pass, result.RetryOnFailure),
expect: result.RetryOnFailure,
},
{ //////////////////////////////////////////////////////////////////////
location: utils.ThisLine(),
location: fileutils.ThisLine(),
statuses: result.NewStatuses(result.Status("??"), result.Status("?!")),
expect: result.Unknown,
},