Flush memento objects.

R=brianwilkerson@google.com
BUG=

Review URL: https://codereview.chromium.org//1129173003

git-svn-id: https://dart.googlecode.com/svn/branches/bleeding_edge/dart@45610 260f80e4-7a28-3924-810f-c04153c831b5
This commit is contained in:
scheglov@google.com 2015-05-07 19:36:04 +00:00
parent 9aeccc0d2f
commit 1bc667b086
2 changed files with 17 additions and 1 deletions

View file

@ -817,6 +817,7 @@ class ResultData {
void flush() {
state = CacheState.FLUSHED;
value = descriptor.defaultValue;
memento = null;
}
}

View file

@ -420,9 +420,11 @@ class CacheEntryTest extends EngineTestCase {
AnalysisTarget target = new TestSource();
CacheEntry entry = new CacheEntry();
cache.put(target, entry);
Object memento1 = 'aaa';
{
entry.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST, null);
entry.setValue(descriptor1, 1, TargetedResult.EMPTY_LIST, memento1);
expect(entry.getState(descriptor1), CacheState.VALID);
expect(entry.getMemento(descriptor1), memento1);
}
{
entry.setValue(descriptor2, 2, TargetedResult.EMPTY_LIST, null);
@ -434,6 +436,7 @@ class CacheEntryTest extends EngineTestCase {
expect(entry.getState(descriptor1), CacheState.FLUSHED);
expect(entry.getState(descriptor2), CacheState.VALID);
expect(entry.getState(descriptor3), CacheState.VALID);
expect(entry.getMemento(descriptor1), isNull);
}
}
@ -717,6 +720,18 @@ class ResultDataTest extends EngineTestCase {
expect(data.state, CacheState.INVALID);
expect(data.value, value);
}
test_flush() {
ResultDescriptor result = new ResultDescriptor('test', -1);
ResultData data = new ResultData(result);
data.state = CacheState.VALID;
data.value = 123;
data.memento = 'abc';
data.flush();
expect(data.state, CacheState.FLUSHED);
expect(data.value, -1);
expect(data.memento, isNull);
}
}
@reflectiveTest