1--  A basic test initially intended to check that
2--  System.Task_Info.Number_Of_Processors yields sensible results on
3--  both 32bit and 64bit Windows. Additional configurations where the
4--  feature was verified to work can opt-in.
5
6--  { dg-do run { target *-*-linux* *-*-mingw* *-*-solaris2.* } }
7
8with System.Multiprocessors;
9with System.Task_Info;
10
11procedure System_Info1 is
12   Ncpus : constant System.Multiprocessors.CPU :=
13     System.Multiprocessors.Number_Of_CPUS;
14   Nprocs : constant Integer :=
15     System.Task_Info.Number_Of_Processors;
16
17   use type System.Multiprocessors.CPU;
18begin
19   if Nprocs <= 0 or else Nprocs > 1024 then
20      raise Program_Error;
21   end if;
22   if Ncpus <= 0 or else Ncpus > 1024 then
23      raise Program_Error;
24   end if;
25   if Nprocs /= Integer (Ncpus) then
26      raise Program_Error;
27   end if;
28end;
29