e2etest/stress_generators/dummyAsserter.go (65 lines of code) (raw):

package main import ( "errors" "fmt" "github.com/Azure/azure-storage-azcopy/v10/e2etest" ) type DummyAsserter struct { CaughtError error } func (d *DummyAsserter) NoError(comment string, err error, failNow ...bool) { if err != nil { d.CaughtError = fmt.Errorf("%s: %w", comment, err) if e2etest.FirstOrZero(failNow) { panic(d.CaughtError) } } } func (d *DummyAsserter) Assert(comment string, assertion e2etest.Assertion, items ...any) { if len(items) < assertion.MinArgs() || len(items) > assertion.MaxArgs() { panic("assertion item count mismatch") } if !assertion.Assert(items...) { var err error if fa, ok := assertion.(e2etest.FormattedAssertion); ok { err = fmt.Errorf("assertion %s failed: %s (%s)", fa.Name(), fa.Format(items...), comment) } else { err = fmt.Errorf("assertion %s failed with items %v (%s)", assertion.Name(), items, comment) } d.CaughtError = err } } func (d *DummyAsserter) AssertNow(comment string, assertion e2etest.Assertion, items ...any) { if len(items) < assertion.MinArgs() || len(items) > assertion.MaxArgs() { panic("assertion item count mismatch") } if !assertion.Assert(items...) { var err error if fa, ok := assertion.(e2etest.FormattedAssertion); ok { err = fmt.Errorf("assertion %s failed: %s (%s)", fa.Name(), fa.Format(items...), comment) } else { err = fmt.Errorf("assertion %s failed with items %v (%s)", assertion.Name(), items, comment) } d.CaughtError = err panic(d.CaughtError) } } func (d *DummyAsserter) Error(reason string) { d.CaughtError = errors.New(reason) } func (d *DummyAsserter) Skip(reason string) { // no-op } func (d *DummyAsserter) Log(format string, a ...any) { fmt.Printf(format, a...) } func (d *DummyAsserter) Failed() bool { return d.CaughtError != nil } func (d *DummyAsserter) HelperMarker() e2etest.HelperMarker { return DummyHelper{} } func (d *DummyAsserter) GetTestName() string { return "" } type DummyHelper struct{} func (d DummyHelper) Helper() {} // noop