|
From: doug s. <hig...@ho...> - 2013-05-18 17:57:49
|
> I'm on native win32, so the x-window and /usr environment stuff doesn't work for me.
> I can run perl though - a .bat with:
> "E:\Perl\bin\perl.exe" hudson.sh
> pause
> but just generic crossplatform stuff, as in the freex3d/codegen folder.
> So I'm not sure where the boundary between perl and C could be, so that everyone can run.
> .
.
Paulo,
.
How about something like this:
1. Record
2. Playback
3. Compare
4. TestAll
.
In more detail:
1. Record - command line parameter for freewrl> saves .play and snapshots as you navigate and do things in the test scene
2. Playback - command line parameter for freewrl> reads .play, automatically runs and saves snapshots
3. Compare - perl script that compares Record vs Playback snapshots for a given test file
-- there might be several snapshots for a given test file run, named by the frame#
-- calls the platform file compare function
--- in ms windows its fc file1 file2
4. TestAll - perl script that runs through all test files, doing Playback and Compare, and reporting FAIL or SUCCESS to the user for each one run
.
-Doug
more...
.
Record mode
- command line flag puts it into a mode where it generates playback file and test fixtures
-- you do snapshots and address-neutralized scenegraph dumps and record frame and time
- playback file records:
-- playback[i] = {iframe, dtime, keystrokes or NULL, mouse (xy,button sequence) or NULL, snapshot URL or NULL, scenegraph_dump URL or NULL, ?other?}
- Option: one record per frame, so frame[i] = {dtime,keystrokes,mouse,snapshotURL,dumpscene_URL)
- Option: slow down frame rate intentionally to minimize noisy, empty playback records
- playback file naming> automatic: testfilename + R + .txt
- snapshot naming> automatic: testfilename + R / frame# || playback_index# + .rgb || .bmp
- dumpscene naming> automatic: testfilename + R / frame# || playback_index# + .dmp
.
Playback mode
Same as record mode except:
- instead of 'R' put 'P'
- instead of saving {frame#, dtime, keystrokes, mouse} they are read from the playback file
.
Compare
for each test scene
0. delete old scene Playback files and folder
1. run scene in playback mode and exit
2. file compare all the test fixture files in the testsceneR and testsceneP folders
.
Option: folder structure:
1.wrl (test scene)
1 / playback.play
1 / record / frame#.rgb, frame#.dump
1 / playback / frame#.rgb, frame#.dump
OR file naming pattern:
1.wrl
1.play
1_R / frame#.rgb, frame#.dump
1_P / frame#.rgb, frame#.dump
|