-
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_bandits 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_banditwithbefore_each. Maybe there's a way to treatgo_bandit's lambda as a implicitdescribe? - Explicitly deny a
before_eachinside ago_bandit. This seems to be the norm, because there's no mention tobefore_eachinsidego_banditin docs. if so, then code should fail and docs needs to be explicit about it.