river-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From peter_firmst...@apache.org
Subject svn commit: r1634322 [13/41] - in /river/jtsk/skunk/qa_refactor/trunk: qa/src/com/sun/jini/qa/harness/ qa/src/com/sun/jini/test/impl/end2end/e2etest/ qa/src/com/sun/jini/test/impl/joinmanager/ qa/src/com/sun/jini/test/impl/mahalo/ qa/src/com/sun/jini/t...
Date Sun, 26 Oct 2014 13:17:31 GMT
Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/leasing/LeaseUsesTestBase.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/leasing/LeaseUsesTestBase.java?rev=1634322&r1=1634321&r2=1634322&view=diff
==============================================================================
--- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/leasing/LeaseUsesTestBase.java
(original)
+++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/leasing/LeaseUsesTestBase.java
Sun Oct 26 13:17:28 2014
@@ -1,296 +1,297 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-package com.sun.jini.test.impl.outrigger.leasing;
-
-import java.util.logging.Level;
-
-// java classes
-import java.rmi.*;
-
-// jini classes
-import net.jini.core.lease.Lease;
-
-// Test harness specific classes
-import com.sun.jini.qa.harness.TestException;
-import com.sun.jini.qa.harness.QAConfig;
-
-// Shared classes
-import com.sun.jini.qa.harness.Test;
-import com.sun.jini.test.share.TestBase;
-import java.util.concurrent.atomic.AtomicLong;
-
-
-/**
- * Base class for tests which acquire some resource under a lease and
- * then use until the lease expires. Also tests to see if the lease
- * has the appropriate duration.  Have variations that cancel and/or
- * renew the lease.
- */
-public abstract class LeaseUsesTestBase extends LeaseGrantTestBase {
-
-    /**
-     * Lease being used
-     */
-    private Lease lease = null;
-
-    // Time lease will expire
-    private long expTime;
-
-    // Time lease of lease duration
-    private long durTime;
-
-    // How long until the lease should be renewed
-    private long renewTime;
-
-    // What to set renewTime to, if < 0 the half of duration
-    private long renewWait;
-
-    // Time to let cancel to propgate
-    private long cancelSlop;
-
-    // Set renew and exp times
-    private void setTimes() {
-        final long curTime = System.currentTimeMillis();
-        expTime = lease.getExpiration();
-        durTime = expTime - curTime;
-
-        if (renewWait < 0) {
-            renewTime = expTime - durTime / 2;
-        } else {
-            renewTime = renewWait + curTime;
-        }
-    }
-    private long renewals = 0;
-    private boolean cancel;
-    private long shutdownTime = -1;
-    private long restartSleep = 10000;
-
-    /**
-     * Method should acquire some resource under a lease and return
-     * the Lease.  Note the returned value will be stored in
-     * the <code>lease</code> field
-     * @return Lease
-     * @throws TestException 
-     * @see LeaseUsesTestBase#lease
-     */
-    protected abstract Lease acquireResource() throws TestException;
-
-    /**
-     * Method should test to see if the resource acquired by
-     * acquireResource() is still available, returning
-     * <code>true</code> if is and <code>false</code> if it is not.
-     * If some other exception occurs the method should call fail
-     * @return true if still available
-     * @throws TestException  
-     */
-    protected abstract boolean isAvailable() throws TestException;
-
-    public Test construct(QAConfig config) throws Exception {
-        super.construct(config);
-        this.parse();
-        return this;
-    }
-
-    /**
-     * Parse our args
-     * <DL>
-     *
-     * <DT>-cancel<DD> Makes the test run the cancel variation of the
-     * test where the lease is canceled before it expires.
-     *
-     * <DT>-renew <var>int</var><DD> Renew the lease <var>int</var>
-     * times using the initial duration befor letting it expire or
-     * canceling it.  Defaults to 0 (no renewals.)
-     *
-     * <DT>-cancel_slop <var>int</var><DD> Allow for a leased resource
-     * to disappear up to <var>int</var> milliseconds after cancel is
-     * called.  Provided for tests that don't directly test resource
-     * availability, most tests should not use this option. Defaults to
-     * 0.
-     * </DL>
-     * @throws Exception 
-     */
-    protected void parse() throws Exception {
-        super.parse();
-        synchronized (this){
-            // Get values from property file for this test.
-            QAConfig config = getConfig();
-            renewals = config.getIntConfigVal("com.sun.jini.test.share.renew", 0);
-            cancel = config.getBooleanConfigVal("com.sun.jini.test.share.cancel", false);
-            renewWait = config.getLongConfigVal("com.sun.jini.test.share.renew_wait", -1);
-            shutdownTime = config.getLongConfigVal("com.sun.jini.test.share.shutdownTime",
-1);
-            restartSleep = config.getLongConfigVal("com.sun.jini.test.share.restartSleep",
10000);
-            cancelSlop = config.getLongConfigVal("com.sun.jini.test.share.cancel_slop", 0);
-
-            // Log out test options.
-            logger.log(Level.INFO, "renewals = {0}", renewals);
-            logger.log(Level.INFO, "cancel = {0}", cancel);
-            logger.log(Level.INFO, "renewWait = {0}", renewWait);
-            logger.log(Level.INFO, "shutdownTime = {0}", shutdownTime);
-            logger.log(Level.INFO, "restartSleep = {0}", restartSleep);
-            logger.log(Level.INFO, "cancelSlop = {0}", cancelSlop);
-        }
-    }
-
-    public synchronized void run() throws Exception {
-        lease = acquireResource();
-        addLease(lease, true);
-        setTimes();
-
-        if (shutdownTime > 0) {
-            final long curTime = System.currentTimeMillis();
-            shutdownTime = curTime + shutdownTime;
-        }
-        logger.log(Level.INFO, "Resource acquired");
-        logRequest("resource", lease);
-
-        if (!isAcceptable(lease)) {
-            throw new TestException("Lease had an improper duration");
-        }
-
-        if (cancel && renewals <= 0) {
-	    cancel();
-        } else {
-            logger.log(Level.INFO, "Expire Test: Slop = {0}", slop);
-
-            while (true) {
-
-                /*
-                 * We measure the time twice so propagation delays do
-                 * not cause the test to fail.  The test only fails on
-                 * availability if:
-                 *
-                 *    Before the check was made the lease had expired,
-                 *    but the resource was still available, or;
-                 *
-                 *    after the check was made the lease had not
-                 *    expired but the resource was unavailable.
-                 *
-                 * In both cases modulo slop.
-                 *
-                 * This eliminates the possibility of the test failing
-                 * because the service rightfully believes the
-                 * resource is available, but propagation delays cause
-                 * isAvailable to return after expiration, or because
-                 * isAvaialable is called before expiration, but
-                 * because of propagation delays the service thinks
-                 * the resource is unavailable.
-                 */
-                final long preTime = System.currentTimeMillis();
-                final boolean stillThere;
-                final long postTime;
-                stillThere = isAvailable();
-
-                /*
-                 * We also use postTime as an approximation of the
-                 * current time for the remainder of this iteration
-                 */
-                postTime = System.currentTimeMillis();
-
-                /*
-                 * Check for late expiration against preTime
-                 * postTime - slop eliminates overflow problems when
-                 * expTime == FOREVER
-                 */
-                if (stillThere && (preTime - slop > expTime)) {
-                    // Check for early expiration against postTime
-                    logger.log(Level.WARNING, "expTime: {0}, (preTime - slop): {1}, still
there: {2}",
-                            new Object[]{expTime, preTime - slop, stillThere});
-                    throw new TestException(
-                            "Resource was available after lease expiration");
-                }
-
-
-                if (!stillThere && (postTime < expTime - slop)) {
-                    // Check for early expiration against postTime
-                    logger.log(Level.WARNING, "postTime: {0}, (expTime - slop): {1}, still
there: {2}",
-                            new Object[]{postTime, expTime - slop, stillThere});
-                    throw new TestException(
-                            "Resource was not available before lease expiration");
-                }
-
-                if (!stillThere) {
-
-                    // No use testing once it is gone
-                    break;
-                }
-                // Do we need to renew
-                if (renewals > 0 && postTime > renewTime) {
-		    lease.renew(durationRequest);
-		    resourceRequested();
-                    setTimes();
-                    logRequest("renew", lease);
-
-                    if (!isAcceptable(lease)) {
-                        throw new TestException(
-                                "Renewed lease had an improper duration");
-                    }
-                    renewals--;
-                } else if (renewals == 0 && cancel) {
-		    cancel();
-
-                    /*
-                     * If we are here the cancel worked, need to break
-                     * so we don't see if it is there (which it won't be)
-                     * and fail the test
-                     */
-                    break;
-                } else if (shutdownTime > 0 && shutdownTime < postTime) {
-                    try {
-                        shutdownTime = -1; // Oneshot
-                        shutdown(0, restartSleep);
-                    } catch (InterruptedException e) {
-                        // Should never happen, and if it does we don't care
-                    }
-                }
-            }
-        }
-    }
-
-    private void cancel() throws Exception {
-
-        // Make sure the resource is there
-        logger.log(Level.INFO, "Cancel Test: checking for availability");
-
-        if (!isAvailable()) {
-            throw new TestException("Resource was never available");
-        }
-        synchronized (this){
-            logger.log(Level.INFO, "Cancel Test: canceling lease");
-            lease.cancel();
-
-            /*
-             * We could poll and loop here, but one big sleep is much
-             * easer to code
-             */
-            if (cancelSlop > 0) {
-                logger.log(Level.INFO, 
-                           "Sleeping for {0}" + " milliseconds to "
-                           + "allow cancel to propagate... time: {1}", new Object[] {cancelSlop,
System.currentTimeMillis()});
-                Thread.sleep(cancelSlop);
-                logger.log(Level.INFO, "awake: {0}", System.currentTimeMillis());
-            }
-        }
-        logger.log(Level.INFO, 
-		   "Cancel Test: checking to make sure resource " + "is gone");
-
-        if (isAvailable()) {
-            throw new TestException("Resource was available after cancel");
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package com.sun.jini.test.impl.outrigger.leasing;
+
+import java.util.logging.Level;
+
+// java classes
+import java.rmi.*;
+
+// jini classes
+import net.jini.core.lease.Lease;
+
+// Test harness specific classes
+import com.sun.jini.qa.harness.TestException;
+import com.sun.jini.qa.harness.QAConfig;
+
+// Shared classes
+import com.sun.jini.qa.harness.Test;
+import com.sun.jini.test.share.TestBase;
+import java.util.concurrent.atomic.AtomicLong;
+
+
+/**
+ * Base class for tests which acquire some resource under a lease and
+ * then use until the lease expires. Also tests to see if the lease
+ * has the appropriate duration.  Have variations that cancel and/or
+ * renew the lease.
+ */
+public abstract class LeaseUsesTestBase extends LeaseGrantTestBase {
+
+    /**
+     * Lease being used
+     */
+    private Lease lease = null;
+
+    // Time lease will expire
+    private long expTime;
+
+    // Time lease of lease duration
+    private long durTime;
+
+    // How long until the lease should be renewed
+    private long renewTime;
+
+    // What to set renewTime to, if < 0 the half of duration
+    private long renewWait;
+
+    // Time to let cancel to propgate
+    private long cancelSlop;
+
+    // Set renew and exp times
+    private void setTimes() {
+        final long curTime = System.currentTimeMillis();
+        expTime = lease.getExpiration();
+        durTime = expTime - curTime;
+
+        if (renewWait < 0) {
+            renewTime = expTime - durTime / 2;
+        } else {
+            renewTime = renewWait + curTime;
+        }
+    }
+    private long renewals = 0;
+    private boolean cancel;
+    private long shutdownTime = -1;
+    private long restartSleep = 10000;
+
+    /**
+     * Method should acquire some resource under a lease and return
+     * the Lease.  Note the returned value will be stored in
+     * the <code>lease</code> field
+     * @return Lease
+     * @throws TestException 
+     * @see LeaseUsesTestBase#lease
+     */
+    protected abstract Lease acquireResource() throws TestException;
+
+    /**
+     * Method should test to see if the resource acquired by
+     * acquireResource() is still available, returning
+     * <code>true</code> if is and <code>false</code> if it is not.
+     * If some other exception occurs the method should call fail
+     * @return true if still available
+     * @throws TestException  
+     */
+    protected abstract boolean isAvailable() throws TestException;
+
+    public Test construct(QAConfig config) throws Exception {
+        super.construct(config);
+        this.parse();
+        return this;
+    }
+
+    /**
+     * Parse our args
+     * <DL>
+     *
+     * <DT>-cancel<DD> Makes the test run the cancel variation of the
+     * test where the lease is canceled before it expires.
+     *
+     * <DT>-renew <var>int</var><DD> Renew the lease <var>int</var>
+     * times using the initial duration befor letting it expire or
+     * canceling it.  Defaults to 0 (no renewals.)
+     *
+     * <DT>-cancel_slop <var>int</var><DD> Allow for a leased resource
+     * to disappear up to <var>int</var> milliseconds after cancel is
+     * called.  Provided for tests that don't directly test resource
+     * availability, most tests should not use this option. Defaults to
+     * 0.
+     * </DL>
+     * @throws Exception 
+     */
+    protected void parse() throws Exception {
+        super.parse();
+        synchronized (this){
+            // Get values from property file for this test.
+            QAConfig config = getConfig();
+            renewals = config.getIntConfigVal("com.sun.jini.test.share.renew", 0);
+            cancel = config.getBooleanConfigVal("com.sun.jini.test.share.cancel", false);
+            renewWait = config.getLongConfigVal("com.sun.jini.test.share.renew_wait", -1);
+            shutdownTime = config.getLongConfigVal("com.sun.jini.test.share.shutdownTime",
-1);
+            restartSleep = config.getLongConfigVal("com.sun.jini.test.share.restartSleep",
10000);
+            cancelSlop = config.getLongConfigVal("com.sun.jini.test.share.cancel_slop", 0);
+
+            // Log out test options.
+            logger.log(Level.INFO, "renewals = {0}", renewals);
+            logger.log(Level.INFO, "cancel = {0}", cancel);
+            logger.log(Level.INFO, "renewWait = {0}", renewWait);
+            logger.log(Level.INFO, "shutdownTime = {0}", shutdownTime);
+            logger.log(Level.INFO, "restartSleep = {0}", restartSleep);
+            logger.log(Level.INFO, "cancelSlop = {0}", cancelSlop);
+        }
+    }
+
+    public synchronized void run() throws Exception {
+        lease = acquireResource();
+        addLease(lease, true);
+        setTimes();
+
+        if (shutdownTime > 0) {
+            final long curTime = System.currentTimeMillis();
+            shutdownTime = curTime + shutdownTime;
+        }
+        logger.log(Level.INFO, "Resource acquired");
+        logRequest("resource", lease);
+
+        if (!isAcceptable(lease)) {
+            throw new TestException("Lease had an improper duration");
+        }
+
+        if (cancel && renewals <= 0) {
+	    cancel();
+        } else {
+            logger.log(Level.INFO, "Expire Test: Slop = {0}", slop);
+
+            while (true) {
+
+                /*
+                 * We measure the time twice so propagation delays do
+                 * not cause the test to fail.  The test only fails on
+                 * availability if:
+                 *
+                 *    Before the check was made the lease had expired,
+                 *    but the resource was still available, or;
+                 *
+                 *    after the check was made the lease had not
+                 *    expired but the resource was unavailable.
+                 *
+                 * In both cases modulo slop.
+                 *
+                 * This eliminates the possibility of the test failing
+                 * because the service rightfully believes the
+                 * resource is available, but propagation delays cause
+                 * isAvailable to return after expiration, or because
+                 * isAvaialable is called before expiration, but
+                 * because of propagation delays the service thinks
+                 * the resource is unavailable.
+                 */
+                final long preTime = System.currentTimeMillis();
+                final boolean stillThere;
+                final long postTime;
+                stillThere = isAvailable();
+
+                /*
+                 * We also use postTime as an approximation of the
+                 * current time for the remainder of this iteration
+                 */
+                postTime = System.currentTimeMillis();
+
+                /*
+                 * Check for late expiration against preTime
+                 * postTime - slop eliminates overflow problems when
+                 * expTime == FOREVER
+                 */
+                if (stillThere && (preTime - slop > expTime)) {
+                    // Check for early expiration against postTime
+                    logger.log(Level.WARNING, "expTime: {0}, (preTime - slop): {1}, still
there: {2}",
+                            new Object[]{expTime, preTime - slop, stillThere});
+                    throw new TestException(
+                            "Resource was available after lease expiration");
+                }
+
+
+                if (!stillThere && (postTime < expTime - slop)) {
+                    // Check for early expiration against postTime
+                    logger.log(Level.WARNING, "postTime: {0}, (expTime - slop): {1}, still
there: {2}",
+                            new Object[]{postTime, expTime - slop, stillThere});
+                    throw new TestException(
+                            "Resource was not available before lease expiration");
+                }
+
+                if (!stillThere) {
+
+                    // No use testing once it is gone
+                    break;
+                }
+                // Do we need to renew
+                if (renewals > 0 && postTime > renewTime) {
+		    lease.renew(durationRequest);
+		    resourceRequested();
+                    setTimes();
+                    logRequest("renew", lease);
+
+                    if (!isAcceptable(lease)) {
+                        throw new TestException(
+                                "Renewed lease had an improper duration");
+                    }
+                    renewals--;
+                } else if (renewals == 0 && cancel) {
+		    cancel();
+
+                    /*
+                     * If we are here the cancel worked, need to break
+                     * so we don't see if it is there (which it won't be)
+                     * and fail the test
+                     */
+                    break;
+                } else if (shutdownTime > 0 && shutdownTime < postTime) {
+                    try {
+                        shutdownTime = -1; // Oneshot
+                        shutdown(0, restartSleep);
+                    } catch (InterruptedException e) {
+                        Thread.currentThread().interrupt();
+                        // Should never happen, and if it does we don't care
+                    }
+                }
+            }
+        }
+    }
+
+    private void cancel() throws Exception {
+
+        // Make sure the resource is there
+        logger.log(Level.INFO, "Cancel Test: checking for availability");
+
+        if (!isAvailable()) {
+            throw new TestException("Resource was never available");
+        }
+        synchronized (this){
+            logger.log(Level.INFO, "Cancel Test: canceling lease");
+            lease.cancel();
+
+            /*
+             * We could poll and loop here, but one big sleep is much
+             * easer to code
+             */
+            if (cancelSlop > 0) {
+                logger.log(Level.INFO, 
+                           "Sleeping for {0}" + " milliseconds to "
+                           + "allow cancel to propagate... time: {1}", new Object[] {cancelSlop,
System.currentTimeMillis()});
+                Thread.sleep(cancelSlop);
+                logger.log(Level.INFO, "awake: {0}", System.currentTimeMillis());
+            }
+        }
+        logger.log(Level.INFO, 
+		   "Cancel Test: checking to make sure resource " + "is gone");
+
+        if (isAvailable()) {
+            throw new TestException("Resource was available after cancel");
+        }
+    }
+}

Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/BlockingTest.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/BlockingTest.java?rev=1634322&r1=1634321&r2=1634322&view=diff
==============================================================================
--- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/BlockingTest.java
(original)
+++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/BlockingTest.java
Sun Oct 26 13:17:28 2014
@@ -1,150 +1,152 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-package com.sun.jini.test.impl.outrigger.matching;
-
-import java.util.logging.Level;
-
-// Test harness specific classes
-import java.io.PrintWriter;
-import com.sun.jini.qa.harness.TestException;
-import com.sun.jini.qa.harness.QAConfig;
-
-// All other imports
-import com.sun.jini.qa.harness.Test;
-import java.util.List;
-import java.util.Iterator;
-import java.rmi.*;
-import net.jini.core.lease.Lease;
-import net.jini.core.entry.Entry;
-
-
-public class BlockingTest extends MatchTestBase {
-    private boolean useRead;
-    private long matchTimeout;
-    private long writeWait;
-    private long testTimeout;
-
-    protected void parse() throws Exception {
-        super.parse();
-        useRead = getConfig().getBooleanConfigVal("com.sun.jini.test.impl.outrigger."
-                + "matching.BlockingTest.useRead", false);
-        matchTimeout = getConfig().getLongConfigVal("com.sun.jini.test.impl.outrigger."
-                + "matching.BlockingTest.matchTimeout", 60000);
-        writeWait = getConfig().getLongConfigVal("com.sun.jini.test.impl.outrigger."
-                + "matching.BlockingTest.writeWait", 20000);
-    }
-
-    /**
-     * Sets up the testing environment.
-     *
-     * @param config Arguments from the runner for construct.
-     */
-    public Test construct(QAConfig config) throws Exception {
-        super.construct(config);
-        this.parse();
-        return this;
-    }
-
-    public void run() throws Exception {
-        Matcher[] matchers = new Matcher[writeList.size()];
-        Iterator i;
-        int j;
-
-        for (i = writeList.iterator(), j = 0; i.hasNext(); j++) {
-            final Entry ent = (Entry) i.next();
-            logger.log(Level.INFO, "Setup query for " + ent);
-            matchers[j] = new Matcher(ent, j);
-            matchers[j].start();
-        }
-        spaceSet();
-
-        try {
-            logger.log(Level.INFO, "sleeping for " + writeWait + "...");
-            Thread.sleep(writeWait);
-            logger.log(Level.INFO, "awake");
-        } catch (InterruptedException e) {}
-        final long writeStart = System.currentTimeMillis();
-        logger.log(Level.INFO, writeStart + " write start");
-        writeBunch();
-        final long queryStart = System.currentTimeMillis();
-        logger.log(Level.INFO, queryStart + " write end");
-
-        for (j = 0; j < matchers.length; j++) {
-            Matcher m = matchers[j];
-            m.join(matchTimeout);
-
-            if (!m.done) {
-                logger.log(Level.INFO, System.currentTimeMillis()
-                        + " failed waiting for matcher " + j);
-                throw new TestException(
-                        "Did not get entry back before timeout");
-            } else if (m.msg != null) {
-                throw new TestException( m.msg + m.thrown);
-            }
-        }
-        final long queryEnd = System.currentTimeMillis();
-        logger.log(Level.INFO, "Total Write Time:" + (queryStart - writeStart));
-        logger.log(Level.INFO, "Total Query Time:" + (queryEnd - queryStart));
-    }
-
-
-    private class Matcher extends Thread {
-        final private Entry tmpl;
-        final private int id;
-        private boolean done;
-        private Throwable thrown;
-        private String msg;
-
-        Matcher(Entry tmpl, int id) {
-            this.tmpl = tmpl;
-            this.id = id;
-        }
-
-        public void run() {
-            try {
-                while (true) {
-                    try {
-                        Entry rslt;
-
-                        if (useRead) {
-                            rslt = spaceRead(tmpl, null, matchTimeout);
-                        } else {
-                            rslt = spaceTake(tmpl, null, matchTimeout);
-                        }
-
-                        if (rslt == null) {
-                            msg = "Got null back from query on " + tmpl;
-                        }
-                        logger.log(Level.INFO, System.currentTimeMillis() + " " + id
-                                + (useRead ? " Read " : " Took ") + rslt);
-                        return;
-                    } catch (RemoteException e) {
-
-                        // Just try again
-                    } catch (Throwable t) {
-                        thrown = t;
-                        msg = "Got exception in query on " + tmpl;
-                        return;
-                    }
-                }
-            } finally {
-                done = true;
-            }
-        }
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package com.sun.jini.test.impl.outrigger.matching;
+
+import java.util.logging.Level;
+
+// Test harness specific classes
+import java.io.PrintWriter;
+import com.sun.jini.qa.harness.TestException;
+import com.sun.jini.qa.harness.QAConfig;
+
+// All other imports
+import com.sun.jini.qa.harness.Test;
+import java.util.List;
+import java.util.Iterator;
+import java.rmi.*;
+import net.jini.core.lease.Lease;
+import net.jini.core.entry.Entry;
+
+
+public class BlockingTest extends MatchTestBase {
+    private boolean useRead;
+    private long matchTimeout;
+    private long writeWait;
+    private long testTimeout;
+
+    protected void parse() throws Exception {
+        super.parse();
+        useRead = getConfig().getBooleanConfigVal("com.sun.jini.test.impl.outrigger."
+                + "matching.BlockingTest.useRead", false);
+        matchTimeout = getConfig().getLongConfigVal("com.sun.jini.test.impl.outrigger."
+                + "matching.BlockingTest.matchTimeout", 60000);
+        writeWait = getConfig().getLongConfigVal("com.sun.jini.test.impl.outrigger."
+                + "matching.BlockingTest.writeWait", 20000);
+    }
+
+    /**
+     * Sets up the testing environment.
+     *
+     * @param config Arguments from the runner for construct.
+     */
+    public Test construct(QAConfig config) throws Exception {
+        super.construct(config);
+        this.parse();
+        return this;
+    }
+
+    public void run() throws Exception {
+        Matcher[] matchers = new Matcher[writeList.size()];
+        Iterator i;
+        int j;
+
+        for (i = writeList.iterator(), j = 0; i.hasNext(); j++) {
+            final Entry ent = (Entry) i.next();
+            logger.log(Level.INFO, "Setup query for " + ent);
+            matchers[j] = new Matcher(ent, j);
+            matchers[j].start();
+        }
+        spaceSet();
+
+        try {
+            logger.log(Level.INFO, "sleeping for " + writeWait + "...");
+            Thread.sleep(writeWait);
+            logger.log(Level.INFO, "awake");
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+        }
+        final long writeStart = System.currentTimeMillis();
+        logger.log(Level.INFO, writeStart + " write start");
+        writeBunch();
+        final long queryStart = System.currentTimeMillis();
+        logger.log(Level.INFO, queryStart + " write end");
+
+        for (j = 0; j < matchers.length; j++) {
+            Matcher m = matchers[j];
+            m.join(matchTimeout);
+
+            if (!m.done) {
+                logger.log(Level.INFO, System.currentTimeMillis()
+                        + " failed waiting for matcher " + j);
+                throw new TestException(
+                        "Did not get entry back before timeout");
+            } else if (m.msg != null) {
+                throw new TestException( m.msg + m.thrown);
+            }
+        }
+        final long queryEnd = System.currentTimeMillis();
+        logger.log(Level.INFO, "Total Write Time:" + (queryStart - writeStart));
+        logger.log(Level.INFO, "Total Query Time:" + (queryEnd - queryStart));
+    }
+
+
+    private class Matcher extends Thread {
+        final private Entry tmpl;
+        final private int id;
+        private boolean done;
+        private Throwable thrown;
+        private String msg;
+
+        Matcher(Entry tmpl, int id) {
+            this.tmpl = tmpl;
+            this.id = id;
+        }
+
+        public void run() {
+            try {
+                while (true) {
+                    try {
+                        Entry rslt;
+
+                        if (useRead) {
+                            rslt = spaceRead(tmpl, null, matchTimeout);
+                        } else {
+                            rslt = spaceTake(tmpl, null, matchTimeout);
+                        }
+
+                        if (rslt == null) {
+                            msg = "Got null back from query on " + tmpl;
+                        }
+                        logger.log(Level.INFO, System.currentTimeMillis() + " " + id
+                                + (useRead ? " Read " : " Took ") + rslt);
+                        return;
+                    } catch (RemoteException e) {
+
+                        // Just try again
+                    } catch (Throwable t) {
+                        thrown = t;
+                        msg = "Got exception in query on " + tmpl;
+                        return;
+                    }
+                }
+            } finally {
+                done = true;
+            }
+        }
+    }
+}

Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/NotifyTestUtil.java
URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/NotifyTestUtil.java?rev=1634322&r1=1634321&r2=1634322&view=diff
==============================================================================
--- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/NotifyTestUtil.java
(original)
+++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/matching/NotifyTestUtil.java
Sun Oct 26 13:17:28 2014
@@ -1,129 +1,130 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you 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.
- */
-package com.sun.jini.test.impl.outrigger.matching;
-
-import java.util.logging.Level;
-
-// Test harness specific classes
-import com.sun.jini.qa.harness.QAConfig;
-import com.sun.jini.qa.harness.QATestEnvironment;
-import com.sun.jini.qa.harness.TestException;
-import java.io.PrintWriter;
-
-// All other imports
-import java.rmi.*;
-import net.jini.core.transaction.TransactionException;
-import net.jini.core.lease.Lease;
-import net.jini.core.entry.Entry;
-import net.jini.core.event.EventRegistration;
-import net.jini.space.JavaSpace;
-import com.sun.jini.qa.harness.QAConfig;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-
-
-/**
- * Utility class for writing notify tests.
- */
-class NotifyTestUtil {
-
-    private static Logger logger = Logger.getLogger("com.sun.jini.qa.harness.test");
-
-    private long wait = 60000;
-    private JavaSpaceAuditor space;
-    private MatchTestBase base;
-    private QAConfig config;
-
-    /**
-     * Creates a NotifyTestUtil(). Parses the <code>argv</code>
-     * as a list of command line parameters as follows:
-     *
-     * <DL>
-     * <DT>-notify_wait<DD> Set the amount of time (in milliseconds)
-     * the test will wait for after the writes are done before
-     * checking to see if the test has passed
-     * </DL>
-     */
-    NotifyTestUtil(QAConfig sysConfig, MatchTestBase base) {
-        wait = sysConfig.getLongConfigVal("com.sun.jini.test.impl.outrigger.matching"
-                + ".NotifyTestUtil.notify_wait", 60000);
-        this.config = (QAConfig) sysConfig;
-        this.base = base;
-    }
-
-    void init(JavaSpaceAuditor space) {
-        this.space = space;
-    }
-
-    /**
-     * Convince function that registers a
-     * <code>TestSpaceListener</code> with the space using the passed
-     * <code>Entry</code> as the match template.  The lease is
-     * requested to be <code>Lease.ANY</code>, and the template
-     * is passed as the passback object.
-     * @see TestSpaceLease;
-     */
-    void registerForNotify(Entry tmpl)
-            throws TransactionException, RemoteException, java.io.IOException {
-	try {
-            TestSpaceListener tsl = 
-                    new TestSpaceListener(config.getConfiguration(), tmpl);
-            tsl.export();
-	    EventRegistration er = 
-		space.notify(tmpl,
-			     null, 
-			     tsl,
-			     Lease.ANY, 
-			     new MarshalledObject(tmpl));
-	    QAConfig c = QAConfig.getConfig();
-	    if (c.getConfiguration() instanceof com.sun.jini.qa.harness.QAConfiguration) {
-		er = (EventRegistration) c.prepare("test.outriggerEventRegistrationPreparer", er);
-	    }
-	    Lease l = er.getLease();
-	    if (c.getConfiguration() instanceof com.sun.jini.qa.harness.QAConfiguration) {
-		l = (Lease) c.prepare("test.outriggerLeasePreparer", l);
-	    }
-            base.addLease(l, false);
-	} catch (TestException e) {
-	    throw new RemoteException("Configuration error", e);
-	}
-    }
-
-    /**
-     * Waits, and then check with the auditor to see if we pass
-     */
-    String waitAndCheck() {
-        try {
-            Thread.sleep(wait);
-        } catch (InterruptedException e) {
-            final String msg = "Sleep was interrupted";
-            logger.log(Level.INFO, msg);
-            e.printStackTrace();
-            return msg;
-        }
-        final AuditorSummary summery = space.summarize();
-
-        if (summery.eventFailures != null) {
-            summery.dump();
-            final String msg = "Event errors";
-            logger.log(Level.INFO, msg);
-            return msg;
-        }
-        return null;
-    }
-}
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you 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.
+ */
+package com.sun.jini.test.impl.outrigger.matching;
+
+import java.util.logging.Level;
+
+// Test harness specific classes
+import com.sun.jini.qa.harness.QAConfig;
+import com.sun.jini.qa.harness.QATestEnvironment;
+import com.sun.jini.qa.harness.TestException;
+import java.io.PrintWriter;
+
+// All other imports
+import java.rmi.*;
+import net.jini.core.transaction.TransactionException;
+import net.jini.core.lease.Lease;
+import net.jini.core.entry.Entry;
+import net.jini.core.event.EventRegistration;
+import net.jini.space.JavaSpace;
+import com.sun.jini.qa.harness.QAConfig;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+
+/**
+ * Utility class for writing notify tests.
+ */
+class NotifyTestUtil {
+
+    private static Logger logger = Logger.getLogger("com.sun.jini.qa.harness.test");
+
+    private long wait = 60000;
+    private JavaSpaceAuditor space;
+    private MatchTestBase base;
+    private QAConfig config;
+
+    /**
+     * Creates a NotifyTestUtil(). Parses the <code>argv</code>
+     * as a list of command line parameters as follows:
+     *
+     * <DL>
+     * <DT>-notify_wait<DD> Set the amount of time (in milliseconds)
+     * the test will wait for after the writes are done before
+     * checking to see if the test has passed
+     * </DL>
+     */
+    NotifyTestUtil(QAConfig sysConfig, MatchTestBase base) {
+        wait = sysConfig.getLongConfigVal("com.sun.jini.test.impl.outrigger.matching"
+                + ".NotifyTestUtil.notify_wait", 60000);
+        this.config = (QAConfig) sysConfig;
+        this.base = base;
+    }
+
+    void init(JavaSpaceAuditor space) {
+        this.space = space;
+    }
+
+    /**
+     * Convince function that registers a
+     * <code>TestSpaceListener</code> with the space using the passed
+     * <code>Entry</code> as the match template.  The lease is
+     * requested to be <code>Lease.ANY</code>, and the template
+     * is passed as the passback object.
+     * @see TestSpaceLease;
+     */
+    void registerForNotify(Entry tmpl)
+            throws TransactionException, RemoteException, java.io.IOException {
+	try {
+            TestSpaceListener tsl = 
+                    new TestSpaceListener(config.getConfiguration(), tmpl);
+            tsl.export();
+	    EventRegistration er = 
+		space.notify(tmpl,
+			     null, 
+			     tsl,
+			     Lease.ANY, 
+			     new MarshalledObject(tmpl));
+	    QAConfig c = QAConfig.getConfig();
+	    if (c.getConfiguration() instanceof com.sun.jini.qa.harness.QAConfiguration) {
+		er = (EventRegistration) c.prepare("test.outriggerEventRegistrationPreparer", er);
+	    }
+	    Lease l = er.getLease();
+	    if (c.getConfiguration() instanceof com.sun.jini.qa.harness.QAConfiguration) {
+		l = (Lease) c.prepare("test.outriggerLeasePreparer", l);
+	    }
+            base.addLease(l, false);
+	} catch (TestException e) {
+	    throw new RemoteException("Configuration error", e);
+	}
+    }
+
+    /**
+     * Waits, and then check with the auditor to see if we pass
+     */
+    String waitAndCheck() {
+        try {
+            Thread.sleep(wait);
+        } catch (InterruptedException e) {
+            Thread.currentThread().interrupt();
+            final String msg = "Sleep was interrupted";
+            logger.log(Level.INFO, msg);
+            e.printStackTrace();
+            return msg;
+        }
+        final AuditorSummary summery = space.summarize();
+
+        if (summery.eventFailures != null) {
+            summery.dump();
+            final String msg = "Event errors";
+            logger.log(Level.INFO, msg);
+            return msg;
+        }
+        return null;
+    }
+}



Mime
View raw message