t_basic.c revision 1.1
11.1Sperseant/*	$NetBSD: t_basic.c,v 1.1 2025/10/13 00:44:35 perseant Exp $	*/
21.1Sperseant
31.1Sperseant#include <sys/types.h>
41.1Sperseant#include <sys/mount.h>
51.1Sperseant#include <sys/wait.h>
61.1Sperseant
71.1Sperseant#include <atf-c.h>
81.1Sperseant#include <ctype.h>
91.1Sperseant#include <errno.h>
101.1Sperseant#include <fcntl.h>
111.1Sperseant#include <limits.h>
121.1Sperseant#include <stdio.h>
131.1Sperseant#include <stdlib.h>
141.1Sperseant#include <unistd.h>
151.1Sperseant#include <string.h>
161.1Sperseant
171.1Sperseant#include <rump/rump.h>
181.1Sperseant#include <rump/rump_syscalls.h>
191.1Sperseant
201.1Sperseant#include <ufs/ufs/ufsmount.h>
211.1Sperseant#include <ufs/lfs/lfs.h>
221.1Sperseant#include <ufs/lfs/lfs_extern.h>
231.1Sperseant
241.1Sperseant#include "h_macros.h"
251.1Sperseant#include "util.h"
261.1Sperseant
271.1Sperseant#define FSSIZE 10000
281.1Sperseant
291.1Sperseant/* Actually run the test */
301.1Sperseantvoid test(int);
311.1Sperseant
321.1SperseantATF_TC(newfs_fsck32);
331.1SperseantATF_TC_HEAD(newfs_fsck32, tc)
341.1Sperseant{
351.1Sperseant	atf_tc_set_md_var(tc, "descr",
361.1Sperseant		"LFS32 newfs_lfs produces a filesystem that passes fsck_lfs");
371.1Sperseant	atf_tc_set_md_var(tc, "timeout", "20");
381.1Sperseant}
391.1Sperseant
401.1SperseantATF_TC(newfs_fsck64);
411.1SperseantATF_TC_HEAD(newfs_fsck64, tc)
421.1Sperseant{
431.1Sperseant	atf_tc_set_md_var(tc, "descr",
441.1Sperseant		"LFS64 newfs_lfs produces a filesystem that passes fsck_lfs");
451.1Sperseant	atf_tc_set_md_var(tc, "timeout", "20");
461.1Sperseant}
471.1Sperseant
481.1SperseantATF_TC_BODY(newfs_fsck32, tc)
491.1Sperseant{
501.1Sperseant	test(32);
511.1Sperseant}
521.1Sperseant
531.1SperseantATF_TC_BODY(newfs_fsck64, tc)
541.1Sperseant{
551.1Sperseant	test(64);
561.1Sperseant}
571.1Sperseant
581.1Sperseantvoid test(int width)
591.1Sperseant{
601.1Sperseant	setvbuf(stdout, NULL, _IONBF, 0);
611.1Sperseant
621.1Sperseant	/*
631.1Sperseant	 * Initialize.
641.1Sperseant	 */
651.1Sperseant
661.1Sperseant	/* Create image file larger than filesystem */
671.1Sperseant	create_lfs(FSSIZE, FSSIZE, width, 1);
681.1Sperseant
691.1Sperseant	if (fsck())
701.1Sperseant		atf_tc_fail_errno("fsck found errors after first unmount");
711.1Sperseant}
721.1Sperseant
731.1SperseantATF_TP_ADD_TCS(tp)
741.1Sperseant{
751.1Sperseant
761.1Sperseant	ATF_TP_ADD_TC(tp, newfs_fsck32);
771.1Sperseant	ATF_TP_ADD_TC(tp, newfs_fsck64);
781.1Sperseant	return atf_no_error();
791.1Sperseant}
80