1! { dg-do run }
2!
3! Run-time test for EVENT_TYPE
4!
5use iso_fortran_env, only: event_type
6implicit none
7
8type(event_type), save :: var[*]
9integer :: count, stat
10
11count = -42
12call event_query (var, count)
13if (count /= 0) call abort()
14
15stat = 99
16event post (var, stat=stat)
17if (stat /= 0) call abort()
18call event_query(var, count, stat=stat)
19if (count /= 1 .or. stat /= 0) call abort()
20
21stat = 99
22event post (var[this_image()])
23call event_query(var, count)
24if (count /= 2) call abort()
25
26stat = 99
27event wait (var)
28call event_query(var, count)
29if (count /= 1) call abort()
30
31stat = 99
32event post (var)
33call event_query(var, count)
34if (count /= 2) call abort()
35
36stat = 99
37event post (var)
38call event_query(var, count)
39if (count /= 3) call abort()
40
41stat = 99
42event wait (var, until_count=2)
43call event_query(var, count)
44if (count /= 1) call abort()
45
46stat = 99
47event wait (var, stat=stat, until_count=1)
48if (stat /= 0) call abort()
49call event_query(event=var, stat=stat, count=count)
50if (count /= 0 .or. stat /= 0) call abort()
51end
52