1#!/bin/ksh 2# $OpenBSD: checknewfs,v 1.10 2023/10/12 16:59:23 anton Exp $ 3# Written by Otto Moerbeek, 2007, Public domain 4 5 6cleanup() { 7 [ -z "$vnd" ] || { vnconfig -u "$vnd" || :; } 8 rm -f $image 9} 10 11trap 'cleanup' INT 12 13dotest() { 14 if ! grep -q "$2|" /etc/disktab; then 15 echo disk type $2 does not exist in /etc/disktab 16 echo SKIPPED 17 return 18 fi 19 image=$(mktemp -t imageXXXXXXXXXX); 20 dd if=/dev/random of=$image bs=512 count=$1 2>/dev/null && 21 vnd=$(vnconfig $image) || exit 1 22 disklabel -w $vnd $2 && 23 newfs -O 1 $3 /dev/r${vnd}a 24 if [ $? != 0 ]; then 25 ret=$(($ret + 1)) 26 echo TEST $1 $2 \"$3\" failed 27 else 28 (fsck -nf /dev/${vnd}a | fgrep SALVAGE) 29 if [ $? == 0 ]; then 30 ret=$(($ret + 1)) 31 echo TEST $1 $2 \"$3\" failed 32 else 33 echo TEST $1 $2 \"$3\" OK 34 fi 35 fi 36 echo ========================== 37 if [ $clean == 1 ]; then 38 cleanup 39 fi 40} 41 42ret=0 43vnd= 44 45if [ $# == 0 ]; then 46 clean=1 47 dotest 3800 rdroot "-m 0 -o space -i 4096" 48 dotest 5760 floppy288 "-m 0 -o space -i 81920 -c 5760" 49 dotest 5760 floppy288 "-m 0 -o space -i 81920 -c 5752" 50 dotest 5760 floppy288 "-m 0 -o space -i 524288 -c 5760" 51 dotest 5760 floppy288 "-m 0 -o space -i 524288 -c 5761" 52 dotest 2880 floppy3 "-m 0 -o space -i 81920" 53 dotest 2880 floppy3 "-m 0 -o space -i 81920 -c 2880" 54 dotest 2880 floppy3 "-m 0 -o space -i 524288 -c 2880" 55else 56 clean=0 57 dotest "${@}" 58fi 59 60exit $ret 61