Initial import
[jpf-core.git] / src / tests / gov / nasa / jpf / test / mc / threads / SchedulesTest.java
1 /*
2  * Copyright (C) 2014, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The Java Pathfinder core (jpf-core) platform is licensed under the
7  * Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance 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, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and 
16  * limitations under the License.
17  */
18
19 package gov.nasa.jpf.test.mc.threads;
20
21 import gov.nasa.jpf.util.test.TestJPF;
22
23 import org.junit.Test;
24
25
26
27 public class SchedulesTest extends TestJPF {
28   
29   @Test public void testSleep () {
30
31     if (verifyNoPropertyViolation("+cg.threads.break_start=true",
32                                   "+cg.threads.break_yield=true",
33                                   "+cg.threads.break_sleep=true",
34                                   "+listener=.listener.PathOutputMonitor",
35                                   "+pom.all=test/gov/nasa/jpf/test/mc/threads/SchedulesTest-output")) {
36       Runnable r = new Runnable() {
37
38         @Override
39                 public void run() {
40           System.out.println("T started");
41           try {
42             System.out.println("T sleeping");
43             Thread.sleep(100);
44           } catch (InterruptedException ix) {
45             throw new RuntimeException("unexpected interrupt");
46           }
47           System.out.println("T finished");
48         }
49       };
50
51       Thread t = new Thread(r);
52       System.out.println("main starting T");
53       t.start();
54
55       System.out.println("main finished");
56     }
57   }
58 }