diff options
m--------- | grextras | 0 | ||||
-rw-r--r-- | include/gras/sbuffer.i | 11 | ||||
-rw-r--r-- | tests/sbuffer_test.py | 13 |
3 files changed, 22 insertions, 2 deletions
diff --git a/grextras b/grextras -Subproject dcc0a5384270c49f99f35446fecd927452ba923 +Subproject 1f150b3b57671f1f14066967c65819317493004 diff --git a/include/gras/sbuffer.i b/include/gras/sbuffer.i index b910588..69b4833 100644 --- a/include/gras/sbuffer.i +++ b/include/gras/sbuffer.i @@ -37,10 +37,17 @@ nitems=self.length, readonly=readonly ) + %} - def __len__(self): return self.length + size_t __len__(void) + { + return ($self)->length; + } - %} + bool __nonzero__(void) + { + return bool(*($self)); + } } #endif /*INCLUDED_GRAS_SBUFFER_I*/ diff --git a/tests/sbuffer_test.py b/tests/sbuffer_test.py index da21909..58cdedb 100644 --- a/tests/sbuffer_test.py +++ b/tests/sbuffer_test.py @@ -12,10 +12,15 @@ class SBufferTest(unittest.TestCase): print c.length print c.memory + def test_null_sbuffer(self): + s = gras.SBuffer() + self.assertFalse(s) + def test_make_sbuffer(self): c = gras.SBufferConfig() c.length = 42 s = gras.SBuffer(c) + self.assertTrue(s) self.assertEqual(c.length, s.get_actual_length()) self.assertEqual(c.length, s.length) self.assertEqual(c.length, len(s)) @@ -28,6 +33,14 @@ class SBufferTest(unittest.TestCase): self.assertEqual(c.length, len(s)) self.assertEqual(c.length, len(a)) + def test_get_zero_len_sbuffer(self): + c = gras.SBufferConfig() + c.length = 0 + s = gras.SBuffer(c) + a = s.get() + self.assertEqual(c.length, len(s)) + self.assertEqual(c.length, len(a)) + def test_more_get_with_offset(self): c = gras.SBufferConfig() c.length = 4 |