Package org.codehaus.xharness.testutil

Examples of org.codehaus.xharness.testutil.ProcessTester


    }

    public void testGetCommandline() throws Exception {
        Project project = new Project();
       
        ProcessTester server = new ProcessTester();
       
        XhExecTask task = new XhExecTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        Path path = new Path(project, getClassPath());
        task.createArg().setPath(path);
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
       
        task.execute();
        assertContains("Wrong commandline", JVM, task.getCommandline());
        assertContains("Wrong commandline", path.toString(), task.getCommandline());
View Full Code Here


    }

    public void testExecute() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setProcessName(PROC_NAME);

        try {
            ProcessRegistry.getProcess(PROC_NAME);
            fail("Expected BuildException");
        } catch (BuildException be) {
            assertEquals("Wrong message",
                         "Process " + PROC_NAME + " not registered.",
                         be.getMessage());
        }
        task.execute();
        assertEquals("Process not registered", task, ProcessRegistry.getProcess(PROC_NAME));
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        server.getSocket().close();
        // wait 1sec for process to terminate
        Thread.sleep(1000);
        assertTrue("Process is still running", !task.isRunning());
        try {
            ProcessRegistry.getProcess(PROC_NAME);
View Full Code Here

    }

    public void testKill() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setProcessName(PROC_NAME);

        try {
            ProcessRegistry.getProcess(PROC_NAME);
            fail("Expected BuildException");
        } catch (BuildException be) {
            assertEquals("Wrong message",
                         "Process " + PROC_NAME + " not registered.",
                         be.getMessage());
        }
        task.execute();

        // wait 950ms for process to start
        Thread.sleep(950);
        assertEquals("Process not registered", task, ProcessRegistry.getProcess(PROC_NAME));
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Process is not running", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        task.kill();
        assertTrue("Process is still running", !task.isRunning());
        try {
            ProcessRegistry.getProcess(PROC_NAME);
            fail("Expected BuildException");
View Full Code Here

    }

    public void testKillNotRunning() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");

        task.execute();
        // wait 250ms for process to start
        Thread.sleep(250);
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        server.getSocket().close();
        // wait 500ms for process to terminate
        Thread.sleep(500);
        task.kill();
        assertTrue("Process is still running", !task.isRunning());
    }
View Full Code Here

    }

    public void testPrekillTimeout() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setPrekilltimeout(1);

        task.execute();
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        try {
            task.kill();
            fail("Expected BuildExcecption");
        } catch (BuildException be) {
            assertEquals("Wrong message", "Timeout: killed the sub-process", be.getMessage());
View Full Code Here

    }

    public void testNegativePrekillTimeout() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setPrekilltimeout(-1);

        task.execute();
        // wait 250ms for process to start
        Thread.sleep(250);
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        task.kill();
        assertTrue("Process is still running", !task.isRunning());
    }
View Full Code Here

    }

    public void testKillTimeout() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        MockControl wdCtrl = MockClassControl.createControl(KillableExecuteWatchdog.class);
        KillableExecuteWatchdog wd = (KillableExecuteWatchdog)wdCtrl.getMock();
        wd.killProcess(true);

        XhExecBgTask task = new TestXhExecBgTask(wd);
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setKilltimeout(1);

        wdCtrl.replay();
        task.execute();
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        try {
            task.kill();
            fail("Expected BuildException");
        } catch (BuildException be) {
            assertEquals("Wrong message", "Unable to kill process!", be.getMessage());
        }
        assertTrue("Process is not running", task.isRunning());
        server.getSocket().close();
        // wait 900ms for process to terminate
        Thread.sleep(900);
        assertTrue("Process is still running", !task.isRunning());
        wdCtrl.verify();
    }
View Full Code Here

    }

    public void testAfterwards() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        MockControl ctrl = MockClassControl.createControl(Sequential.class);
        Sequential afterwards = (Sequential)ctrl.getMock();
        afterwards.execute();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.addAfterwards(afterwards);

        ctrl.replay();
        task.execute();
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        task.kill();
        assertTrue("Process is still running", !task.isRunning());
        ctrl.verify();
    }
View Full Code Here

    }

    public void testAfterwardsFails() throws Exception {
        Project project = new Project();

        ProcessTester server = new ProcessTester();

        MockControl ctrl = MockClassControl.createControl(Sequential.class);
        Sequential afterwards = (Sequential)ctrl.getMock();
        afterwards.execute();
        ctrl.setThrowable(new BuildException());

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        task.createArg().setPath(new Path(project, getClassPath()));
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.addAfterwards(afterwards);

        ctrl.replay();
        task.execute();
        assertTrue("Process is not running", task.isRunning());
        assertTrue("Server has not passed", server.passed());
        assertEquals("Wrong user dir", System.getProperty("user.dir"), server.getReceivedData());
        try {
            task.kill();
            fail("Expected BuildException");
        } catch (BuildException be) {
            assertEquals("Wrong message", "Nested task failed.", be.getMessage());
View Full Code Here

    public void testUseNoLauncher() throws Exception {
        Project project = new Project();
        LineBuffer buffer = new LineBuffer();

        ProcessTester server = new ProcessTester();

        XhExecBgTask task = new XhExecBgTask();
        task.setProject(project);
        task.setExecutable(JVM);
        task.createArg().setValue("-cp");
        Path path = new Path(project, getClassPath());
        task.createArg().setPath(path);
        task.createArg().setLine(ProcessTester.class.getName());
        task.createArg().setLine("-p " + server.getPort());
        task.createArg().setLine("-s user.dir");
        task.createArg().setLine("-t 60");
        task.setUseLauncher(false);
        task.enableLogging(buffer, 0, 1);

        try {
            task.execute();
            // wait 250ms for process to start
            Thread.sleep(250);
            assertTrue("Process is not running", task.isRunning());
            assertTrue("Process is not running", server.passed());
            assertEquals("Wrong user dir",
                         System.getProperty("user.dir"),
                         server.getReceivedData());
            task.kill();
            assertTrue("Process is still running", !task.isRunning());
            String cmdl = task.getCommandline();
            assertTrue("Wrong commandline: " + cmdl, cmdl.indexOf("async_exec_launcher") < 0);
            assertContains("Wrong commandline", JVM, cmdl);
View Full Code Here

TOP

Related Classes of org.codehaus.xharness.testutil.ProcessTester

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.