address the next test...

This commit is contained in:
Fischlurch 2011-11-24 03:33:23 +01:00
parent 2ae1e3c8f9
commit 74702ebecd
2 changed files with 9 additions and 5 deletions

View file

@ -52,6 +52,9 @@
namespace engine { namespace engine {
namespace error = lumiera::error;
using error::LUMIERA_ERROR_LIFECYCLE;
typedef size_t HashVal; ////////////TICKET #722 typedef size_t HashVal; ////////////TICKET #722
class BuffHandle; class BuffHandle;
@ -227,7 +230,9 @@ namespace engine {
BU& BU&
BuffHandle::accessAs() BuffHandle::accessAs()
{ {
REQUIRE (pBuffer_); if (!pBuffer_)
throw error::Logic ("buffer not (yet) locked for access by clients"
, LUMIERA_ERROR_LIFECYCLE);
return *reinterpret_cast<BU*> (pBuffer_); return *reinterpret_cast<BU*> (pBuffer_);
} }

View file

@ -76,7 +76,6 @@ namespace test {
virtual void virtual void
run (Arg) run (Arg)
{ {
UNIMPLEMENTED ("build a diagnostic buffer provider and perform a full lifecycle");
verifySimpleUsage(); verifySimpleUsage();
verifyStandardCase(); verifyStandardCase();
} }
@ -93,10 +92,10 @@ namespace test {
BuffHandle buff = provider.lockBufferFor<TestFrame>(); BuffHandle buff = provider.lockBufferFor<TestFrame>();
CHECK (buff.isValid()); CHECK (buff.isValid());
CHECK (sizeof(TestFrame) <= buff.size()); CHECK (sizeof(TestFrame) <= buff.size());
buff.create<TestFrame>() = testData(0); buff.accessAs<TestFrame>() = testData(0);
TestFrame& storage = buff.accessAs<TestFrame>(); TestFrame& content = buff.accessAs<TestFrame>();
CHECK (testData(0) == storage); CHECK (testData(0) == content);
buff.release(); buff.release();
CHECK (!buff.isValid()); CHECK (!buff.isValid());