/* Test eSchemes setup */ call RxFuncAdd 'SysLoadFuncs', 'RexxUtil', 'SysLoadFuncs' call SysLoadFuncs /* TODO: * check estlrlres.dll * check WPS classes -- SysQueryClassList check runtime: * check wpfldrex * ecolange * ecomedia */ bootdrive=lib_boot_drive() /* Test 0 - Query version of eSchemes */ Test0: say "" say "eSchemes test, v.1.49" say "Test 0 - Query version of eSchemes installed on your PC" ACPIfiles.0=1 ACPIfiles.1=bootdrive'\ECS\DLL\WPSCHEME.DLL' test0failed=0 do i=1 to ACPIfiles.0 filename=ACPIfiles.i logX='eschemes-log-7-'i'.log' '@bldlevel 'filename' > '||logX do while lines(logX)>0 line=TRANSLATE(linein(logX)) signature=POS('FILE VERSION:',line) /*say filename signature */ if signature>0 then do vernum=POS(goodACPIVER.i,line) verword=SUBSTR(line,18) if verword=1.42 then verversion=142 if verword=1.43 then verversion=143 if verword=1.44 then verversion=144 if verword=1.45 then verversion=145 if verword=1.46 then verversion=146 if verword=1.47 then verversion=147 if verword=1.48 then verversion=148 if verword=1.49 then verversion=149 if verword=1.50 then verversion=150 end end end if(verword=0) then do test0failed=1 say "Test 0 - eSchemes is not installed, can't find WPSCHEME.DLL" end say verword Test1: say "" say "Test 1 - Checking .ini" SysDlls = translate(SysIni(, 'SYS_DLLS', "LoadPerProcess")) Posi = Pos("ESTLRL11", SysDlls) if Posi<1 then do test1failed=1 say "Test 1 - PROBLEM FOUND: HINI_USER_PROFILE -> SYS_DLLS -> LoadPerProcess -> ESTLRL11 is absent" end SysDlls = translate(SysIni(, 'SYS_DLLS', "LoadOneTime")) Posi = Pos("INITSCH", SysDlls) if Posi<1 then do test1failed=1 say "Test 1 - PROBLEM FOUND: HINI_USER_PROFILE -> SYS_DLLS -> LoadOneTime -> INITSCH is absent" end /* Test 3 - Checking estlrl11.dll */ Test3: say "" say "Test 3 - Checking estlrl11.dll" filename=bootdrive'\ECS\DLL\estlrl11.dll' filestable.estlrl11size.142=0 filestable.estlrl11size.143=0 filestable.estlrl11size.144=0 filestable.estlrl11size.145=0 filestable.estlrl11size.146=55408 filestable.estlrl11size.147=53872 filestable.estlrl11size.148=54336 filestable.estlrl11size.149=54328 filestable.estlrl11size.150=54328 filestable.estlrl11sum.142=0 filestable.estlrl11sum.143=0 filestable.estlrl11sum.144=0 filestable.estlrl11sum.145=0 filestable.estlrl11sum.146=4268622 filestable.estlrl11sum.147=4163106 filestable.estlrl11sum.148=4232792 filestable.estlrl11sum.149=4231986 filestable.estlrl11sum.150=4235019 test3failed=0 sum=0 filesize=stream(filename,'c','query size') say filesize i=verversion say "Version:" verword "Table: "filestable.estlrl11size.i if filesize<> filestable.estlrl11size.i then do test3failed=1 say "Test 3 - PROBLEM FOUND: Wrong (or absent) estlrl11.dll (sub-test 1)" end else do /* никогда не пользуйся таким методом: */ do while chars(filename)>0 char=charin(filename) charcode = C2D(char) sum=sum+charcode end say sum if sum<> filestable.estlrl11sum.i then do test3failed=1 say "Test 3 - PROBLEM FOUND: Wrong estlrl11.dll (sub-test 2)" end end if test3failed=0 then do say "Test 3 - OK, estlrl11.dll seems correct" end TestExit: say "bye" exit /* Загрузочный диск */ lib_boot_drive: Procedure If \Rxfuncquery('SysBootDrive') Then do bootdrive = SysBootDrive() end else do call log 'No SysBootDrive function. Trying find bootdrive via PATH.' parse upper value VALUE( "PATH",, "OS2ENVIRONMENT" ) with "\OS2\SYSTEM" -2, bootdrive +2 if bootdrive = '' then do errmsg='Can not detect boot drive. Please update REXXUTIL.DLL.' signal error end end return bootdrive