diff options
author | Jiri Vanek <[email protected]> | 2012-09-05 15:46:56 +0200 |
---|---|---|
committer | Jiri Vanek <[email protected]> | 2012-09-05 15:46:56 +0200 |
commit | d770d3cb8aa41cbe3a860485bcb2c39a4f2cac40 (patch) | |
tree | e25b5a7a14a953a2fdbf9bc065a5fbf189432c49 | |
parent | 52b4eb32aaf143c8091d9a7d39e17a1453b82ca6 (diff) |
Added multiple-applets tests
18 files changed, 1166 insertions, 3 deletions
@@ -1,3 +1,31 @@ +2012-09-05 Jiri Vanek <[email protected]> + + * tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java: + Signed applet painting to canvas and periodically printing out counted messages + * tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2: + Second simple signed applet for testing two different simple ones parallel + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html: + * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html: + Various combinations of plain, signed, crashing, exception throwing and + exiting applets on single web-page + * tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java: + Simple applet painting to canvas and periodically printing out counted messages + * tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java: + testcases launching above html files. + * tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java: + Second simple applet painting to canvas and periodically printing out counted messages + * tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java: Enhanced + exception throwing reproducer. + 2012-09-04 Jiri Vanek <[email protected]> Danesh Dadachanji <[email protected]> diff --git a/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java b/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java new file mode 100644 index 0000000..0aded87 --- /dev/null +++ b/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java @@ -0,0 +1,110 @@ + +import java.applet.Applet; +import java.awt.BorderLayout; +import javax.swing.JLabel; +import javax.swing.SwingUtilities; + +/* CountingAppletSigned.java +Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea 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. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ +public class CountingAppletSigned extends Applet { + + public static void main(String[] args) throws InterruptedException { + Integer counter = null; + if (args.length > 0) { + counter = new Integer(args[0]); + ; + } + int i = 0; + while (true) { + System.out.println("counting... " + i); + if (counter != null && i == counter.intValue()) { + System.exit(-i); + } + i++; + Thread.sleep(1000); + } + } + + @Override + public void init() { + System.out.println("applet was initialised"); + final CountingAppletSigned self = this; + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + self.setLayout(new BorderLayout()); + self.add(new JLabel("S")); + self.validateTree(); + self.repaint(); + } + }); + } + + @Override + public void start() { + System.out.println("applet was started"); + String s = getParameter("kill"); + final String[] params; + if (s != null) { + params = new String[]{s}; + } else { + params = new String[0]; + } + new Thread(new Runnable() { + + @Override + public void run() { + try { + main(params); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }).start(); + } + + @Override + public void stop() { + System.out.println("applet was stopped"); + } + + @Override + public void destroy() { + System.out.println("applet will be destroyed"); + } +} diff --git a/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java b/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java new file mode 100644 index 0000000..d6958f0 --- /dev/null +++ b/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java @@ -0,0 +1,62 @@ +/* AppletTestSigned2.java +Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea 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. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +import java.applet.Applet; + +public class AppletTestSigned2 extends Applet { + + + @Override + public void init() { + System.out.println("AppletTestSigned2 was initialised"); + } + + @Override + public void start() { + System.out.println("AppletTestSigned2 was started"); + } + + @Override + public void stop() { + System.out.println("AppletTestSigned2 was stopped"); + } + + @Override + public void destroy() { + System.out.println("AppletTestSigned2 will be destroyed"); + } +} diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html new file mode 100644 index 0000000..33b92e7 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="orange"> +<p><applet code="SimpleTest2.class" archive="NOT_EXISTING_JAR.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html new file mode 100644 index 0000000..b361608 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html new file mode 100644 index 0000000..23e06f6 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html new file mode 100644 index 0000000..80dda2f --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="NotExising.class" archive="simpletest2.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html new file mode 100644 index 0000000..d708901 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="SimpleTest2.class" archive="simpletest2.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html new file mode 100644 index 0000000..88a8214 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html @@ -0,0 +1,45 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="CountingAppletSigned.class" archive="CountingAppletSigned.jar" codebase="." width="100" height="50"> + <param name="kill" value="5"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html new file mode 100644 index 0000000..5b0518f --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="orange"> +<p><applet code="SimpleTest2.class" archive="simpletest2.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html new file mode 100644 index 0000000..f46662d --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html @@ -0,0 +1,45 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="blue"> +<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100"> + <param name="kill" value="5"> +</applet></p> +<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html new file mode 100644 index 0000000..c007be2 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html @@ -0,0 +1,48 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + +--> +<html><head></head><body bgcolor="orange"> + <p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100"> + <param name="key1" value="value1"> + <param name="key2" value="#value2"> + </applet></p> + <p><applet code="AppletTest.class" archive="AppletTest.jar" codebase="." width="100" height="50"> + <param name="key1" value="value1"> + <param name="key2" value="#value2"> + </applet></p> + </body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html new file mode 100644 index 0000000..9409d94 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html @@ -0,0 +1,48 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="red"> +<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100"> + <param name="key1" value="value1"> + <param name="key2" value="#value2"> +</applet></p> +<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100"> + <param name="key1" value="value1"> + <param name="key2" value="#value2"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html new file mode 100644 index 0000000..5c114f1 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html @@ -0,0 +1,44 @@ +<!-- + +This file is part of IcedTea. + +IcedTea 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; either version 2, or (at your option) +any later version. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + + --> +<html><head></head><body bgcolor="red"> +<p><applet code="AppletTestSigned2.class" archive="AppletTestSigned2.jar" codebase="." width="50" height="100"> +</applet></p> +<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50"> +</applet></p> +</body> +</html> diff --git a/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java b/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java new file mode 100644 index 0000000..33c2229 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java @@ -0,0 +1,109 @@ + +import java.applet.Applet; +import java.awt.BorderLayout; +import javax.swing.JLabel; +import javax.swing.SwingUtilities; + +/* CountingApplet1.java +Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea 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. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ +public class CountingApplet1 extends Applet { + + public static void main(String[] args) throws InterruptedException { + Integer counter = null; + if (args.length > 0) { + counter = new Integer(args[0]); + } + int i = 0; + while (true) { + System.out.println("counting... " + i); + if (counter != null && i == counter.intValue()) { + System.exit(-i); + } + i++; + Thread.sleep(1000); + } + } + + @Override + public void init() { + System.out.println("applet was initialised"); + final CountingApplet1 self = this; + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + self.setLayout(new BorderLayout()); + self.add(new JLabel("C1")); + self.validateTree(); + self.repaint(); + } + }); + } + + @Override + public void start() { + System.out.println("applet was started"); + String s = getParameter("kill"); + final String[] params; + if (s != null) { + params = new String[]{s}; + } else { + params = new String[0]; + } + new Thread(new Runnable() { + + @Override + public void run() { + try { + main(params); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }).start(); + } + + @Override + public void stop() { + System.out.println("applet was stopped"); + } + + @Override + public void destroy() { + System.out.println("applet will be destroyed"); + } +} diff --git a/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java b/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java new file mode 100644 index 0000000..2087e05 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java @@ -0,0 +1,227 @@ +/* ParallelAppletsTest.java +Copyright (C) 2011 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea 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. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ + +import net.sourceforge.jnlp.ProcessResult; +import net.sourceforge.jnlp.browsertesting.BrowserTest; +import net.sourceforge.jnlp.browsertesting.Browsers; +import net.sourceforge.jnlp.annotations.NeedsDisplay; +import net.sourceforge.jnlp.annotations.TestInBrowsers; +import org.junit.Assert; + +import org.junit.Test; + +public class ParallelAppletsTest extends BrowserTest { + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1Ex2s() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1E_x_2s.html"); + checkSimpleSignedStarted(pr); + checkNotInitialised(pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1x2E() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2E.html"); + checkExactCounts(1, 10, pr); + checkNotInitialised(pr); + + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1x2e() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2e.html"); + checkExactCounts(1, 10, pr); + checkException(pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1ex2s() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1e_x_2s.html"); + checkSimpleSignedStarted(pr); + checkException(pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1sx2() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2.html"); + checkAppletStarted(pr); + checkSimpleSignedStarted(pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1sx2s() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2s.html"); + int found=countCounts(SimpleSignedStarted, pr.stdout); + assertExactCount(SimpleSignedStarted, 2, found); + + + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1sx2ssk() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2ss.html"); + checkSimpleSigned2Started(pr); + checkSimpleSignedStarted(pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1x2sk() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2sk.html"); + checkExitNotAllowed(pr); + checkAtLeastCounts(1, 10, pr); + checkExactCounts(2, 5, pr); + + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1kx2() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1k_x_2.html"); + checkExitNotAllowed(pr); + checkAtLeastCounts(1, 10, pr); + checkExactCounts(2, 5, pr); + + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1x2() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2.html"); + checkExactCounts(2, 10, pr); + } + + @Test + @TestInBrowsers(testIn = {Browsers.one}) + @NeedsDisplay + public void testParallelAppletsTest1x1() throws Exception { + ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_1.html"); + checkExactCounts(2, 10, pr); + } + private static final String ACE = "java.security.AccessControlException"; + private static final String Sexit = "System.exit()"; + private static final String LE1 = "net.sourceforge.jnlp.LaunchException"; + private static final String LE2 = "Fatal: Initialization Error"; + private static final String Cinit = "Could not initialize applet"; + private static final String CountStub = "counting... "; + private static final String SimpleSignedStarted = "AppletTestSigned was started"; + private static final String SimpleSigned2Started = "AppletTestSigned2 was started"; + private static final String AppletStarted = "applet was started"; + private static final String AppletThrowedException = "java.lang.RuntimeException: Correct exception"; + + + + + private void checkExitNotAllowed(ProcessResult pr) { + Assert.assertTrue("Applets cant call " + Sexit, pr.stderr.matches("(?s).*" + ACE + ".*" + Sexit + ".*")); + } + + private void checkNotInitialised(ProcessResult pr) { + Assert.assertTrue("Applets should not be initialised ", pr.stderr.matches("(?s).*" + LE1 + ".*" + LE2 + ".*" + Cinit + ".*")); + } + + private void checkSimpleSignedStarted(ProcessResult pr) { + Assert.assertTrue("Applet's start should be confirmed by " + SimpleSignedStarted, pr.stdout.contains(SimpleSignedStarted)); + } + private void checkSimpleSigned2Started(ProcessResult pr) { + Assert.assertTrue("Applet's start should be confirmed by " + SimpleSigned2Started, pr.stdout.contains(SimpleSigned2Started)); + } + private void checkAppletStarted(ProcessResult pr) { + Assert.assertTrue("Applet's start should be confirmed by " + AppletStarted, pr.stdout.contains(AppletStarted)); + } + private void checkException(ProcessResult pr) { + Assert.assertTrue("Applet's exception should be confirmed by " + AppletThrowedException, pr.stderr.contains(AppletThrowedException)); + } + + private void checkExactCounts(int howManyTimes, int countIdTill, ProcessResult pr) { + for (int i = 0; i <= countIdTill; i++) { + String countId = CountStub + i+"\n"; + int found = countCounts(countId, pr.stdout); + assertExactCount(countId, howManyTimes, found); + } + + } + + private void assertExactCount(String what, int howManyTimes, int found) { + Assert.assertEquals(what + " was expected exactly " + howManyTimes + " but was found " + found, howManyTimes, found); + } + + private void checkAtLeastCounts(int howManyTimes, int countIdTill, ProcessResult pr) { + for (int i = 0; i <= countIdTill; i++) { + String countId = CountStub + i; + int found = countCounts(countId, pr.stdout); + Assert.assertTrue(countId + " was expected et least " + howManyTimes + " but was found " + found, found >= howManyTimes); + } + + } + + private int countCounts(String what, String where) { + int lastIndex = 0; + int count = 0; + + while (lastIndex != -1) { + + lastIndex = where.indexOf(what, lastIndex); + + if (lastIndex != -1) { + count++; + lastIndex += what.length(); + } + } + return count; + + } + + +} diff --git a/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java b/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java new file mode 100644 index 0000000..bb9ebf2 --- /dev/null +++ b/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java @@ -0,0 +1,109 @@ + +import java.applet.Applet; +import java.awt.BorderLayout; +import javax.swing.JLabel; +import javax.swing.SwingUtilities; + +/* CountingApplet1.java +Copyright (C) 2012 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea 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. + +IcedTea 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 IcedTea; see the file COPYING. If not, write to +the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. + +Linking this library statically or dynamically with other modules is +making a combined work based on this library. Thus, the terms and +conditions of the GNU General Public License cover the whole +combination. + +As a special exception, the copyright holders of this library give you +permission to link this library with independent modules to produce an +executable, regardless of the license terms of these independent +modules, and to copy and distribute the resulting executable under +terms of your choice, provided that you also meet, for each linked +independent module, the terms and conditions of the license of that +module. An independent module is a module which is not derived from +or based on this library. If you modify this library, you may extend +this exception to your version of the library, but you are not +obligated to do so. If you do not wish to do so, delete this +exception statement from your version. + */ +public class CountingApplet2 extends Applet { + + public static void main(String[] args) throws InterruptedException { + Integer counter = null; + if (args.length > 0) { + counter = new Integer(args[0]); + } + int i = 0; + while (true) { + System.out.println("counting... " + i); + if (counter != null && i == counter.intValue()) { + System.exit(-i); + } + i++; + Thread.sleep(1000); + } + } + + @Override + public void init() { + System.out.println("applet was initialised"); + final CountingApplet2 self = this; + SwingUtilities.invokeLater(new Runnable() { + + @Override + public void run() { + self.setLayout(new BorderLayout()); + self.add(new JLabel("C2")); + self.validateTree(); + self.repaint(); + } + }); + } + + @Override + public void start() { + System.out.println("applet was started"); + String s = getParameter("kill"); + final String[] params; + if (s != null) { + params = new String[]{s}; + } else { + params = new String[0]; + } + new Thread(new Runnable() { + + @Override + public void run() { + try { + main(params); + } catch (Exception ex) { + ex.printStackTrace(); + } + } + }).start(); + } + + @Override + public void stop() { + System.out.println("applet was stopped"); + } + + @Override + public void destroy() { + System.out.println("applet will be destroyed"); + } +} diff --git a/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java index 9160c62..f15278f 100644 --- a/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java +++ b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java @@ -1,3 +1,6 @@ + +import java.applet.Applet; + /* SimpleTest2.java Copyright (C) 2011 Red Hat, Inc. @@ -35,10 +38,31 @@ obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ -public class SimpleTest2{ +public class SimpleTest2 extends Applet{ + + public static void main(String[] args) { + throw new RuntimeException("Correct exception"); + } + + @Override + public void init() { + System.out.println("applet was initialised"); + } - public static void main(String[] args){ -throw new RuntimeException("Correct exception"); + @Override + public void start() { + System.out.println("applet was started"); + main(null); + } + @Override + public void stop() { + System.out.println("applet was stopped"); } + + @Override + public void destroy() { + System.out.println("applet will be destroyed"); + } + } |