File tree Expand file tree Collapse file tree 1 file changed +30
-2
lines changed
Expand file tree Collapse file tree 1 file changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -463,7 +463,35 @@ int func2() {
463463 fork1.vmcall (" func1" );
464464 REQUIRE (fork1.return_value () == 12345 );
465465
466- fork1.vmcall (" func2" );
467- REQUIRE (fork1.return_value () == 54321 );
466+ fork1.vmcall (" set_value" , 22222 );
467+
468+ fork1.vmcall (" func1" );
469+ REQUIRE (fork1.return_value () == 22222 );
470+
471+ REQUIRE_THROWS ([&] () {
472+ const size_t size = 8ULL << 20 ;
473+ uint64_t addr = fork1.mmap_allocate (size);
474+ char buffer[4096 ];
475+ memset (buffer, ' a' , sizeof (buffer));
476+ for (size_t i = 0 ; i < size; i += 4096 )
477+ {
478+ fork1.copy_to_guest (addr + i, buffer, 4096 );
479+ }
480+ // Unreachable
481+ abort ();
482+ }());
483+
484+ auto fork2 = tinykvm::Machine { machine2, {
485+ .max_mem = MAX_MEMORY, .max_cow_mem = MAX_COWMEM
486+ } };
487+ REQUIRE (fork2.return_value () == 666 ); // Main() return value
488+
489+ fork2.vmcall (" func1" );
490+ REQUIRE (fork2.return_value () == 12345 );
491+
492+ fork2.vmcall (" set_value" , 22222 );
493+
494+ fork2.vmcall (" func1" );
495+ REQUIRE (fork2.return_value () == 22222 );
468496 }
469497}
You can’t perform that action at this time.
0 commit comments