home *** CD-ROM | disk | FTP | other *** search
/ GEMini Atari / GEMini_Atari_CD-ROM_Walnut_Creek_December_1993.iso / files / program / m2posx02 / tsys.mpp < prev    next >
Encoding:
Text File  |  1993-10-23  |  3.3 KB  |  128 lines

  1. MODULE tsys;
  2.  
  3. (* Test- und Anwendungsbeispiel fuer Modul 'sys'.
  4.  *
  5.  * 14-Feb-93, hk
  6.  *)
  7.  
  8. FROM err IMPORT
  9. (* VAR *)  errno;
  10.  
  11. FROM types IMPORT
  12. (* TYPE *) SIGNEDLONG, UNSIGNEDLONG, timeT;
  13.  
  14. FROM sys IMPORT
  15. (* TYPE *) PConfVal, SConfVal, pathconf, sysconf, time;
  16.  
  17. FROM lib IMPORT
  18. (* PROC *) strerror, ltoa;
  19.  
  20. FROM InOut IMPORT
  21. (* PROC *) WriteString, WriteInt, WriteCard, WriteLn, Write, Read;
  22.  
  23. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  24.  
  25. CONST
  26.  ERROR = LIC(-1);
  27.  
  28. VAR
  29.  limit  : SIGNEDLONG;
  30.  valStr : ARRAY [0..40] OF CHAR;
  31.  ch     : CHAR;
  32.  
  33. (*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
  34.  
  35. PROCEDURE TestVal ((* EIN/ -- *) proc   : ARRAY OF CHAR;
  36.                    (* EIN/ -- *) limit  : SIGNEDLONG    );
  37. BEGIN
  38.  WriteString(proc);
  39.  IF limit = ERROR THEN
  40.    IF errno <> 0 THEN
  41.      WriteString("**failed**:: ");
  42.      strerror(errno, valStr);
  43.      WriteString(valStr);
  44.      errno := 0;
  45.    ELSE
  46.      WriteString("nicht ermittelbar");
  47.    END;
  48.  ELSE
  49.    ltoa(limit, valStr, 10);
  50.    WriteString(valStr);
  51.  END;
  52.  WriteLn;
  53. END TestVal;
  54.  
  55. PROCEDURE TestBool ((* EIN/ -- *) proc   : ARRAY OF CHAR;
  56.                     (* EIN/ -- *) limit  : SIGNEDLONG;
  57.                     (* EIN/ -- *) yes    : ARRAY OF CHAR;
  58.                     (* EIN/ -- *) no     : ARRAY OF CHAR );
  59. BEGIN
  60.  WriteString(proc);
  61.  IF limit = ERROR THEN
  62.    IF errno <> 0 THEN
  63.      WriteString("**failed**:: ");
  64.      strerror(errno, valStr);
  65.      WriteString(valStr);
  66.      errno := 0;
  67.    ELSE
  68.      WriteString(no);
  69.    END;
  70.  ELSE
  71.    WriteString(yes);
  72.  END;
  73.  WriteLn;
  74. END TestBool;
  75.  
  76. (*===========================================================================*)
  77.  
  78. BEGIN
  79.  errno := 0;
  80.  TestVal("sysconf(_SC_ARG_MAX) : ", sysconf(scArgMax));
  81.  
  82.  TestVal("sysconf(_SC_OPEN_MAX) : ", sysconf(scOpenMax));
  83.  
  84.  TestVal("sysconf(_SC_CHILD_MAX) : ", sysconf(scChildMax));
  85.  
  86.  TestVal("sysconf(_SC_CLK_TCK) : ", sysconf(scClkTck));
  87.  
  88.  TestVal("sysconf(_SC_VERSION) : ", sysconf(scVersion));
  89.  
  90.  TestBool("sysconf(_SC_JOB_CONTROL) : ", sysconf(scJobControl),
  91.           "wird unterstützt", "wird nicht unterstützt");
  92.  
  93.  TestBool("sysconf(_SC_SAVED_IDS) : ", sysconf(scSavedIds),
  94.           "wird unterstützt", "wird nicht unterstützt");
  95.  
  96.  limit := sysconf(scNGroupsMax);
  97.  ltoa(limit, valStr, 10);
  98.  TestBool("sysconf(_SC_NGROUPS_MAX) : ", limit, valStr,
  99.           "wird nicht unterstützt");
  100.  WriteLn;
  101.  
  102.  
  103.  TestVal('pathconf(".", _PC_LINK_MAX) : ', pathconf(".", pcLinkMax));
  104.  
  105.  TestVal('pathconf(".", _PC_PATH_MAX) : ', pathconf(".", pcPathMax));
  106.  
  107.  TestVal('pathconf(".", _PC_NAME_MAX) : ', pathconf(".", pcNameMax));
  108.  
  109.  TestVal('pathconf(".", _PC_PIPE_BUF) : ', pathconf(".", pcPipeBuf));
  110.  
  111.  TestVal('pathconf("/dev/tty", _PC_VDISABLE) : ',
  112.          pathconf("/dev/tty", pcVdisable));
  113.  
  114.  TestVal('pathconf("/dev/tty", _PC_MAX_CANON) : ',
  115.          pathconf("/dev/tty", pcMaxCanon));
  116.  
  117.  TestVal('pathconf("/dev/tty", _PC_MAX_INPUT) : ',
  118.          pathconf("/dev/tty", pcMaxInput));
  119.  
  120.  TestBool('pathconf(".", _PC_NO_TRUNC) : ', pathconf(".", pcNoTrunc),
  121.           "Dateinamen werden nicht gekuerzt","Dateinamen werden gekuerzt");
  122.  
  123.  TestBool('pathconf(".", _PC_CHOWN_RESTRICTED) : ',
  124.           pathconf(".", pcChownRestricted),"ja", "nein");
  125.  
  126.  Read(ch);
  127. END tsys.
  128.