aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/aflow/flow_test.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2026-01-16 09:33:14 +0100
committerDmitry Vyukov <dvyukov@google.com>2026-01-20 21:12:57 +0000
commit91e26ec437abcd42a8255aa88e31b45da059529e (patch)
treec9e6e26949375e3ae053f1fc84fe749e69d5cabc /pkg/aflow/flow_test.go
parent7f5908e77ae0e7fef4b7901341b8c2c4bbb74b28 (diff)
pkg/aflow: handle model quota errors
Detect model quota violations (assumed to be RPD). Make syz-agent not request jobs that use the model until the next quota reset time. Fixes #6573
Diffstat (limited to 'pkg/aflow/flow_test.go')
-rw-r--r--pkg/aflow/flow_test.go22
1 files changed, 22 insertions, 0 deletions
diff --git a/pkg/aflow/flow_test.go b/pkg/aflow/flow_test.go
index 97e2dd93a..3ee3f545b 100644
--- a/pkg/aflow/flow_test.go
+++ b/pkg/aflow/flow_test.go
@@ -918,3 +918,25 @@ func TestNoInputs(t *testing.T) {
require.Equal(t, err.Error(), "flow inputs are missing:"+
" field InBar is not present when converting map to aflow.flowInputs")
}
+
+func TestQuotaResetTime(t *testing.T) {
+ type Test struct {
+ when time.Time
+ reset time.Time
+ }
+ testLoc := time.FixedZone("+4h", 4*60*60) // seconds east of UTC
+ tests := []Test{
+ {time.Date(2000, 1, 1, 0, 0, 0, 0, time.UTC), time.Date(2000, 1, 1, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 0, 0, 0, 0, testLoc), time.Date(2000, 1, 1, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 8, 0, 0, 0, time.UTC), time.Date(2000, 1, 1, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 8, 0, 0, 0, testLoc), time.Date(2000, 1, 1, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 9, 0, 0, 0, time.UTC), time.Date(2000, 1, 2, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 9, 0, 0, 0, testLoc), time.Date(2000, 1, 1, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 13, 0, 0, 0, time.UTC), time.Date(2000, 1, 2, 8, 5, 0, 0, time.UTC)},
+ {time.Date(2000, 1, 1, 13, 0, 0, 0, testLoc), time.Date(2000, 1, 2, 8, 5, 0, 0, time.UTC)},
+ }
+ for _, test := range tests {
+ got := QuotaResetTime(test.when)
+ assert.Equal(t, test.reset, got, "when: %v", test.when)
+ }
+}