File:  [XINU] / xinu / sys / TEST / test.c.dsk1
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:39:04 2018 UTC (8 years, 3 months ago) by root
Branches: xinu, MAIN
CVS tags: xinu-19870308, HEAD
Xinu for VAX

/* test.c - main */

#include <conf.h>
#include <kernel.h>
#include <xebec.h>
#include <dtc.h>
#include <disk.h>

#define	NBLOCKS	200

/*------------------------------------------------------------------------
 *  main  --  test disk driver
 *------------------------------------------------------------------------
 */
main()
{
	int	w;			/* nonzero for write test	*/
	int	i, j;
	char	ch;
	char	buff[DBUFSIZ], buf2[DBUFSIZ];

	kprintf("Type R for read-only test, W for read/write test: ");
	while ( (ch=getc(CONSOLE)) != 'R' && ch!='W')
		;
	w = ch=='W' ? 1 : 0;
	if (w)
		kprintf("\nPerforming read/write test\n\n");
	else
		kprintf("\nPerforming only read test\n\n");
	kprintf("Test 1: read first %d blocks from disk.\n",NBLOCKS);
	for (i=0 ; i<NBLOCKS ; i++)
		if (NBLOCKS < 20)
		kprintf("Read of block %d is %d\n",i,read(DISK0,buff,i));
		else
			read(DISK0,buff,i);
	if ( ! w ) {
		kprintf("Finshed testing\n");
		return;
	}
	for (j=0 ; j< DBUFSIZ ; j++)
		buf2[j] = 'X';
	kprintf("\nTest 2: write the first %d blocks\n",NBLOCKS);
	for (i=0 ; i < NBLOCKS ; i++)
		if (NBLOCKS < 20)
		kprintf("Write of block %d is %d\n",i,
			write(DISK0,dskcbuf(buf2),i));
		else
			write(DISK0,dskcbuf(buf2),i);
	kprintf("\nTest 3: read back and check first %d blocks\n",NBLOCKS);
	for (i=0 ; i < NBLOCKS ; i++) {
		for (j=0 ; j<DBUFSIZ ; j++)
			buff[j] = '\01';
		if (NBLOCKS < 20)
		kprintf("Read of block %d got %d\n",i,read(DISK0,buff,i));
		else
			read(DISK0,buff,i);
		for (j=0 ; j<DBUFSIZ ; j++)
			if (buf2[j] != buff[j])
				kprintf("Error on byte %d 0%o->0%o\n",
					j,buf2[j],buff[j]);
		if (NBLOCKS < 20)
			kprintf("Comparison done\n");
	}
	kprintf("\n\nFinished all tests\n");
}

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.