-
Notifications
You must be signed in to change notification settings - Fork 37
Description
Problem
I want to have a single executable with multiple go_bandit
suites. Some of them may contain before_each
.
Expected result
Each suite installed by go_bandit
runs in a "sandboxed" environment and no variables or before_each
would leak between them.
### Current result
A before_each
inside a go_bandit
works like a global, surviving longer than the lambda, triggering UBs.
Code example
This zip contains an example CPP. It declares two go_bandit
and one of them initialises a unique_ptr
in a before_each
. Running as-is crashes due to a UB after the before_each
was called in the wrong go_bandit
.
Changing the order of the go_bandit
s causes Bandit to complain about before_each
without an it
.
This setup simulates what would happen if each go_bandit
was in its own CPP file.
Request
I think Bandit needs to be modified to do one of these three possible solutions:
- Support multiple
go_bandit
withbefore_each
. Maybe there's a way to treatgo_bandit
's lambda as a implicitdescribe
? - Explicitly deny a
before_each
inside ago_bandit
. This seems to be the norm, because there's no mention tobefore_each
insidego_bandit
in docs. if so, then code should fail and docs needs to be explicit about it.