-
Notifications
You must be signed in to change notification settings - Fork 67
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
working on the basic printing badge, it's not done yet, but it's maki…
…ng good progress; added a function to convert TWEI values numeric values to readable strings, same as has been done previously for capabilities...
- Loading branch information
Showing
10 changed files
with
1,771 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
149 changes: 149 additions & 0 deletions
149
.../twaincscert/source/data/certification/110 - Basic Printing Badge/Basic Printing Badge.tc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Printing Badge | ||
; These tests establish the minimum requirements for a TWAIN driver to claim that is has printing | ||
; support. To pass the driver must support the following capabilites: | ||
; CAP_PRINTERENABLED | ||
; CAP_PRINTER | ||
; CAP_PRINTERMODE | ||
; CAP_PRINTERSTRING | ||
; CAP_PRINTERINDEX | ||
; CAP_PRINTERSUFFIX | ||
; CAP_PRINTERVERTICALOFFSET | ||
; | ||
; And the following extended image info items: | ||
; TWEI_PRINTERTEXT | ||
; TWEI_PRINTER | ||
; | ||
; Arguments | ||
; arg:1 - TW_IDENTITY.ProductName of scanner to test | ||
; | ||
; Globals | ||
; (none) | ||
; | ||
; Locals | ||
; certifyresult - track if we fail | ||
; | ||
; Returns | ||
; pass or fail | ||
; | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Initialize... | ||
; | ||
setlocal certifyresult 'pass' ; assume we'll pass | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Reset to a known state... | ||
; | ||
setlocal name 'MSG_RESETALL' | ||
dsmentry src ds dg_control dat_capability msg_resetall '0,0,0,0' | ||
if '${sts:}' != 'SUCCESS' goto MAIN.MSG_RESETALL.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
goto MAIN.MSG_RESETALL.DONE | ||
; | ||
:MAIN.MSG_RESETALL.FAIL | ||
echo.passfail '${get:name}' 'skip - ${sts:} ${ret:}' | ||
setlocal certifyresult 'fail' | ||
goto MAIN.DONE | ||
:MAIN.MSG_RESETALL.DONE | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; CAP_PRINTERENABLED must be supported, and must offer both TRUE | ||
; and FALSE, and must currently be FALSE, otherwise skip it all | ||
; | ||
setlocal name 'CAP_PRINTERENBLED is supported' | ||
dsmentry src ds dg_control dat_capability msg_get 'CAP_PRINTERENABLED,0,0,0' | ||
if '${sts:}' != 'SUCCESS' goto MAIN.CAP_PRINTERENABLEDSUPPORTED.SKIP | ||
if '${ret:},' !~contains ',TRUE,' goto MAIN.CAP_PRINTERENABLEDSUPPORTED.SKIP | ||
if '${ret:},' !~contains ',FALSE,' goto MAIN.CAP_PRINTERENABLEDSUPPORTED.SKIP | ||
echo.passfail '${get:name}' 'pass' | ||
goto MAIN.CAP_PRINTERENABLEDSUPPORTED.DONE | ||
; | ||
:MAIN.CAP_PRINTERENABLEDSUPPORTED.SKIP | ||
echo.passfail '${get:name}' 'skip - ${sts:} ${ret:}' | ||
setlocal certifyresult 'skip' | ||
goto MAIN.DONE | ||
:MAIN.CAP_PRINTERENABLEDSUPPORTED.DONE | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; CAP_SUPPORTEDCAPS: check that all required capabilities are reported | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS MSG_GET' | ||
dsmentry src ds dg_control dat_capability msg_get 'CAP_SUPPORTEDCAPS,0,0,0' | ||
if '${sts:}' != 'SUCCESS' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERENABLED found' | ||
if '${ret:},' !~contains ',CAP_PRINTERENABLED,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTER found' | ||
if '${ret:},' !~contains ',CAP_PRINTER,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERMODE found' | ||
if '${ret:},' !~contains ',CAP_PRINTERMODE,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERSTRING found' | ||
if '${ret:},' !~contains ',CAP_PRINTERSTRING,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERINDEX found' | ||
if '${ret:},' !~contains ',CAP_PRINTERINDEX,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERSUFFIX found' | ||
if '${ret:},' !~contains ',CAP_PRINTERSUFFIX,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'CAP_SUPPORTEDCAPS CAP_PRINTERVERTICALOFFSET found' | ||
if '${ret:},' !~contains ',CAP_PRINTERVERTICALOFFSET,' goto MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
goto MAIN.CAP_SUPPORTEDCAPS.DONE | ||
; | ||
:MAIN.CAP_SUPPORTEDCAPS.FAIL | ||
echo.passfail '${get:name}' 'fail - ${sts:} ${ret:}' | ||
setlocal certifyresult 'fail' | ||
goto MAIN.DONE | ||
:MAIN.CAP_SUPPORTEDCAPS.DONE | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; ICAP_SUPPORTEDEXTIMAGEINFO: check that all metadata is reported | ||
; | ||
setlocal name 'ICAP_SUPPORTEDEXTIMAGEINFO MSG_GET' | ||
dsmentry src ds dg_control dat_capability msg_get 'ICAP_SUPPORTEDEXTIMAGEINFO,0,0,0' | ||
if '${sts:}' != 'SUCCESS' goto MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'ICAP_SUPPORTEDEXTIMAGEINFO TWEI_PRINTERTEXT found' | ||
if '${ret:},' !~contains ',TWEI_PRINTERTEXT,' goto MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
; | ||
setlocal name 'ICAP_SUPPORTEDEXTIMAGEINFO TWEI_PRINTER found' | ||
if '${ret:},' !~contains ',TWEI_PRINTER,' goto MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.FAIL | ||
echo.passfail '${get:name}' 'pass' | ||
goto MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.DONE | ||
; | ||
:MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.FAIL | ||
echo.passfail '${get:name}' 'fail - ${sts:} ${ret:}' | ||
setlocal certifyresult 'fail' | ||
:MAIN.ICAP_SUPPORTEDEXTIMAGEINFO.DONE | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; All done... | ||
; | ||
:MAIN.DONE | ||
return '${get:certifyresult}' |
91 changes: 91 additions & 0 deletions
91
.../source/twaincscert/source/data/certification/110 - Basic Printing Badge/Certification.tc
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Basic Printing Badge | ||
; Check if Basic Printing is supported by the driver. This is a badge, failure does invalidate | ||
; scanner certification. Passage adds Basic Printing support to the cert. | ||
; | ||
; Printing is complex. This badge checks that a driver allows the basic ability to print something | ||
; on a document. It does not require all the possible printing features described by TWAIN. | ||
; | ||
; Arguments | ||
; arg:1 - TW_IDENTITY.ProductName of scanner to test | ||
; arg:2 - global to set on fail | ||
; | ||
; Globals | ||
; g_localcertifyresult - global to report to caller on fail | ||
; | ||
; Locals | ||
; twidentity.productname - product name of scanner to test | ||
; | ||
; Returns | ||
; (none) | ||
; | ||
; History | ||
; v1.0 17-May-2021 - first version | ||
; | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Initialize stuff, load tables if not already done for us... | ||
; | ||
echo.titlesuite 'Basic Printing Badge v1.0 13-Jul-2021' | ||
echo.yellow '*************************************************************************************' | ||
echo.yellow '*** This test is for the Basic Printing Badge. Failing means the driver does not ***' | ||
echo.yellow '*** support this functionality. It does not prevent it from being certified. ***' | ||
echo.yellow '*************************************************************************************' | ||
setlocal twidentity.productname '${arg:1}' | ||
setglobal g_localcertifyresult 'pass' ; assume success | ||
if '${get:TW_ARRAY.ItemType}' != '' goto MAIN.LOADTABLES.SKIP | ||
run '${folder:certification}/LoadTables' | ||
:MAIN.LOADTABLES.SKIP | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Run the tests... | ||
; | ||
call CERTIFY '${folder:certification}/Opends' '${get:twidentity.productname}' g_localcertifyresult embedded | ||
if '${get:g_localcertifyresult}' == 'fail' goto MAIN.CLOSEDS | ||
call CERTIFY 'Basic Printing Badge' '${get:twidentity.productname}' g_localcertifyresult | ||
call CERTIFY 'DAT_IMAGENATIVEXFER' '${get:twidentity.productname}' '${get:certifyresult}' 'FALSE' '${folder:parent}' | ||
call CERTIFY 'DAT_IMAGEMEMXFER' '${get:twidentity.productname}' '${get:certifyresult}' 'FALSE' '${folder:parent}' | ||
call CERTIFY 'DAT_IMAGEFILEXFER' '${get:twidentity.productname}' '${get:certifyresult}' 'FALSE' '${folder:parent}' | ||
call CERTIFY 'DAT_IMAGEMEMFILEXFER' '${get:twidentity.productname}' '${get:certifyresult}' 'FALSE' '${folder:parent}' | ||
:MAIN.CLOSEDS | ||
call CERTIFY '${folder:certification}/Closeds' '${get:twidentity.productname}' g_localcertifyresult embedded | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Summary and cleanup... | ||
; | ||
; Did we pass? | ||
if '${get:g_localcertifyresult}' != 'pass' goto MAIN.ERROR | ||
echo.passfail 'SUMMARY' 'pass' | ||
return 'pass' | ||
; | ||
; Ruh-roh... | ||
:MAIN.ERROR | ||
echo.passfail 'SUMMARY' 'fail' | ||
setglobal '${arg:2}' 'fail' | ||
return 'fail' | ||
|
||
|
||
|
||
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | ||
; Function: Certify | ||
; arg:1 - script to run | ||
; arg:2 - TW_IDENTITY.ProductName of scanner to test | ||
; arg:3 - global value to update on fail | ||
; arg:4 - embeded flag for open/close | ||
; returns: (none) | ||
; | ||
:CERTIFY | ||
; | ||
run '${arg:1}' '${arg:2}' '${arg:4}' | ||
if '${ret:}' != 'pass' goto CERTIFY.FAIL | ||
return 'pass' | ||
; | ||
:CERTIFY.FAIL | ||
setglobal '${arg:3}' 'fail' | ||
return 'fail' |
Oops, something went wrong.