View Javadoc
1   /*
2    * Licensed to the Apache Software Foundation (ASF) under one
3    * or more contributor license agreements.  See the NOTICE file
4    * distributed with this work for additional information
5    * regarding copyright ownership.  The ASF licenses this file
6    * to you under the Apache License, Version 2.0 (the
7    * "License"); you may not use this file except in compliance
8    * with the License.  You may obtain a copy of the License at
9    *
10   *   http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing,
13   * software distributed under the License is distributed on an
14   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15   * KIND, either express or implied.  See the License for the
16   * specific language governing permissions and limitations
17   * under the License.
18   */
19  package org.apache.maven.surefire.junitcore;
20  
21  import java.util.concurrent.CountDownLatch;
22  import java.util.concurrent.ExecutionException;
23  
24  import org.apache.maven.surefire.api.testset.TestSetFailedException;
25  import org.junit.After;
26  import org.junit.Test;
27  import org.junit.runner.Result;
28  
29  import static junit.framework.Assert.assertEquals;
30  
31  /**
32   * @author Kristian Rosenvold
33   * @author nkeyval
34   */
35  public class Surefire813IncorrectResultTest {
36  
37      @Test
38      public void dcount() throws TestSetFailedException, ExecutionException {
39          JUnitCoreTester jUnitCoreTester = new JUnitCoreTester();
40          final Result run = jUnitCoreTester.run(true, Test6.class);
41          assertEquals(0, run.getFailureCount());
42      }
43  
44      /**
45       *
46       */
47      public static class Test6 {
48          private final CountDownLatch latch = new CountDownLatch(1);
49  
50          @Test
51          public void test61() throws Exception {
52              System.out.println("Hey");
53          }
54  
55          @After
56          public void tearDown() throws Exception {
57              new MyThread().start();
58              latch.await();
59          }
60  
61          private static final String STR = "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";
62  
63          public void synchPrint() {
64              for (int i = 0; i < 1000; ++i) // Increase this number if it does no fail
65              {
66                  System.out.println(i + ":" + STR);
67              }
68          }
69  
70          private class MyThread extends Thread {
71              @Override
72              public void run() {
73                  System.out.println(STR);
74                  latch.countDown();
75                  synchPrint();
76              }
77          }
78      }
79  }