launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java
branchemul
changeset 709 722c51330e75
parent 667 5866e89ef568
child 741 1343f52164f3
     1.1 --- a/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java	Tue Feb 05 08:48:23 2013 +0100
     1.2 +++ b/launcher/src/main/java/org/apidesign/bck2brwsr/launcher/Bck2BrwsrLauncher.java	Mon Feb 11 19:47:46 2013 +0100
     1.3 @@ -191,10 +191,26 @@
     1.4                  String id = request.getParameter("request");
     1.5                  String value = request.getParameter("result");
     1.6                  
     1.7 +                
     1.8 +                InvocationContext mi = null;
     1.9 +                int caseNmbr = -1;
    1.10 +                
    1.11                  if (id != null && value != null) {
    1.12                      LOG.log(Level.INFO, "Received result for case {0} = {1}", new Object[]{id, value});
    1.13                      value = decodeURL(value);
    1.14 -                    cases.get(Integer.parseInt(id)).result(value, null);
    1.15 +                    int indx = Integer.parseInt(id);
    1.16 +                    cases.get(indx).result(value, null);
    1.17 +                    if (++indx < cases.size()) {
    1.18 +                        mi = cases.get(indx);
    1.19 +                        LOG.log(Level.INFO, "Re-executing case {0}", indx);
    1.20 +                        caseNmbr = indx;
    1.21 +                    }
    1.22 +                } else {
    1.23 +                    if (!cases.isEmpty()) {
    1.24 +                        LOG.info("Re-executing test cases");
    1.25 +                        mi = cases.get(0);
    1.26 +                        caseNmbr = 0;
    1.27 +                    }
    1.28                  }
    1.29                  
    1.30                  if (prev != null) {
    1.31 @@ -202,7 +218,10 @@
    1.32                      prev = null;
    1.33                  }
    1.34                  
    1.35 -                InvocationContext mi = methods.take();
    1.36 +                if (mi == null) {
    1.37 +                    mi = methods.take();
    1.38 +                    caseNmbr = cnt++;
    1.39 +                }
    1.40                  if (mi == END) {
    1.41                      response.getWriter().write("");
    1.42                      wait.countDown();
    1.43 @@ -218,11 +237,11 @@
    1.44                  cases.add(mi);
    1.45                  final String cn = mi.clazz.getName();
    1.46                  final String mn = mi.methodName;
    1.47 -                LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{cnt, cn, mn});
    1.48 +                LOG.log(Level.INFO, "Request for {0} case. Sending {1}.{2}", new Object[]{caseNmbr, cn, mn});
    1.49                  response.getWriter().write("{"
    1.50                      + "className: '" + cn + "', "
    1.51                      + "methodName: '" + mn + "', "
    1.52 -                    + "request: " + cnt
    1.53 +                    + "request: " + caseNmbr
    1.54                  );
    1.55                  if (mi.html != null) {
    1.56                      response.getWriter().write(", html: '");
    1.57 @@ -230,7 +249,6 @@
    1.58                      response.getWriter().write("'");
    1.59                  }
    1.60                  response.getWriter().write("}");
    1.61 -                cnt++;
    1.62              }
    1.63          }, "/data");
    1.64