License Header change: Removed the LICENSE_END before beta
[scilab.git] / scilab / modules / action_binding / tests / java / org / scilab / tests / modules / action_binding / utils / SignalTest.java
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) 2011 - DIGITEO - Clement DAVID
4  *
5  * Copyright (C) 2012 - 2016 - Scilab Enterprises
6  *
7  * This file is hereby licensed under the terms of the GNU GPL v2.0,
8  * pursuant to article 5.3.4 of the CeCILL v.2.1.
9  * This file was originally licensed under the terms of the CeCILL v2.1,
10  * and continues to be available under such terms.
11  * For more information, see the COPYING file which you should have received
12  * along with this program.
13  *
14  */
15
16 package org.scilab.tests.modules.action_binding.utils;
17
18 import org.scilab.modules.action_binding.utils.Signal;
19 import org.junit.*;
20
21 /**
22  * Check of {@link Signal} class
23  */
24 public class SignalTest {
25
26     final String signal = "plop";
27
28     final Runnable waiter = new Runnable() {
29         @Override
30         public void run() {
31             Signal.wait(signal);
32         }
33     };
34
35     final Runnable notifier = new Runnable() {
36         @Override
37         public void run() {
38             Signal.notify(signal);
39         }
40     };
41
42     @Test(timeout = 10000)
43     public void simpleNotify() throws InterruptedException {
44         Thread tWaiter = new Thread(waiter);
45         Thread tNotifier = new Thread(notifier);
46
47         // wait
48         tWaiter.start();
49
50         // then notify
51         tNotifier.start();
52
53         tWaiter.join();
54         tNotifier.join();
55     }
56
57     @Test(timeout = 10000)
58     public void notifyBeforeWait() throws InterruptedException {
59         Thread tWaiter = new Thread(waiter);
60         Thread tNotifier = new Thread(notifier);
61
62         // notify
63         tNotifier.start();
64
65         // then wait
66         tWaiter.start();
67
68         tWaiter.join();
69         tNotifier.join();
70     }
71 }