/*
 * Copyright (c) 2003-2005, 2006 Sendmail, Inc. and its suppliers.
 *	All rights reserved.
 *
 * By using this file, you agree to the terms and conditions set
 * forth in the LICENSE file which can be found at the top level of
 * the sendmail distribution.
 */

#include "sm/generic.h"
SM_IDSTR(id, "@(#)$Id: t-cdbfs-0.c,v 1.8 2007/06/15 02:52:56 ca Exp $")

#include "sm/fs.h"
#include "sm/statfs.h"
#include "sm/cdbfs.h"
#include "sm/io.h"
#include "sm/test.h"

static int Verbose;

#define CDB_ID	"S000000003FA45E9801"
#define CHG1	123

static sm_ret_T
fscdbtest(void)
{
	sm_ret_T ret;
	ulong f1, f2;
	cdb_fsctx_P cdb_fsctx;
#if !CDB_FS_CTX_LOCAL
	fs_ctx_P fs_ctx;
#endif

#if !CDB_FS_CTX_LOCAL
	ret = fs_ctx_open(16, &(fs_ctx));
	SM_TEST(ret == SM_SUCCESS);
	if (sm_is_err(ret))
		return ret;
#endif
	ret = cdb_fsctx_open(
#if !CDB_FS_CTX_LOCAL
			fs_ctx,
#endif
			(const char *)0, &cdb_fsctx, &f1);
	SM_TEST(ret == SM_SUCCESS);
	SM_TEST(cdb_fsctx != NULL);
	if (cdb_fsctx == NULL)
		return ret;

	ret = cdb_sz_add(cdb_fsctx, CDB_ID, CHG1, &f2);
	SM_TEST(ret == SM_SUCCESS);
	SM_TEST(f1 - CHG1 == f2);

	ret = cdb_sz_rm(cdb_fsctx, CDB_ID, CHG1, &f2);
	SM_TEST(ret == SM_SUCCESS);
	SM_TEST(f1 == f2);

	ret = cdb_fsctx_close(cdb_fsctx);
	SM_TEST(ret == SM_SUCCESS);

#if !CDB_FS_CTX_LOCAL
	ret = fs_ctx_close(fs_ctx);
	SM_TEST(ret == SM_SUCCESS);
#endif

	return ret;
}

int
main(int argc, char *argv[])
{
	int c;
	char *dir, *prg;

	opterr = 0;
	Verbose = 0;
	dir = ".";
	prg = argv[0];
	while ((c = getopt(argc, argv, "V")) != -1)
	{
		switch (c)
		{
		  case 'V':
			++Verbose;
			break;
		  default:
			exit(1);
		}
	}
	sm_test_begin(argc, argv, "test freediskspace");
	argc -= optind;
	argv += optind;
	fscdbtest();
	return sm_test_end();
}


syntax highlighted by Code2HTML, v. 0.9.1