Each launcher should be used only once
authorJaroslav Tulach <jaroslav.tulach@apidesign.org>
Tue, 26 Jan 2016 04:42:06 +0100
changeset 1861433856f897dd
parent 1860 4ce38f21f4cd
child 1862 fa00fb053c72
Each launcher should be used only once
rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java
     1.1 --- a/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java	Tue Jan 26 04:36:23 2016 +0100
     1.2 +++ b/rt/vmtest/src/main/java/org/apidesign/bck2brwsr/vmtest/impl/CompareCase.java	Tue Jan 26 04:42:06 2016 +0100
     1.3 @@ -21,7 +21,9 @@
     1.4  import org.apidesign.bck2brwsr.vmtest.*;
     1.5  import java.lang.reflect.Method;
     1.6  import java.util.ArrayList;
     1.7 +import java.util.HashSet;
     1.8  import java.util.List;
     1.9 +import java.util.Set;
    1.10  import org.apidesign.bck2brwsr.launcher.Launcher;
    1.11  import org.testng.Assert;
    1.12  import org.testng.ITest;
    1.13 @@ -158,18 +160,23 @@
    1.14          if (slowdown > 0.0 && slowdownOverride != null) {
    1.15              slowdown = Double.parseDouble(slowdownOverride);
    1.16          }
    1.17 -        if (c.scripting()) {
    1.18 -            final Bck2BrwsrCase js = new Bck2BrwsrCase(m, "JavaScript", l.javaScript(), false, null, null);
    1.19 -            ret.add(js);
    1.20 -            ret.add(new CompareCase(m, real, js, slowdown));
    1.21 -        }
    1.22 +        Set<Launcher> unique = new HashSet<>();
    1.23          for (String b : brwsr) {
    1.24              final Launcher s = l.brwsr(b);
    1.25              ret.add(s);
    1.26 +            unique.add(s);
    1.27              final Bck2BrwsrCase cse = new Bck2BrwsrCase(m, b, s, false, null, null);
    1.28              ret.add(cse);
    1.29              ret.add(new CompareCase(m, real, cse, slowdown));
    1.30          }
    1.31 +        if (c.scripting()) {
    1.32 +            final Launcher jsLauncher = l.javaScript();
    1.33 +            if (unique.add(jsLauncher)) {
    1.34 +                final Bck2BrwsrCase js = new Bck2BrwsrCase(m, "JavaScript", jsLauncher, false, null, null);
    1.35 +                ret.add(js);
    1.36 +                ret.add(new CompareCase(m, real, js, slowdown));
    1.37 +            }
    1.38 +        }
    1.39      }
    1.40      private static void registerBrwsrCases(Class<? extends Annotation> brwsrTest, Method m, final LaunchSetup l, List<Object> ret, String[] brwsr) {
    1.41          Object c = m.getAnnotation(brwsrTest);