dependency resources get out of sync when dirtied
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
testresources |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
Assume we have a resource manager A with resource a, and a resource manager B with resource b. B lists A as a dependency, so "b.a == a".
Now lets say we have two tests that depend on both A and B and the first test marks A as dirty causing it to be cleaned and replaced with a new resource a2. When the second test runs, it will be passed the resources (a2, b), but "b.a != a2" because b was not considered dirty.
The attached test suite demonstrates the problem.
The changes suggested in bug 308876 (merge resource managers and resource objects) would solve this problem as we would no longer have separate instances for the different generations, but this could also be solved without making those changes.
Related branches
- James Henstridge (community): Approve
- Jonathan Lange: Pending requested
- Diff: None lines
Changed in testresources: | |
status: | New → Fix Committed |
Changed in testresources: | |
status: | In Progress → Fix Committed |
Changed in testresources: | |
status: | Fix Committed → Fix Released |
So I misanalysed this initially.
Making isDirty check dependent resources works, but only if they haven't already been reset. So it needs to check that the resource has changed || is dirty. Im' doing this and checking again now.