Пример #1
0
void Eval::doBP() {
    XenOption* opt = XenOption::getInstance();
    
	double lower = 999999999999;
	int lBound = 0;
	int hBound = 0;

	for(EvalMap::iterator it = ptrDist->begin() ; it != ptrDist->end() ; ++it)
        if (it->second < lower) {
            lower = it->second;
            EvalMap::iterator itH = it;
            if (it != ptrDist->begin())
                --itH;
            EvalMap::iterator itL = it;
            if (it != ptrDist->end())
                ++itL;
            lBound = itL->first;
            hBound = itH->first;
            if (lBound > it->first) { lBound = 0; }
            if (hBound < it->first) { hBound = opt->getMaxEvalPC(); }
        }
    
	opt->setStep(opt->getStep() / 2);
    std::cout << "Requiring eval from " + XenCommon::toString(hBound) + " to " + XenCommon::toString(lBound) + " with step " + XenCommon::toString(opt->getStep()) << std::endl;
	doEval(hBound, lBound);
    
	if (opt->getStep() > 1) {
		doBP();
	}
}
Пример #2
0
// Automatic type casting
Data *BaseIntegerInstruction::eval(Data *i) {
        integerNum = (IntegerData *)num;
        Data *ret = doEval((IntegerData *)i);
        return ret;
}
static int doTest(
	CFArrayRef certArray,
	SecPolicyRef policy,
	bool quiet)
{
	int ourRtn = 0;
	SecCertificateRef leafCert = (SecCertificateRef)CFArrayGetValueAtIndex(
		certArray, 0);

	if(!quiet) {
		printf("Verifying cert is good as is...\n");
	}
	ourRtn = doEval(certArray, policy, kSecTrustResultUnspecified, quiet);
	if(ourRtn && !IGNORE_EXISTING_STATE) {
		return ourRtn;
	}

	if(!quiet) {
		printf("Verifying cert currently has kSecTrustResultUnspecified...\n");
	}
	if(doGetUserTrust(leafCert, policy, kSecTrustResultUnspecified)) {
		ourRtn = -1;
		/* but keep going */
	}

	if(!quiet) {
		printf("setting and verifying SecTrustResultDeny...\n");
	}
	if(doSetVerifyUserTrust(leafCert, policy, kSecTrustResultDeny)) {
		ourRtn = -1;
	}

	if(!quiet) {
		printf("Verify cert with SecTrustResultDeny...\n");
	}
	ourRtn = doEval(certArray, policy, kSecTrustResultDeny, quiet);
	if(ourRtn) {
		ourRtn = -1;
	}

	if(!quiet) {
		printf("setting and verifying kSecTrustResultConfirm...\n");
	}
	if(doSetVerifyUserTrust(leafCert, policy, kSecTrustResultConfirm)) {
		ourRtn = -1;
	}

	if(!quiet) {
		printf("Verify cert with kSecTrustResultConfirm...\n");
	}
	ourRtn = doEval(certArray, policy, kSecTrustResultConfirm, quiet);
	if(ourRtn) {
		ourRtn = -1;
	}

	if(!quiet) {
		printf("setting and verifying kSecTrustResultUnspecified...\n");
	}
	if(doSetVerifyUserTrust(leafCert, policy, kSecTrustResultUnspecified)) {
		ourRtn = -1;
	}

	if(!quiet) {
		printf("Verify cert with kSecTrustResultUnspecified...\n");
	}
	ourRtn = doEval(certArray, policy, kSecTrustResultUnspecified, quiet);
	
	if(!quiet) {
		printf("Verify SecTrustSetUserTrust(kSecTrustResultConfirm) fails...\n");
	}
	/* verify Radar 4642125 - this should fail, not crash */
	OSStatus ortn = SecTrustSetUserTrust(leafCert, policy, kSecTrustResultConfirm);
	if(ortn != unimpErr) {
		printf("***SecTrustSetUserTrust returned %ld; expected %ld (unimpErr)\n",
			(long)ortn, (long)unimpErr);
		ourRtn = -1;
	}
	return ourRtn;
}