From: <pa...@us...> - 2011-12-16 22:20:06
|
Revision: 4594 http://fuse-emulator.svn.sourceforge.net/fuse-emulator/?rev=4594&view=rev Author: pak21 Date: 2011-12-16 22:19:59 +0000 (Fri, 16 Dec 2011) Log Message: ----------- Add ZXCF unit test. Modified Paths: -------------- trunk/fuse/hacking/ChangeLog trunk/fuse/peripherals/ide/zxcf.c trunk/fuse/peripherals/ide/zxcf.h trunk/fuse/unittests/unittests.c Modified: trunk/fuse/hacking/ChangeLog =================================================================== --- trunk/fuse/hacking/ChangeLog 2011-12-04 04:47:32 UTC (rev 4593) +++ trunk/fuse/hacking/ChangeLog 2011-12-16 22:19:59 UTC (rev 4594) @@ -3728,3 +3728,4 @@ write said unit test. 20111128 peripherals/ide/zxatasp.[ch],unittests/unittests.c: add ZXATASP unit test. +20111216 peripherals/ide/zxcf.[ch],unittests/unittests.c: add ZXCF unit test. Modified: trunk/fuse/peripherals/ide/zxcf.c =================================================================== --- trunk/fuse/peripherals/ide/zxcf.c 2011-12-04 04:47:32 UTC (rev 4593) +++ trunk/fuse/peripherals/ide/zxcf.c 2011-12-16 22:19:59 UTC (rev 4594) @@ -37,10 +37,12 @@ #include "periph.h" #include "settings.h" #include "ui/ui.h" +#include "unittests/unittests.h" #include "zxcf.h" /* Two 8Kb memory chunks accessible by the Z80 when /ROMCS is low */ static memory_page zxcf_memory_map_romcs[2]; +static int zxcf_memory_source; /* TBD: Allow memory size selection (128K/512K/1024K) @@ -108,7 +110,6 @@ zxcf_init( void ) { int error, i; - int zxcf_source; last_memctl = 0x00; @@ -125,8 +126,9 @@ module_register( &zxcf_module_info ); - zxcf_source = memory_source_register( "ZXCF" ); - for( i = 0; i < 2; i++ ) zxcf_memory_map_romcs[i].source = zxcf_source; + zxcf_memory_source = memory_source_register( "ZXCF" ); + for( i = 0; i < 2; i++ ) + zxcf_memory_map_romcs[i].source = zxcf_memory_source; periph_register( PERIPH_TYPE_ZXCF, &zxcf_periph ); if( periph_register_paging_events( event_type_string, &page_event, @@ -342,3 +344,32 @@ } } +int +zxcf_unittest( void ) +{ + int r = 0; + + int old_setting = settings_current.zxcf_active; + + settings_current.zxcf_active = 1; + + zxcf_memctl_write( 0x10b4, 0x00 ); + r += unittests_assert_16k_page( 0x0000, zxcf_memory_source, 0 ); + r += unittests_assert_16k_ram_page( 0x4000, 5 ); + r += unittests_assert_16k_ram_page( 0x8000, 2 ); + r += unittests_assert_16k_ram_page( 0xc000, 0 ); + + zxcf_memctl_write( 0x10b4, 0x3f ); + r += unittests_assert_16k_page( 0x0000, zxcf_memory_source, 63 ); + r += unittests_assert_16k_ram_page( 0x4000, 5 ); + r += unittests_assert_16k_ram_page( 0x8000, 2 ); + r += unittests_assert_16k_ram_page( 0xc000, 0 ); + + zxcf_memctl_write( 0x10b4, 0x80 ); + r += unittests_paging_test_48( 2 ); + + settings_current.zxcf_active = old_setting; + + return r; +} + Modified: trunk/fuse/peripherals/ide/zxcf.h =================================================================== --- trunk/fuse/peripherals/ide/zxcf.h 2011-12-04 04:47:32 UTC (rev 4593) +++ trunk/fuse/peripherals/ide/zxcf.h 2011-12-16 22:19:59 UTC (rev 4594) @@ -36,5 +36,7 @@ int zxcf_eject( void ); libspectrum_byte zxcf_last_memctl( void ); +int zxcf_unittest( void ); + #endif /* #ifndef FUSE_ZXCF_H */ Modified: trunk/fuse/unittests/unittests.c =================================================================== --- trunk/fuse/unittests/unittests.c 2011-12-04 04:47:32 UTC (rev 4593) +++ trunk/fuse/unittests/unittests.c 2011-12-16 22:19:59 UTC (rev 4594) @@ -36,6 +36,7 @@ #include "peripherals/disk/plusd.h" #include "peripherals/ide/divide.h" #include "peripherals/ide/zxatasp.h" +#include "peripherals/ide/zxcf.h" #include "peripherals/if1.h" #include "peripherals/if2.h" #include "peripherals/speccyboot.h" @@ -706,6 +707,7 @@ r += divide_unittest(); r += zxatasp_unittest(); + r += zxcf_unittest(); } return r; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |