diff options
Diffstat (limited to 'ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/conformance/ConformanceTestEngine.java')
-rw-r--r-- | ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/conformance/ConformanceTestEngine.java | 219 |
1 files changed, 0 insertions, 219 deletions
diff --git a/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/conformance/ConformanceTestEngine.java b/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/conformance/ConformanceTestEngine.java deleted file mode 100644 index c2ad3a207..000000000 --- a/ECOMP-PDP/src/test/java/org/openecomp/policy/pdp/test/conformance/ConformanceTestEngine.java +++ /dev/null @@ -1,219 +0,0 @@ -/*- - * ============LICENSE_START======================================================= - * ECOMP-PDP - * ================================================================================ - * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. - * ================================================================================ - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * ============LICENSE_END========================================================= - */ - -package org.openecomp.policy.pdp.test.conformance; - -import org.openecomp.policy.common.logging.flexlogger.FlexLogger; -import org.openecomp.policy.common.logging.flexlogger.Logger; - -import com.att.research.xacml.api.Request; -import com.att.research.xacml.api.Response; -import com.att.research.xacml.api.pdp.PDPEngine; -import com.att.research.xacml.api.pdp.PDPEngineFactory; -import com.att.research.xacml.api.pdp.ScopeResolver; -import com.att.research.xacml.std.dom.DOMProperties; -import com.att.research.xacml.std.dom.DOMRequest; -import com.att.research.xacml.std.dom.DOMResponse; -import com.att.research.xacml.util.FactoryException; - -/** - * ConformanceTestEngine handles the creation of the PDPEngine for a ConformanceTest instance. - * - * @version $Revision: 1.2 $ - */ -public class ConformanceTestEngine { - private Logger logger = FlexLogger.getLogger(ConformanceTestEngine.class); - - private PDPEngineFactory pdpEngineFactory; - private ScopeResolver scopeResolver; - private boolean lenientRequests; - private boolean lenientPolicies; - private int iterations = 1; - - // total of all first calls to decide() - private long firstDecideTime; - private int numberOfFirstDecides = 0; - - // total of all non-first-calls to decide() - private long decideTimeMultiple; - - // total of average time each test case uses for a Request - // (sum of : for each test case, average of all non-first-call calls to decide() ) - private long avgDecideTimeMultiple = 0; - - protected PDPEngineFactory getPDPEngineFactory() throws FactoryException { - if (this.pdpEngineFactory == null) { - this.pdpEngineFactory = PDPEngineFactory.newInstance(); - this.pdpEngineFactory.setScopeResolver(this.scopeResolver); - } - return this.pdpEngineFactory; - } - - public ConformanceTestEngine(ScopeResolver scopeResolverIn, boolean lenientRequestsIn, boolean lenientPoliciesIn, int iterationsIn) { - this.scopeResolver = scopeResolverIn; - this.lenientRequests = lenientRequestsIn; - this.lenientPolicies = lenientPoliciesIn; - this.iterations = iterationsIn; - } - - public ConformanceTestResult run(ConformanceTest conformanceTest) { - if (conformanceTest.getRequest() == null || conformanceTest.getResponse() == null || conformanceTest.getRepository() == null) { - logger.error("Incomplete Conformance Test: " + conformanceTest.getTestName()); - } - PDPEngineFactory thisPDPEngineFactory = null; - try { - thisPDPEngineFactory = this.getPDPEngineFactory(); - } catch (FactoryException ex) { - return new ConformanceTestResult(conformanceTest, ex); - } - - ConformanceTestResult conformanceTestResult = new ConformanceTestResult(conformanceTest, iterations); - - /* - * Load the request - */ - Request request = null; - boolean isLenient = DOMProperties.isLenient(); - try { - DOMProperties.setLenient(this.lenientRequests); - try { - request = DOMRequest.load(conformanceTest.getRequest()); - conformanceTestResult.setRequest(request); - } catch (Exception ex) { - logger.error("Exception loading Request file " + conformanceTest.getRequest().getAbsolutePath(), ex); - conformanceTestResult.setError(ex); - return conformanceTestResult; - - } - - /* - * Load the expected response - */ - Response response = null; - try { - response = DOMResponse.load(conformanceTest.getResponse()); - conformanceTestResult.setExpectedResponse(response); - } catch (Exception ex) { - logger.error("Exception loading Response file " + conformanceTest.getResponse().getAbsolutePath(), ex); - conformanceTestResult.setError(ex); - return conformanceTestResult; - } - - /* - * Set up the configuration for the policy finder - */ - conformanceTest.getRepository().setXACMLProperties(); - DOMProperties.setLenient(this.lenientPolicies); - - /* - * Create the engine - */ - PDPEngine pdpEngine = null; - try { - // pdpEngine = thisPDPEngineFactory.newEngine(conformanceTest.getRootPolicy(), conformanceTest.getReferencedPolicies(), pipFinderEngine); - pdpEngine = thisPDPEngineFactory.newEngine(); - } catch (Exception ex) { - logger.error("Exception getting PDP engine instance", ex); - conformanceTestResult.setError(ex); - return conformanceTestResult; - } - if (pdpEngine == null) { - logger.error("Null PDP engine"); - conformanceTestResult.setError(new NullPointerException("Null engine")); - return conformanceTestResult; - } - - /* - * Run the request - */ - long startTime, endTime; - long curDecideTime = this.firstDecideTime; - try { - startTime = System.nanoTime(); - response = pdpEngine.decide(request); - endTime = System.nanoTime(); -//System.out.println(endTime - startTime); - // add to total - this.firstDecideTime += endTime - startTime; - this.numberOfFirstDecides++; - // remember just this test - conformanceTestResult.setFirstCallTime(endTime - startTime); - conformanceTestResult.setActualResponse(response); - } catch (Exception ex) { - logger.error("Exception in decide", ex); - conformanceTestResult.setError(ex); - return conformanceTestResult; - } - if (response == null) { - logger.error("Null Response"); - conformanceTestResult.setError(new NullPointerException("Null Response")); - return conformanceTestResult; - } - - long localLoopTime = 0; - try { - // if user requested non-first-call calls to decide() to get performance info, run them now. - // We can ignore the result since we are only interested in how long they take to process the Request. - for (int i = 0 ; i < this.iterations ; i++) { - startTime = System.nanoTime(); - pdpEngine.decide(request); - endTime = System.nanoTime(); -//System.out.println(endTime - startTime); - // add to the global total for all tests - this.decideTimeMultiple += (endTime - startTime); - // remember just this one test's info - localLoopTime += (endTime - startTime); - } - } catch (Exception ex) { - logger.error("Exception in iterated decide", ex); - return conformanceTestResult; - } - - // add to total average for non-first-call times for all test cases - avgDecideTimeMultiple += (localLoopTime / iterations); -//System.out.println("localLoop="+localLoopTime + " it="+iterations + " avg=" + (localLoopTime / iterations) ); - // remember average time for just this test - conformanceTestResult.setAverageTotalLoopTime(localLoopTime/iterations); - - long elapsedDecideTime = this.firstDecideTime - curDecideTime; - logger.info("Decide Time: " + elapsedDecideTime + "ns"); - - return conformanceTestResult; - } finally { - DOMProperties.setLenient(isLenient); - } - } - - public long getFirstDecideTime() { - return this.firstDecideTime; - } - - public long getDecideTimeMultiple() { - return this.decideTimeMultiple; - } - - - public long getAvgFirstDecideTime() { - return this.firstDecideTime / numberOfFirstDecides; - } - public long getAvgDecideTimeMultiple() { - return this.avgDecideTimeMultiple / numberOfFirstDecides; - } -} |