Open
Description
Example error:
assert.go:495:
Error Trace: /Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/assert.go:495
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/assert.go:225
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/assert.go:233
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/assert.go:74
Error: did not error (but should have) plonk(bn254)
When updating the dependency on github.com/stretchr/testify
from v1.8.1
to v1.8.2
we get something better:
Error Trace: /Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:500
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:230
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:238
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:77
since we point to the actual files. However the meaningful place where test failed (in the circuit) is missing from the stack (even when calling directly runtime
methods).
This is because we are running in a subtest (maybe nested?); if we replace
assert.t.Run(desc, func(t *testing.T) {
// TODO(ivokub): access to compiled cache is not synchronized -- running
// the tests in parallel will result in undetermined behavior. A better
// approach would be to synchronize compiled and run the tests in
// parallel for a potential speedup.
assert := &Assert{t, require.New(t), assert.compiled}
fn(assert)
})
by
assert.t.Logf("running %s", desc)
fn(assert)
we get
assert.go:69: running Goldilocks/limb=64
assert.go:69: running bn254/groth16
assert.go:500:
Error Trace: /Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:500
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:230
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:238
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:70
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:226
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/element_test.go:53
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/test/assert.go:70
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/element_test.go:47
/Users/gbotrel/dev/go/src/github.com/consensys/gnark/std/math/emulated/element_test.go:39
which is what we want (ideally if we could filter the gnark/test part, that would be more readable, but it's outside of our code base...)