
/*
 *	this is the TODO file for VDT (the Visual Disk Test) by <botao.org>
 *
 *	it is more of a collection of ideas, plans, reminders,
 *	and even thoughts that may give an glimpse of what is yet to come,
 *	although not in an orderly manner...
 *
 *										Sep'10			alexandre botao
 */

/*

 *	+ compound tests (in this order)
		stress/copy,comp
		aver
		meld
 *
	+ users guide
	+ ref. manual
	+ per-os (device) vdttest.sh

	+ --neat : padded report (-v only)

*** install to look for ~/bin,man & $MANPATH...

??? why not timeflag AND deadflag ? ? (req. dif. places 4 countdown & timer)

!?! { --wrap AND '-M #' } should not require (nor use) '-t #' , right ?? ...

	+ timeout by gtod() if precision-flag

	options-file ( VDT=... , -? optfilnam )

 *	file-stress ( 100 & 1000 times )
		stat
		create + close
		stat
		open (RDONLY) + close
		stat
		open (WRONLY) + write(512) + close
		stat
		open (RDONLY) + read(512) + close
		stat
		open (WRONLY+TRUNC) + close
		stat
		open (WRONLY+SYNC) + write(512) + close
		stat
		open (RDWR) + read(512) + upd + write(512) + close
		stat
		open (append) + write(1MiB) + close
		stat
		unlink

 **	comment-on-screen : s/tabs,spaces/'-'/g ...

 *
 *	+ single-letter alternates for all --flags, then getopt+getlongopt
 *
 *	altbufsiz (see --full below):
		**	--full to rand % (visblksiz / altbufsiz) ... "#of altbufs per visblk"
 *		+ flag(--full!) and meth/vis.feedback to effectively read(&|writ) whole visblk altbuf-at-a-time ...
 *
 *	unify getvd???? ( vd????list[] )
 *
 *	flag (?-k?) to skip an offset before address (eg. -k 1G)
 *
 *	>> separate/distinct acct per region(h/m/t) or slice ...
 *
 *	>> colorize (1) panes (2) different times/speeds ? based on ??
 *		1) store seek time per-visblk ; @ eoj : calc (global) mean & diff-to-mean per-visblk
 *		2) assign color on a per-diff-to-mean basis ( +bigger=bluer=slower , -bigger=redder=faster )
 *		3) repaint bwp giving each visblk its color
 *			--or--
 *		1) store as above ; @eoj sort list of seek times
 *		2) mark initial(smaller/faster) 20% red , last(larger/slower) 20% blue middle(mean) 20% green
 *		3) as above
 *
 *	- test gethrtime (? & other timers ?)
 *
 *	? better (optimized) use of bwp ? irregular block sizes ? (--jagg)
 *		idem for the screen when > 24x80
 *		progress-window to increase width when block-window size fixes smaller than optimum
 *	
 *	- flag to alt. logfile
 *	+ use vdterr to log read/seek/write errors with file/block/iosize (-v)
 *
 *	+ compute std.dev , spot aberrant results...
 *
 *	--full
 *	   >> ? use a set of permutations(chars+colors) (eg. abc...xyz) to reflect the 2nd rand :
 *	     >> sizeof(charset) should be > (visblksiz/512) else use * ;
 *     (***) ideally another window (maybe just 1 line) to reflect 2nd rand pos within lbsize
 *		FIXME: impl. full+uniq+seek/sect coverage req. BIGBIG sect addr tabl & ctrl (same as uniq+read)...
 *
 *	--play mode : able to select & switch test type (or other flags/parms) on the fly
 *		on the two-pane mode, this is a must for times & speeds (switch view on the fly or per-flag)
 *
 *	devise a meth to apply (and visually reflect) distinct addr.modes to 1st&2nd files 
 *
 *	impl. copy(&other 2-file comp. tests) w/ two-bwp's..
 *
 *	--fake (--mock)
 *
 *	gvdt / kvdt :
 *		literal port 1st, then
 *		draw disk (top view) sect#0 @ 0deg (east) divided into vblks (square-computed 1st, track/cyl l8r)
 */

/*
 * vi:nu ts=4
 */
