Skip to content
Snippets Groups Projects
Commit 8aed0fdf authored by Petr Rockai's avatar Petr Rockai
Browse files

test: Add testcases for new __vm_{peek,poke} capabilities.

parent 361b622b
No related branches found
No related tags found
No related merge requests found
/* TAGS: c */
#include <sys/divm.h>
#include <sys/trace.h>
#include <assert.h>
char a[ 16 ];
__vm_pointer_t ptr;
void poke( int off, int len, int val )
{
__vm_poke( _VM_ML_User, ptr.obj, ptr.off + off, len, val );
}
int main()
{
ptr = __vm_pointer_split( &a );
poke( 0, 1, 1 );
poke( 2, 3, 2 );
poke( 10, 5, 3 );
__vm_meta_t meta = { 0, 0, 0 };
int i = 0;
do {
int off = meta.offset + meta.length, len = 16 - off;
meta = __vm_peek( _VM_ML_User, ptr.obj, off, len );
__dios_trace_f( "%d %d %d", i, meta.offset, meta.length );
if ( meta.length )
assert( meta.value == ++ i );
}
while ( meta.length );
assert( i == 3 );
return 0;
}
/* TAGS: c */
#include <sys/divm.h>
#include <sys/trace.h>
#include <assert.h>
char a[ 16 ];
__vm_pointer_t ptr;
void poke( int off, int len, int val )
{
__vm_poke( _VM_ML_User, ptr.obj, ptr.off + off, len, val );
}
int main()
{
ptr = __vm_pointer_split( &a );
poke( 0, 3, 2 );
poke( 10, 5, 3 );
poke( 0, 1, 1 );
__vm_meta_t meta = { 0, 0, 0 };
int i = 0;
do {
int off = meta.offset + meta.length, len = 16 - off;
meta = __vm_peek( _VM_ML_User, ptr.obj, off, len );
__dios_trace_f( "%d %d %d", i, meta.offset, meta.length );
switch ( i )
{
case 0: assert( meta.offset == 0 && meta.length == 1 ); break;
case 1: assert( meta.offset == 1 && meta.length == 2 ); break;
case 2: assert( meta.offset == 10 && meta.length == 5 ); break;
}
if ( meta.length )
assert( meta.value == ++ i );
}
while ( meta.length );
assert( i == 3 );
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment