summaryrefslogtreecommitdiff
path: root/BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java
diff options
context:
space:
mode:
Diffstat (limited to 'BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java')
-rw-r--r--BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java222
1 files changed, 222 insertions, 0 deletions
diff --git a/BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java b/BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java
new file mode 100644
index 0000000..f4f2c7f
--- /dev/null
+++ b/BenchmarkFramework/app/src/main/java/art_benchmarks/caffeinemark/LogicAtom.java
@@ -0,0 +1,222 @@
+/*
+ * This software is available under multiple licenses at
+ * https://community.cablelabs.com/svn/OCAPRI/trunk/ri/RI_Stack/apps/vm_perf_test/src/com/tvworks/plateval/caffeinemark/LogicAtom.java
+ * and we redistribute it under the BSD 2-clause License
+ */
+
+ // COPYRIGHT_BEGIN
+ // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER
+ //
+ // Copyright (C) 2008-2013, Cable Television Laboratories, Inc.
+ //
+ // This software is available under multiple licenses:
+ //
+ // (1) BSD 2-clause
+ // Redistribution and use in source and binary forms, with or without modification, are
+ // permitted provided that the following conditions are met:
+ // .Redistributions of source code must retain the above copyright notice, this list
+ // of conditions and the following disclaimer.
+ // .Redistributions in binary form must reproduce the above copyright notice, this list of
+ // conditions and the following disclaimer in the documentation and/or other materials
+ // provided with the distribution.
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+ // TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
+ // PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ // HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ //
+ // (2) GPL Version 2
+ // This program is free software; you can redistribute it and/or modify
+ // it under the terms of the GNU General Public License as published by
+ // the Free Software Foundation, version 2. This program is distributed
+ // in the hope that it will be useful, but WITHOUT ANY WARRANTY; without
+ // even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+ // PURPOSE. See the GNU General Public License for more details.
+ //
+ // You should have received a copy of the GNU General Public License along
+ // with this program.If not, see<http:www.gnu.org/licenses/>.
+ //
+ // (3)CableLabs License
+ // If you or the company you represent has a separate agreement with CableLabs
+ // concerning the use of this code, your rights and obligations with respect
+ // to this code shall be as set forth therein. No license is granted hereunder
+ // for any other purpose.
+ //
+ // Please contact CableLabs if you need additional information or
+ // have any questions.
+ //
+ // CableLabs
+ // 858 Coal Creek Cir
+ // Louisville, CO 80027-9750
+ // 303 661-9100
+ // COPYRIGHT_END
+
+/*
+ * Description: Tests the speed with which the virtual machine executes decision-making
+ * instructions.
+ * Main Focus: TODO
+ *
+ */
+
+package art_benchmarks.caffeinemark;
+
+// TODO: investigate very short time of execution of host.
+// CHECKSTYLE.OFF: .*
+public class LogicAtom
+{
+ public boolean initialize(int i)
+ {
+ if(i != 0)
+ wIterationCount = i;
+ return true;
+ }
+
+ public int execute()
+ {
+ boolean flag7 = true;
+ boolean flag8 = true;
+ boolean flag9 = true;
+ boolean flag10 = true;
+ boolean flag11 = true;
+ boolean flag12 = true;
+ boolean flag6 = true;
+ boolean flag = true;
+ boolean flag1 = true;
+ boolean flag2 = true;
+ boolean flag3 = true;
+ boolean flag4 = true;
+ boolean flag5 = true;
+ flag7 = true;
+ flag8 = true;
+ flag9 = true;
+ flag10 = true;
+ flag11 = true;
+ flag12 = true;
+ for(int i = 0; i < wIterationCount; i++)
+ if((flag || flag1) && (flag2 || flag3) && (flag4 || flag5 || flag6))
+ {
+ flag7 = !flag7;
+ flag8 = !flag8;
+ flag9 = !flag9;
+ flag10 = !flag10;
+ flag11 = !flag11;
+ flag12 = !flag12;
+ flag = !flag;
+ flag1 = !flag1;
+ flag2 = !flag2;
+ flag3 = !flag3;
+ flag4 = !flag4;
+ flag5 = !flag5;
+ flag = !flag;
+ flag1 = !flag1;
+ flag2 = !flag2;
+ flag3 = !flag3;
+ flag4 = !flag4;
+ flag5 = !flag5;
+ }
+
+ flag = true;
+ flag1 = false;
+ flag2 = true;
+ flag3 = false;
+ flag4 = true;
+ flag5 = false;
+ for(int j = 0; j < wIterationCount; j++)
+ if((flag || flag1) && (flag2 || flag3) && (flag4 || flag5 || flag6))
+ {
+ flag = !flag;
+ flag1 = !flag1;
+ flag2 = !flag2;
+ flag3 = !flag3;
+ flag4 = !flag4;
+ flag5 = !flag5;
+ flag7 = !flag7;
+ flag8 = !flag8;
+ flag9 = !flag9;
+ flag10 = !flag10;
+ flag11 = !flag11;
+ flag12 = !flag12;
+ flag7 = !flag7;
+ flag8 = !flag8;
+ flag9 = !flag9;
+ flag10 = !flag10;
+ flag11 = !flag11;
+ flag12 = !flag12;
+ }
+
+ return !flag7 ? 1 : 0;
+ }
+
+ public String testName()
+ {
+ return new String("Logic");
+ }
+
+ public LogicAtom()
+ {
+ wIterationCount = 1200;
+ }
+
+ public void setLocal()
+ {
+ }
+
+ public int cleanUp()
+ {
+ return 0;
+ }
+
+ public int defaultMagnification()
+ {
+ return 3813;
+ }
+
+ public void setRemote()
+ {
+ }
+
+ public int wIterationCount;
+ // CHECKSTYLE.ON: .*
+
+ private static int PREDEFINED_ITERATION_COUNT = 500000;
+
+ public void timeLogicAtom(int iters) {
+ initialize(PREDEFINED_ITERATION_COUNT);
+ for (int i = 0; i < iters; i++) {
+ execute();
+ }
+ }
+
+ public boolean verifyLogicAtom() {
+ initialize(PREDEFINED_ITERATION_COUNT);
+ int expected = 0;
+ int found = execute();
+
+ if (found != expected) {
+ System.out.println("ERROR: Expected " + expected + " but found " + found);
+ return false;
+ }
+ return true;
+ }
+
+ public static void main(String[] argv) {
+ int rc = 0;
+ LogicAtom obj = new LogicAtom();
+
+ final long before = System.currentTimeMillis();
+ obj.timeLogicAtom(80);
+ final long after = System.currentTimeMillis();
+
+ if (!obj.verifyLogicAtom()) {
+ rc++;
+ }
+ System.out.println("art_benchmarks/caffeinemark/LogicAtom: " + (after - before));
+ System.exit(rc);
+ }
+}