Author: michiel
Date: 2009-09-23 18:01:33 +0200 (Wed, 23 Sep 2009)
New Revision: 38818

Added:
   
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/transcoders/CrazyAnalyzer.java
   
mmbase/trunk/applications/streams/src/test/resources/org/mmbase/config/crazycreatecaches.xml
Modified:
   
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/CreateCachesTest.java
Log:
'Crazy' testing involves a lot of node-type changes, to check whether that 
always works

Modified: 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/CreateCachesTest.java
===================================================================
--- 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/CreateCachesTest.java
    2009-09-23 15:54:55 UTC (rev 38817)
+++ 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/CreateCachesTest.java
    2009-09-23 16:01:33 UTC (rev 38818)
@@ -106,7 +106,7 @@
 
 
 
-    @Test
+    //@Test
     public void node() {
         Cloud cloud = getCloud();
         assumeNotNull(cloud);
@@ -126,12 +126,7 @@
         container.commit();
 
         NodeManager nm = cloud.getNodeManager("streamsources");
-        File tempFile = new File(dir, getClass().getName() + "." + FILE);
-        if (! tempFile.exists()) {
-            org.mmbase.util.IOUtil.copy(new FileInputStream(testFile), new 
FileOutputStream(tempFile));
-        }
 
-        assertEquals(513965, tempFile.length());
 
         System.out.println("DIR " + dir);
 
@@ -140,6 +135,13 @@
         newSource.setNodeValue("mediaprovider", 
cloud.getNode("default.provider"));
         newSource.commit();
 
+        File tempFile = new File(dir, newSource.getNumber() + 
getClass().getName() + "." + FILE);
+        if (! tempFile.exists()) {
+            org.mmbase.util.IOUtil.copy(new FileInputStream(testFile), new 
FileOutputStream(tempFile));
+        }
+        assertEquals(513965, tempFile.length());
+
+
         assertTrue(testFile.exists());
 
 
@@ -183,30 +185,40 @@
         assertEquals("" + mediafragment.getNumber() + " is supposed to have " 
+ sourceCount + " source", sourceCount, mediafragment.getRelatedNodes("object", 
"related", "destination").size());
     }
 
-
     @Test
-    public void recognizerOnly() throws Exception  {
-        for (int i = 0; i < 1; i++) {
-            CreateCachesProcessor proc = get("dummycreatecaches_0.xml");
+    public void crazy() throws Exception  {
+        for (int i = 0; i < 10; i++) {
+            CreateCachesProcessor proc = get("crazycreatecaches.xml");
             Node source = getNode(proc.getDirectory());
             CreateCachesProcessor.Job job = 
proc.createCaches(source.getCloud(), source.getNumber());
-
-
             job.waitUntilReady();
+            assertTrue("No node " + source.getNumber() + " in " + 
source.getCloud(), source.getCloud().hasNode(source.getNumber()));
             source = refresh(source);
-            checkSource(source, 1, "" + i);
         }
     }
 
+
     @Test
+    public void recognizerOnly() throws Exception  {
+        CreateCachesProcessor proc = get("dummycreatecaches_0.xml");
+        Node source = getNode(proc.getDirectory());
+        CreateCachesProcessor.Job job = proc.createCaches(source.getCloud(), 
source.getNumber());
+
+        job.waitUntilReady();
+
+        assertTrue("No node " + source.getNumber() + " in " + 
source.getCloud(), source.getCloud().hasNode(source.getNumber()));
+        source = refresh(source);
+        checkSource(source, 1);
+    }
+
+    @Test
     public  void simple() throws Exception {
         CreateCachesProcessor proc = get("dummycreatecaches_1.xml");
         Node source = getNode(proc.getDirectory());
         CreateCachesProcessor.Job job = proc.createCaches(source.getCloud(), 
source.getNumber());
         source.commit();
-
-
         job.waitUntilReady();
+        assertTrue(source.getCloud().hasNode(source.getNumber()));
         source = refresh(source);
         checkSource(source, 2);
     }

Added: 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/transcoders/CrazyAnalyzer.java
===================================================================
--- 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/transcoders/CrazyAnalyzer.java
                           (rev 0)
+++ 
mmbase/trunk/applications/streams/src/test/java/org/mmbase/streams/transcoders/CrazyAnalyzer.java
   2009-09-23 16:01:33 UTC (rev 38818)
@@ -0,0 +1,69 @@
+/*
+
+This software is OSI Certified Open Source Software.
+OSI Certified is a certification mark of the Open Source Initiative.
+
+The license (Mozilla version 1.0) can be read at the MMBase site.
+See http://www.MMBase.org/license
+
+*/
+package org.mmbase.streams.transcoders;
+
+import java.util.regex.*;
+import java.util.*;
+import org.mmbase.bridge.*;
+import org.mmbase.util.ThreadPools;
+import org.mmbase.util.logging.*;
+import static org.mmbase.streams.transcoders.AnalyzerUtils.*;
+
+
+/**
+ * This analyzer as a crazyman changes the type of the nodes. This is just for 
testing.
+ *
+ * @author Michiel Meeuwissen
+ * @version $Id: MockAnalyzer.java 38480 2009-09-07 16:19:19Z michiel $
+ */
+
+public class CrazyAnalyzer extends MockAnalyzer {
+
+
+    int busy = 0;
+    int count = 0;
+
+    @Override
+    public void analyze(String l, final Node source, final Node des) {
+        busy++;
+        ThreadPools.jobsExecutor.execute(new Runnable() {
+                public void run() {
+                    count++;
+                    if (count % 2 == 0  ) {
+                        System.out.print("V");
+                        util.toVideo(source, des);
+                    } else {
+                        System.out.print("A");
+                        util.toAudio(source, des);
+                    }
+                    synchronized(CrazyAnalyzer.this) {
+                        busy--;
+                        CrazyAnalyzer.this.notifyAll();
+                    }
+
+                }
+            });
+    }
+
+    @Override
+    public void ready(Node sourceNode, Node destNode) {
+        synchronized(this) {
+            while (busy > 0) {
+                try {
+                    wait();
+                } catch (InterruptedException ie) {
+                    return;
+                }
+            }
+        }
+        super.ready(sourceNode, destNode);
+        assert sourceNode.getCloud().hasNode(sourceNode.getNumber());
+    }
+}

Added: 
mmbase/trunk/applications/streams/src/test/resources/org/mmbase/config/crazycreatecaches.xml
===================================================================
--- 
mmbase/trunk/applications/streams/src/test/resources/org/mmbase/config/crazycreatecaches.xml
                                (rev 0)
+++ 
mmbase/trunk/applications/streams/src/test/resources/org/mmbase/config/crazycreatecaches.xml
        2009-09-23 16:01:33 UTC (rev 38818)
@@ -0,0 +1,19 @@
+<createcaches
+    xmlns="http://www.mmbase.org/xmlns/createcaches";
+    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+    xsi:schemaLocation="http://www.mmbase.org/xmlns/createcaches 
http://www.mmbase.org/xmlns/createcaches.xsd";
+    >
+  <localhost max_simultaneous_transcoders="1" />
+
+  <!-- No caches at all, recognizing only -->
+
+  <recognizer id="recognizer">
+    <class name="org.mmbase.streams.transcoders.FFMpegRecognizer">
+    </class>
+    <loganalyzer name="org.mmbase.streams.transcoders.CrazyAnalyzer">
+
+    </loganalyzer>
+  </recognizer>
+
+
+</createcaches>

_______________________________________________
Cvs mailing list
Cvs@lists.mmbase.org
http://lists.mmbase.org/mailman/listinfo/cvs

Reply via email to