Esempio n. 1
0
// Initializes a new line with its starting and ending points.
Line* newLine(Vector* start, Vector* end)
{
	Line* l = alloc(Line, 1);

	l->start = (start != NULL ? start : emptyVector());
	l->end = (end != NULL ? end : emptyVector());

	return l;
}
void TestFSPropSet()
{
	cDebug d("TestFSPropSet");
	
	cFSPropSet propSet;

	// mess around with inode...
	d.TraceDebug("Setting Inode (property %d)\n", cFSPropSet::PROP_INODE);
	propSet.SetInode(53);
	TEST(propSet.GetInode() == 53);
	d.TraceDebug("Valid Vector is now \n");
	PrintPropVector(propSet.GetValidVector(), d);
	TEST(cFSPropSet::PROP_INODE == propSet.GetPropIndex(_T("Inode Number")));
	TEST(TSTRING(_T("Inode Number")).compare(propSet.GetPropName(cFSPropSet::PROP_INODE)) == 0);

	// mess around with blocks...
	d.TraceDebug("Setting Blocks (property %d)\n", cFSPropSet::PROP_BLOCKS);
	propSet.SetBlocks(50);
	TEST(propSet.GetBlocks() == 50);
	d.TraceDebug("Valid Vector is now \n");
	PrintPropVector(propSet.GetValidVector(), d);
	TEST(cFSPropSet::PROP_BLOCKS == propSet.GetPropIndex(_T("Blocks")));
	TEST(TSTRING(_T("Blocks")).compare(propSet.GetPropName(cFSPropSet::PROP_BLOCKS)) == 0);
    
	// try copying it...
	cFSPropSet ps2 = propSet;
	d.TraceDebug("Copied Object's Valid Vector:\n");
	PrintPropVector(propSet.GetValidVector(), d);
	TEST(ps2.GetValidVector() == propSet.GetValidVector());
	TEST(ps2.GetBlocks() == propSet.GetBlocks());
	TEST(ps2.GetInode() == propSet.GetInode());

	// try invalidating properties...
	propSet.InvalidateProp(cFSPropSet::PROP_INODE);
	TEST( propSet.GetValidVector().ContainsItem(cFSPropSet::PROP_INODE) == false );
	propSet.InvalidateAll();
	cFCOPropVector emptyVector(propSet.GetValidVector().GetSize());
	TEST(propSet.GetValidVector() == emptyVector);

	return;
}