Changeset 355


Ignore:
Timestamp:
Jul 11, 2003, 2:27:52 PM (22 years ago)
Author:
bird
Message:

All dependencies done.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/testcase/checkhdrs.cmd

    • Property cvs2svn:cvs-rev changed from 1.1 to 1.2
    r354 r355  
    1313 */
    1414
    15 parse arg sInclude sOther
     15parse arg sInclude sFile sOther
    1616if (sInclude = '') then
    1717do
    18     say 'syntax: checkhdrs <includedir>';
     18    say 'syntax: checkhdrs <includedir> [file]';
    1919    exit 8;
    2020end
     
    3737 */
    3838i = 1;
    39 asExcludes.i = ''; i=i+1;
     39asExcludes.i = 'os2tk.h'; i=i+1;
     40asExcludes.i = 'sys\moddef.h'; i=i+1;   /* f**kup */
     41asExcludes.i = 'objc\encoding.h'; i=i+1;
     42asExcludes.i = 'objc\hash.h'; i=i+1;
     43asExcludes.i = 'objc\NXConstS.h'; i=i+1;
     44asExcludes.i = 'objc\objc-api.h'; i=i+1;
     45asExcludes.i = 'objc\objc-lis.h'; i=i+1;
     46asExcludes.i = 'objc\objc.h'; i=i+1;
     47asExcludes.i = 'objc\Object.h'; i=i+1;
     48asExcludes.i = 'objc\Protocol.h'; i=i+1;
     49asExcludes.i = 'objc\sarray.h'; i=i+1;
     50asExcludes.i = 'objc\thr.h'; i=i+1;
     51asExcludes.i = 'objc\typedstr.h'; i=i+1;
     52asExcludes.i = '386\types.h'; i=i+1;
     53asExcludes.i = 'machine\types.h'; i=i+1;
    4054asExcludes.0 = i - 1;
    4155
     56/*
     57 * Require Resolving.
     58 */
     59i = 1;
     60aReq.i.msHdr = 'dyn-string.h';  aReq.i.msIncs = 'ansidecl.h'; i=i+1;
     61aReq.i.msHdr = 'emx\locale.h';  aReq.i.msIncs = 'sys/types.h'; i = i + 1;
     62aReq.i.msHdr = 'emx\umalloc.h'; aReq.i.msIncs = 'stddef.h umalloc.h sys/builtin.h sys/fmutex.h sys/rmutex.h'; i = i + 1;
     63aReq.i.msHdr = 'fibheap.h';     aReq.i.msIncs = 'sys/types.h'; i=i+1;
     64aReq.i.msHdr = 'hashtab.h';     aReq.i.msIncs = 'sys/types.h'; i=i+1;
     65aReq.i.msHdr = 'net\if.h';      aReq.i.msIncs = 'sys/socket.h'; i=i+1;
     66aReq.i.msHdr = 'net\if_arp.h';  aReq.i.msIncs = 'sys/socket.h'; i=i+1;
     67aReq.i.msHdr = 'net\if_dl.h';   aReq.i.msIncs = 'sys/socket.h'; i=i+1;
     68aReq.i.msHdr = 'net\route.h';   aReq.i.msIncs = 'sys/socket.h'; i=i+1;
     69aReq.i.msHdr = 'netinet\ip_icmp.h';     aReq.i.msIncs = 'sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h'; i=i+1;
     70aReq.i.msHdr = 'netinet\icmp_var.h';    aReq.i.msIncs = 'sys/types.h netinet/in_systm.h netinet/in.h netinet/ip.h netinet/ip_icmp.h'; i=i+1;
     71aReq.i.msHdr = 'netinet\if_ether.h';    aReq.i.msIncs = 'sys/types.h netinet/in.h sys/socket.h net/if_arp.h net/if.h '; i=i+1;
     72aReq.i.msHdr = 'netinet\igmp.h';        aReq.i.msIncs = 'sys/types.h netinet/in.h'; i=i+1;
     73aReq.i.msHdr = 'netinet\igmp_var.h';    aReq.i.msIncs = 'sys/types.h netinet/in.h netinet/igmp.h'; i=i+1;
     74aReq.i.msHdr = 'netinet\in_systm.h';    aReq.i.msIncs = 'sys/types.h'; i=i+1;
     75aReq.i.msHdr = 'netinet\ip.h';          aReq.i.msIncs = 'sys/types.h netinet/in_systm.h netinet/in.h'; i=i+1;
     76aReq.i.msHdr = 'netinet\ip_var.h';      aReq.i.msIncs = 'sys/types.h netinet/in.h'; i=i+1;
     77aReq.i.msHdr = 'netinet\ip_mrout.h';    aReq.i.msIncs = 'sys/types.h netinet/in.h'; i=i+1;
     78aReq.i.msHdr = 'netinet\ip_mroute.h';   aReq.i.msIncs = 'sys/types.h netinet/in.h'; i=i+1;
     79aReq.i.msHdr = 'netinet\tcp.h';         aReq.i.msIncs = 'sys/types.h'; i=i+1;
     80aReq.i.msHdr = 'netinet\tcpip.h';       aReq.i.msIncs = 'sys/types.h netinet/in.h netinet/ip_var.h netinet/tcp.h'; i=i+1;
     81aReq.i.msHdr = 'netinet\tcp_var.h';     aReq.i.msIncs = 'sys/types.h'; i=i+1;
     82aReq.i.msHdr = 'netinet\udp.h';         aReq.i.msIncs = 'sys/types.h'; i=i+1;
     83aReq.i.msHdr = 'netinet\udp_var.h';     aReq.i.msIncs = 'sys/types.h netinet/udp.h netinet/in.h netinet/ip_var.h'; i=i+1;
     84
     85aReq.i.msHdr = 'protocol\routed.h';     aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h sys/socket.h'; i=i+1;
     86aReq.i.msHdr = 'protocol\rwhod.h';      aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h'; i=i+1;
     87aReq.i.msHdr = 'protocol\talkd.h';      aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h sys/socket.h'; i=i+1;
     88aReq.i.msHdr = 'protocol\timed.h';      aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h'; i=i+1;
     89aReq.i.msHdr = 'protocols\routed.h';    aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h sys/socket.h'; i=i+1;
     90aReq.i.msHdr = 'protocols\rwhod.h';     aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h'; i=i+1;
     91aReq.i.msHdr = 'protocols\talkd.h';     aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h sys/socket.h'; i=i+1;
     92aReq.i.msHdr = 'protocols\timed.h';     aReq.i.msIncs = 'sys/types.h sys/param.h sys/time.h'; i=i+1;
     93aReq.i.msHdr = 'resolv.h';              aReq.i.msIncs = 'sys/socket.h netinet/in.h arpa/nameser.h'; i=i+1;
     94aReq.i.msHdr = 'sys\fmutex.h';          aReq.i.msIncs = 'sys/builtin.h'; i = i + 1;
     95aReq.i.msHdr = 'sys\moddef.h';          aReq.i.msIncs = 'stdio.h stdlib.h alloca.h errno.h string.h process.h io.h fcntl.h sys/types.h'; i=i+1;
     96aReq.i.msHdr = 'sys\rmutex.h';          aReq.i.msIncs = 'sys/builtin.h sys/fmutex.h'; i = i + 1;
     97aReq.i.msHdr = 'sys\smutex.h';          aReq.i.msIncs = 'sys/builtin.h'; i = i + 1;
     98aReq.i.msHdr = 'sys\un.h';              aReq.i.msIncs = 'sys/types.h'; i=i+1; /* TCPV40HDRS only */
     99aReq.i.msHdr = 'ternary.h';             aReq.i.msIncs = 'ansidecl.h'; i=i+1;
     100aReq.0 = i;
    42101
    43102/*
     
    45104 */
    46105asFiles.0 = 0;
    47 rc = SysFileTree(sInclude'\*.h', 'asFiles', 'OSF');
     106if (sFile <> '') then
     107do
     108    rc = SysFileTree(sFile, 'asFiles', 'OSF');
     109    if (asFiles.0 = 0) then
     110        rc = SysFileTree(sInclude'\'sFile, 'asFiles', 'OSF');
     111end
     112else
     113    rc = SysFileTree(sInclude'\*.h', 'asFiles', 'OSF');
    48114if (rc <> 0) then
    49115do
     
    59125asFailed.0 = 0;
    60126do i = 1 to asFiles.0
    61     sName = substr(asFiles.i, length(sInclude) + 2);
    62     say 'info: testing 'sName'....';
     127    call testfile sInclude, asFiles.i;
     128end
     129
     130if (asFailed.0 > 0) then
     131do
     132    say 'The following files failed:'
     133    do i = 1 to asFailed.0
     134        say '  'asFailed.i;
     135    end
     136end
     137
     138exit(asFailed.0);
     139
     140
     141
     142/**
     143 * Test one file.
     144 * @returns 0
     145 * @param   sDir    Include directory (for the -I option and for basing sFile).
     146 * @param   sFile   The include file to test, full path.
     147 */
     148testfile: procedure expose asFailed. asExcludes. aReq.
     149parse arg sDir, sFile
     150    sName = substr(sFile, length(sDir) + 2);
     151    if (isExcluded(sName)) then
     152    do
     153        say 'info: skipping 'sName'...';
     154        return 0;
     155    end
     156
     157    say 'info: testing 'sName'...';
    63158    sTmp = '.\tmpfile.cpp';
    64159    sTmpS = '.\tmpfile.s';
    65160    call SysFileDelete sTmp;
     161    call writeReqs sTmp, sName;
    66162    call lineout sTmp, '#include <'sName'>';
    67163    call lineout sTmp, 'int main() {return 0;}';
    68164    call lineout sTmp
    69     Address CMD 'gcc -S -I'sInclude sTmp;
     165    /*Address CMD 'type 'sTmp; */
     166    Address CMD 'gcc -S -O -Wall -I'sDir sTmp;
    70167    if (rc <> 0) then
    71168    do
     
    76173    call SysFileDelete sTmp;
    77174    call SysFileDelete sTmpS;
    78 end
    79 
    80 if (asFailed.0 > 0) then
    81 do
    82     say 'The following files failed:'
    83     do i = 1 to asFailed.0
    84         say '  'asFailed.i;
    85     end
    86 end
    87 
    88 exit(asFailed.0);
     175return 0;
     176
     177
     178/**
     179 * Check if sFile is excluded from testing.
     180 */
     181isExcluded: procedure expose asExcludes.
     182parse arg sFile
     183    do i = 1 to asExcludes.0
     184        if (sFile = asExcludes.i) then
     185            return 1;
     186    end
     187return 0;
     188
     189
     190/**
     191 * Writes required code (#includes) for a given header.
     192 */
     193writeReqs: procedure expose aReq.
     194parse arg sOutput, sFile
     195    do i = 1 to aReq.0
     196        if (sFile = aReq.i.msHdr) then
     197        do
     198            do j = 1 to words(aReq.i.msIncs)
     199                call lineout sOutput, '#include <'word(aReq.i.msIncs, j)'>';
     200            end
     201            leave i;
     202        end
     203    end
     204return 0;
Note: See TracChangeset for help on using the changeset viewer.