Add files via upload
* add test code for ByteArray.slice and fix bug.
This commit is contained in:
parent
825952cfd2
commit
b5ae271a0e
@ -242,11 +242,12 @@ static Buf* cut( Buf *p, size_t pos, size_t len )
|
|||||||
|
|
||||||
Buf *retval = createBuf( len, getEndian(p) );
|
Buf *retval = createBuf( len, getEndian(p) );
|
||||||
if( retval == NULL ) longjmp( except, ERR_NOMEM );
|
if( retval == NULL ) longjmp( except, ERR_NOMEM );
|
||||||
|
|
||||||
if( pos < size && len > 0 ){
|
if( pos < size && len > 0 ){
|
||||||
memcpy( retval->buffer, p->buffer+pos, len );
|
memcpy( retval->buffer, p->buffer+pos, len );
|
||||||
}
|
}
|
||||||
|
|
||||||
setLength(retval, len);
|
retval->length = len;
|
||||||
return retval;
|
return retval;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
34
test.lua
34
test.lua
@ -263,12 +263,46 @@ local function test_write_bytes()
|
|||||||
assert( src[6] == -1 )
|
assert( src[6] == -1 )
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function test_slice()
|
||||||
|
local buffer_data = {
|
||||||
|
1,2,3,4,5,6,7,8,9,10,
|
||||||
|
11,12,13
|
||||||
|
}
|
||||||
|
local buf = ByteArray.init( buffer_data )
|
||||||
|
local a = buf:slice()
|
||||||
|
assert( #a == #buffer_data )
|
||||||
|
for i=1, #a do
|
||||||
|
assert( a[i] == buffer_data[i] )
|
||||||
|
end
|
||||||
|
local b = buf:slice(4)
|
||||||
|
assert( #b == #buffer_data - 4 )
|
||||||
|
for i=1, #b do
|
||||||
|
assert( b[i] == buf[i+4] )
|
||||||
|
end
|
||||||
|
local c = buf:slice( 2, 8 )
|
||||||
|
assert( #c == 8 - 2 )
|
||||||
|
for i=1, #c do
|
||||||
|
assert( c[i] == buf[i+2] )
|
||||||
|
end
|
||||||
|
local d = buf:slice( 6, -3 )
|
||||||
|
assert( #d == #buffer_data - 3 - 6 )
|
||||||
|
for i=1, #d do
|
||||||
|
assert( d[i] == buf[i+6] )
|
||||||
|
end
|
||||||
|
local e = buf:slice( -7, -2 )
|
||||||
|
assert( #e == 7 - 2 )
|
||||||
|
for i=1, #e do
|
||||||
|
assert( e[i] == buf[i+#buffer_data-7] )
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
test_readonly()
|
test_readonly()
|
||||||
test_index()
|
test_index()
|
||||||
test_tostring()
|
test_tostring()
|
||||||
test_property_length()
|
test_property_length()
|
||||||
test_property_position()
|
test_property_position()
|
||||||
test_endian()
|
test_endian()
|
||||||
|
test_slice()
|
||||||
test_read_integer()
|
test_read_integer()
|
||||||
test_read_float()
|
test_read_float()
|
||||||
test_read_cstr()
|
test_read_cstr()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user