Add a case that tests the robustness of the cache stack with nested try catches:
SomeSuccess()
try SomeReversion() {
//no-op
} catch {
try SomeReversion() {
//no-op
} catch {
SomeSuccess()
}
}
SomeSuccess()
The cache stack should handler inner reversions and maintain record of the successful actions.
The ultimate end-state for the above pseudocode should be equivalent to the result of the following:
SomeSuccess()
SomeSuccess()
SomeSuccess()