Log inRegister an accountBrowse CSDbHelp & documentationFacts & StatisticsThe forumsAvailable RSS-feeds on CSDbSupport CSDb Commodore 64 Scene Database
You are not logged in - nap
CSDb User Forums


Forums > C64 Coding > Automatic regression testing
2014-06-22 23:18
Martin Piper

Registered: Nov 2007
Posts: 722
Automatic regression testing

At the moment what I do for automatic regression of multiplexor code is to have an external process capture thousands of lossless screenshots of the VICE window as it is running.

Meanwhile the C64 code will run through an endless cycle of animating sprite formations while mainline running code that uses different length opcodes across the frames. This is to ensure that any raster IRQs are triggered at different scan line cycle offsets. It basically causes jitter to make sure the multiplexor doesn't unexpectedly cause visual bugs when being used.

I then post process these screenshots and have some code to detect any sprite bugs, it then detects the frame count which is displayed in the background at certain points.

However this isn't that optimal because it means I have to re-run the test and advance to that frame count to try to debug the code. It also takes ages since VICE has to be running and generating non-warp video output to a Window.

What would be ideal is to be able to run VICE in warp console mode and to be able to reliably do the following:
Every frame:
Break point at the bottom of the screen.
Dump a BMP.
Wait for the external tool to regression test.
If there is a problem save a snapshot with CPU execution history that contains exact cycle counts.
Continue the test and keep logging test data.


Does anybody else do this with the Windows build?
2014-06-23 06:39
Oswald

Registered: Apr 2002
Posts: 5094
is it not possible to note frame number, then get the code in the state (without incrementally getting there) which displays that buggy frame ? maybe there's a way to dump memory data too besides the screenshots.
2014-06-23 08:24
Flavioweb

Registered: Nov 2011
Posts: 463
To know frame number is not just possible to divide "total cycles" by "cycles per frame"?
If is possible to "report" the "total cycle used" we can know exactly where "we are" if a brk occour.
But maybe we need to know how many cycles are used from startup to "when" first cycle is used by vic...
2014-06-23 15:35
Martin Piper

Registered: Nov 2007
Posts: 722
Quote: is it not possible to note frame number, then get the code in the state (without incrementally getting there) which displays that buggy frame ? maybe there's a way to dump memory data too besides the screenshots.

Possibly, jitter makes it tricky.
2014-06-24 15:49
WVL

Registered: Mar 2002
Posts: 902
What happened here? Some (a lot) of posts went missing :-)
2014-06-24 16:11
iAN CooG

Registered: May 2002
Posts: 3194
nazimod failure, apparently. previous OT posts removed while the internal counter is still counting them all =)
2014-06-25 02:47
Martin Piper

Registered: Nov 2007
Posts: 722
What I did in the end was to modify the emulator's VIC code to detect sprite register writes that would cause visual bugs and trigger a snapshot save.
This then allows the machine state to be debugged at my leisure.
2014-06-25 06:08
Oswald

Registered: Apr 2002
Posts: 5094
interesting, how do you do that exactly ? break if sprite pointer changes during its display ?
2014-06-26 06:07
Martin Piper

Registered: Nov 2007
Posts: 722
Quote: interesting, how do you do that exactly ? break if sprite pointer changes during its display ?

Basically yes. The emulator code knows if there an update to the sprites during the their display and update cycles so I can force a full dump at that point.
RefreshSubscribe to this thread:

You need to be logged in to post in the forum.

Search the forum:
Search   for   in  
All times are CET.
Search CSDb
Advanced
Users Online
Brittle/Dentifrice^(?)
Guests online: 71
Top Demos
1 Next Level  (9.7)
2 13:37  (9.7)
3 Mojo  (9.7)
4 Coma Light 13  (9.6)
5 Edge of Disgrace  (9.6)
6 What Is The Matrix 2  (9.6)
7 The Demo Coder  (9.6)
8 Uncensored  (9.6)
9 Comaland 100%  (9.6)
10 Wonderland XIV  (9.6)
Top onefile Demos
1 No Listen  (9.6)
2 Layers  (9.6)
3 Cubic Dream  (9.6)
4 Party Elk 2  (9.6)
5 Copper Booze  (9.6)
6 Dawnfall V1.1  (9.5)
7 Rainbow Connection  (9.5)
8 Onscreen 5k  (9.5)
9 Morph  (9.5)
10 Libertongo  (9.5)
Top Groups
1 Performers  (9.3)
2 Booze Design  (9.3)
3 Oxyron  (9.3)
4 Triad  (9.3)
5 Censor Design  (9.3)
Top Coders
1 Axis  (9.8)
2 Graham  (9.8)
3 Lft  (9.8)
4 Crossbow  (9.8)
5 HCL  (9.8)

Home - Disclaimer
Copyright © No Name 2001-2024
Page generated in: 0.052 sec.