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