blob: 7a6f68c507a42a70ae4c20c894480b9acaa6db49 [file] [log] [blame]
DISPLAY "Test invalid DSS - wrong length"
startDdm MGRLVLLS
endDdm
startDdm MGRLVLLS
endDdm
flush
checkerror SYNTAXRM 8 1 0
endTest
//
DISPLAY "Test invalid DSS - missing D0 "
writeScalar2Bytes MGRLVLLS 1
flush
checkerror SYNTAXRM 8 3 0
endTest
//
DISPLAY "Test invalid DSS - REPLY DSS"
createDssReply
endDss
flush
checkerror SYNTAXRM 8 4 0
endTest
//
DISPLAY "First codepoint not EXCSAT"
createDssRequest
startDdm MGRLVLLS
endDdm
endDss
flush
checkerror PRCCNVRM 8 6
endTest
//
DISPLAY "Test EXTNAM too long"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
checkError SYNTAXRM 8 9 EXTNAM
endTest
//
DISPLAY "Test non null SPVNAM"
createDssRequest
startDdm EXCSAT
writeScalarString SPVNAM"testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
checkError SYNTAXRM 8 11 SPVNAM
endTest
//
DISPLAY "Test too big SRVNAM"
createDssRequest
startDdm EXCSAT
writeScalarString SRVNAM"testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
checkError SYNTAXRM 8 9 SRVNAM
endTest
//
DISPLAY "Test too big SRVRLSLV"
createDssRequest
startDdm EXCSAT
writeScalarString SRVRLSLV"testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
checkError SYNTAXRM 8 9 SRVRLSLV
endTest
//
DISPLAY "Test too big SRVCLSNM"
createDssRequest
startDdm EXCSAT
writeScalarString SRVCLSNM"testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
checkError SYNTAXRM 8 9 SRVCLSNM
endTest
//
DISPLAY "Repeated manager levels with different values"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes AGENT 3
writeCodePoint4Bytes AGENT 7
endDdm
endDdm
endDss
flush
checkerror MGRLVLRM 8 AGENT 7
endTest
//
DISPLAY "Missing required SECMEC on ACCSEC"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkerror SYNTAXRM 8 14 SECMEC
endTest
//
DISPLAY "ACCSEC doesn't follow EXCSAT"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm MGRLVLLS
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkerror PRCCNVRM 8 17
endTest
//
DISPLAY "Test trying security mechanism we don't support"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 1 // DCE
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
readReplyDss
readLengthAndCodePoint ACCSECRD // ACCSECRD
readSecMecAndSECCHKCD // read secmec values and secchkcd
endTest
//
DISPLAY "Test trying too big on SECMEC"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
startDdm SECMEC
writeInt 2
endDdm
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkError SYNTAXRM 8 9 SECMEC
endTest
//
DISPLAY "Test trying too small on SECMEC"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
startDdm SECMEC
writeByte 2
endDdm
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkError SYNTAXRM 8 11 SECMEC
endTest
//
DISPLAY "Test non null SECMGRNM"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalarString SECMGRNM "Fred"
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkError SYNTAXRM 8 11 SECMGRNM
endTest
//
DISPLAY "Test specifying encrypted security mechanism without a security token"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 9 // Encrypted userid password
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
readReplyDss
readLengthAndCodePoint ACCSECRD // ACCSECRD
readSecMecAndSECCHKCD
endTest
//
DISPLAY "Test specifying unencrypted security mechanism with a security token"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // Encrypted userid password
writeScalarPaddedBytes RDBNAM test 18
startDdm SECTKN
writeBytes "0x01010101"
endDdm
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
readReplyDss
readLengthAndCodePoint ACCSECRD // ACCSECRD
readScalar2Bytes SECMEC 3 // SECMEC encrypted userid password
readScalar1Byte SECCHKCD 14 // missing security token
endTest
//
DISPLAY "Test SECCHK not following after ACCSEC"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 9 // userid password
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm MGRLVLLS
endDdm
endDss
flush
checkerror PRCCNVRM 8 17
endTest
//
DISPLAY "Test doing two tries for security mechanism"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 1 // DCE
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
readReplyDss
readLengthAndCodePoint ACCSECRD // ACCSECRD
readSecMecAndSECCHKCD
// ok send one we support
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint ACCSECRD // ACCSECRD
readScalar2Bytes SECMEC 3// SECMEC
endTest
//
DISPLAY "Test missing SECMEC on SECCHK"
include "excsat_accsecrd1.inc"
createDssRequest
startDdm SECCHK
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 SECMEC
endTest
//
DISPLAY "Test different SECMEC on SECCHK than on ACCSEC"
include "excsat_accsecrd1.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 4 // userid password
endDdm
endDss
flush
//not sure what the error should be here (using invalid value for now)
checkerror SYNTAXRM 8 20 SECMEC
endTest
//
DISPLAY "Test invalid length for RDBNAM"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM "thisNeedsToBeNoMoreThan1024CharactersLong" 1025
writeScalarString USRID test
writeScalarString PASSWORD test
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
checkError SYNTAXRM 8 11 RDBNAM
endTest
//
DISPLAY "Test different RDBNAM on SECCHK than on ACCSEC"
include "excsat_accsecrd2.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM notthesame 18
endDdm
endDss
flush
checkerror PRCCNVRM 8 18
endTest
//
DISPLAY "Test security token on SECCHK when not required"
include "excsat_accsecrd2.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM test 18
startDdm SECTKN
writeBytes "0x010101"
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint SECCHKRM
readScalar2Bytes SVRCOD 8
readScalar1Byte SECCHKCD 14
endTest
//
DISPLAY "Test missing USERID on SECCHK"
include "excsat_accsecrd2.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM test 18
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint SECCHKRM
readScalar2Bytes SVRCOD 8
readScalar1Byte SECCHKCD 18
endTest
//
DISPLAY "Test missing PASSWORD on SECCHK"
include "excsat_accsecrd2.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarPaddedBytes RDBNAM test 18
writeScalarString USRID test
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint SECCHKRM
readScalar2Bytes SVRCOD 8
readScalar1Byte SECCHKCD 16
endTest
//
DISPLAY "Test ACCRDB not following SECCHK"
include "excsat_secchk.inc"
createDssRequest
startDdm MGRLVLLS
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 MGRLVLLS
endTest
//
DISPLAY "Test missing RDBACCCL from ACCRDB"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 RDBACCCL
endTest
//
DISPLAY "Test missing CRRTKN"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 CRRTKN
endTest
//
DISPLAY "Test no RDBNAM on ACCSEC. Sent with SECCHK"
include "excsat_secchk_nordbonaccsec.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM
endTest
DISPLAY "Test missing RDBNAM on SECCHK"
include "excsat_accsecrd_nordb.inc"
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarString USRID test
writeScalarString PASSWORD test
endDdm
endDss
flush
checkError SYNTAXRM 8 14 RDBNAM
endTest
//
DISPLAY "Test too small value for RDBACCCL"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar1Byte RDBACCCL 1
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 11 RDBACCCL
endTest
//
DISPLAY "Test too large value for RDBACCCL"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
startDdm RDBACCCL
writeInt 1
writeInt 2
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 RDBACCCL
endTest
//
DISPLAY "Test invalid value for RDBACCCL"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SECMEC
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 20 RDBACCCL
endTest
//
DISPLAY "Test missing PRDID"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 PRDID
endTest
//
DISPLAY "Test missing TYPDEFNAM"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 TYPDEFNAM
endTest
//
DISPLAY "Test missing TYPDEFOVR"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLASC
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 14 TYPDEFOVR
endTest
//
DISPLAY "Test bad TYPDEFNAM"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM UNKNOWN
startDdm TYPDEFOVR
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 20 TYPDEFNAM
endTest
//
DISPLAY "Test codepoint not allowed in TYPDEFOVR"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLASC
startDdm TYPDEFOVR
writeScalar2Bytes MGRLVLLS 2
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 29 MGRLVLLS
endTest
//
DISPLAY "Test too small value for CCSIDSBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDSBC
writeByte 1
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 11 CCSIDSBC
endTest
//
DISPLAY "Test too large value for CCSIDSBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDSBC
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 CCSIDSBC
endTest
//
DISPLAY "Test too small value for CCSIDMBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDMBC
writeByte 1
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 11 CCSIDMBC
endTest
//
DISPLAY "Test too large value for CCSIDMBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDMBC
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 CCSIDMBC
endTest
//
DISPLAY "Test too small value for CCSIDDBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDDBC
writeByte 1
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 11 CCSIDDBC
endTest
//
DISPLAY "Test too large value for CCSIDDBC"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
startDdm CCSIDDBC
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 CCSIDDBC
endTest
//
DISPLAY "Test unsupported single byte code page"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 5
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError VALNSPRM 8
endTest
//
DISPLAY "Test unsupported mixed byte code page"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDMBC 5
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
readReplyDss
readLengthAndCodePoint ACCRDBRM
readScalar2Bytes SVRCOD 4 //check that we get a warning for unsupported CCSID
skipDdm // don't care about the rest of the Ddm
endTest
//
DISPLAY "Test unsupported double byte code page"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDDBC 5
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
readReplyDss
readLengthAndCodePoint ACCRDBRM
readScalar2Bytes SVRCOD 4 //check that we get a warning for unsupported CCSID
skipDdm // don't care about the rest of the Ddm
endTest
//
DISPLAY "Test sending second EXCSAT"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM
createDssRequest
startDdm EXCSAT
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint EXCSATRD // check we get an EXSATRD back
readLengthAndCodePoint EXTNAM
skipBytes
readLengthAndCodePoint MGRLVLLS
readNetworkShort SQLAM
readNetworkShort 7 // check we report SQLAM 7 and nothing more
readLengthAndCodePoint SRVCLSNM
skipBytes
readLengthAndCodePoint SRVNAM
skipBytes
readLengthAndCodePoint SRVRLSLV
skipBytes
endTest
//
DISPLAY "Test sending second EXCSAT with same manager but different level"
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 6
endDdm
endDdm
endDss
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // userid password
writeScalarString RDBNAM "wombat;create=true "
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarString RDBNAM "wombat;create=true "
writeScalarString USRID test
writeScalarString PASSWORD test
endDdm
endDss
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM
createDssRequest
startDdm EXCSAT
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
endDdm
endDdm
flush
checkError MGRLVLRM 8 SQLAM 7
endTest
//
DISPLAY "Test invalid CRRTKN"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM QTDSQLJVM
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 20 CRRTKN
endTest
//
DISPLAY "Test too big PRDID"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000toobig"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 PRDID
endTest
//
DISPLAY "Test too big TYPDEFNAM"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000toobig"
writeScalarString TYPDEFNAM "testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 PRDID
endTest
//
DISPLAY "Test invalid TYPDEFNAM"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000toobig"
writeScalarString TYPDEFNAM "THISISNOTRIGHT"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 PRDID
endTest
//
DISPLAY "Test too big RDBALWUPD"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
writeScalar2Bytes RDBALWUPD 28
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 RDBALWUPD
endTest
//
DISPLAY "Test invalid RDBALWUPD"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
writeScalar1Byte RDBALWUPD 1
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 20 RDBALWUPD
endTest
//
DISPLAY "Test valid RDBALWUPD"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
writeScalar1Byte RDBALWUPD -16
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
readReplyDss
readLengthAndCodePoint ACCRDBRM
endTest
//
DISPLAY "Test second valid RDBALWUPD"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
writeScalar1Byte RDBALWUPD -15
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
readReplyDss
readLengthAndCodePoint ACCRDBRM
endTest
//
DISPLAY "Test too big PRTDTA"
include "excsat_secchk.inc"
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
endDdm
writeScalarString PRDDTA "testttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
endDdm
endDss
flush
skipDdm // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 9 PRDDTA
endTest
//
DISPLAY "Test for bad length for RDBNAM in PKGNAMCSN"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writeShort 4
writeString "wombat"
writeShort 18
writeString "rdbcolid" 18
writeShort 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table abc (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 11 RDBNAM
endTest
//
//
DISPLAY "Test for bad RDBNAM in PKGNAMCSN"
// Requires newer client to test DERBY-1434 fix
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "nonexisting" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table abc (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError PRCCNVRM 8 18
endTest
//
DISPLAY "Test for bad length for PKGID in PKGNAMCSN"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writeShort 18
writePaddedString "wombat" 18
writeShort 8
writePaddedString "rdbcolid" 8
writeShort 5
writePaddedString "pkgid" 5
//DERBY-5565 Need to make sure PRDID starts with DNC (hex)
writeBytes "0x444E430101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table abc (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 11 PKGID
endTest
//
DISPLAY "Test for invalid codepoint on EXCSQLIMM"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm MGRLVLLS
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table abc (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 29 MGRLVLLS
endTest
//
DISPLAY "Test for invalid TypDefNam in EXCSQLIMM objects"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
writeScalarString TYPDEFNAM "unknown"
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table abc (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 20 TYPDEFNAM
endTest
//
DISPLAY "Test for a changed TYPDEF in EXCSQLIMM objects"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
writeScalarString TYPDEFNAM "QTDSQLJVM"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDMBC 1200 // UnicodeBigUnmarked aka "UTF-16BE"
endDdm
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table utf16be (a int)" "UTF-16BE" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss //RDBUPDRM
checkSQLCard 0 " "
skipDss //ENDUOWRM
skipDss //SQLCARD for commit
// use default encoding for drop statement
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "drop table utf16be" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss //SQLCARD for commit
endTest
//
DISPLAY "Test for missing CCSID in TYPDEFOVR in EXCSQLIMM objects"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
writeScalarString TYPDEFNAM "QTDSQLJVM"
startDdm TYPDEFOVR
endDdm
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table utf16be (a int)" "UTF-16BE" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 14 CCSIDSBC
endTest
//
DISPLAY "Test for invalid value for RDBCMTOK in EXCSQLIMM"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte RDBCMTOK 2
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table a (a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkError SYNTAXRM 8 20 RDBCMTOK
endTest
//
DISPLAY "Test for valid value for RDBCMTOK in EXCSQLIMM"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte RDBCMTOK "0xf1"
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table rdbcmtoktrue(a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss // SQLCARD for commit
// use default encoding for drop statement
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "drop table rdbcmtoktrue" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss //SQLCARD for commit
endTest
//
DISPLAY "Test for valid false value for RDBCMTOK in EXCSQLIMM"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte RDBCMTOK "0xf0"
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table rdbcmtokfalse(a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss // SQLCARD for commit
// use default encoding for drop statement
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "drop table rdbcmtokfalse" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss //SQLCARD for commit
endTest
//
DISPLAY "Test that we only send one RDBUPRM per transaction"
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "create table onerdbupdrm(a int)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
readReplyDss
readLengthAndCodePoint RDBUPDRM
readScalar2Bytes SVRCOD 0
skipDdm //RDBNAM
checkSQLCard 0 " "
// drop the table
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "drop table onerdbupdrm" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
checkSQLCard 0 " " //SQLCARD for drop
readReplyDss
readLengthAndCodePoint ENDUOWRM
readScalar2Bytes SVRCOD 4
readScalar1Byte UOWDSP 1
checkSQLCard 0 " " //SQLCARD for commit - no RDBUPDRM
moreData false
endTest
//
DISPLAY "Test for missing PKGNAMCSN on OPNQRY"
DISPLAY "Also test QRYCLSRLS and MONITOR codepoints which are ignored currently"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm QRYCLSRLS
writeBytes "0x00"
endDdm
startDdm MONITOR
writeBytes "00000000"
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 PKGNAMCSN
endTest
//
DISPLAY "Test for missing QRYBLKSZ on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 QRYBLKSZ
endTest
//
DISPLAY "Test for wrong PKGNAMCSN on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "wrongpkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 PKGNAMCSN
endTest
//
DISPLAY "Test for too small size for QRYBLKSZ on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeByte 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 11 QRYBLKSZ
endTest
//
DISPLAY "Test for too large size for QRYBLKSZ on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 1
writeInt 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 9 QRYBLKSZ
endTest
//
DISPLAY "Test for too small value for QRYBLKSZ on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYBLKSZ
endTest
//
DISPLAY "Test for too large value for QRYBLKSZ on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 10486784
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYBLKSZ
endTest
//
DISPLAY "Test invalid value for QRYBLKCTL on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
writeScalar2Bytes QRYBLKCTL 1
endDdm
endDss
flush
checkerror SYNTAXRM 8 29 1
endTest
//
DISPLAY "Test invalid codepoint for OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm PRPSQLSTT // this is wrong
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 29 PRPSQLSTT
endTest
//
DISPLAY "Test too small value for QRYROWSET codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYROWSET
writeByte 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 11 QRYROWSET
endTest
//
DISPLAY "Test too large value for QRYROWSET codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYROWSET
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYROWSET
endTest
//
DISPLAY "Test invalid value for QRYROWSET on OPNQRY"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYROWSET
writeInt 70000 // this is too big
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYROWSET
endTest
//
DISPLAY "Test QRYROWSET=0 on OPNQRY with scrollable cursor"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLATTR
writeByte 0 // null indicator
writeEncodedLDString "SCROLL INSENSITIVE WITH HOLD" "UTF-8" 4
writeByte 255 // null indicator
endDdm
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYROWSET
writeInt 0
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint OPNQRYRM
skipBytes
readReplyDss
readLengthAndCodepoint QRYDSC
skipBytes
// DERBY-1468: QRYDTA was incorrectly sent here.
// Send an invalid CNTQRY and check that the next
// response is an error instead of QRYDTA.
createDssRequest
startDdm CNTQRY
endDdm
endDss
flush
checkError SYNTAXRM 8 14 PKGNAMCSN
endTest
//
DISPLAY "Test to see OPNQRY returns PRCCNVRM if non-existent RDBNAM specified"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYROWSET
writeInt 1
endDdm
startDdm RDBNAM //this is optional
writeScalarString RDBNAM "non-existent-db "
endDdm
endDdm
endDss
flush
checkerror PRCCNVRM 8 18
endTest
//
DISPLAY "Test too large value for QRYRFRTBL codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYRFRTBL
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYRFRTBL
endTest
//
DISPLAY "Test invalid value for QRYRFRTBL codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYRFRTBL
writeByte 4
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYRFRTBL
endTest
//
DISPLAY "Test missing PKGNAMCSN on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 PKGNAMCSN
endTest
//
DISPLAY "Test missing QRYBLKSZ on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 QRYBLKSZ
endTest
//
DISPLAY "Test missing QRYINSID on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 QRYINSID
endTest
//
DISPLAY "Test too small value for QRYINSID codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 11 QRYINSID
endTest
//
DISPLAY "Test too large value for QRYINSID codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYINSID
endTest
//
DISPLAY "Test too small value for QRYROWNBR codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYROWNBR 0
endDdm
endDss
flush
checkError SYNTAXRM 8 11 QRYROWNBR
endTest
//
DISPLAY "Test too large value for QRYROWNBR codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYROWNBR
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYROWNBR
endTest
//
//
DISPLAY "Test invalid value for QRYROWSET on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
startDdm QRYROWSET
writeInt 70000 // too big
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYROWSET
endTest
//
DISPLAY "Test too large value for QRYSCRORN codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYSCRORN
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYSCRORN
endTest
//
DISPLAY "Test invalid value for QRYSCRORN on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
startDdm QRYSCRORN
writeByte 10 // invalid value
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYSCRORN
endTest
//
DISPLAY "Test invalid codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
startDdm OPNQRY
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 29 OPNQRY
endTest
//
DISPLAY "Test invalid object codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
createDssObject
startDdm PKGNAMCSN //invalid object
endDdm
endDss
flush
checkerror SYNTAXRM 8 29 PKGNAMCSN
endTest
//
DISPLAY "Test OUTOVR codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
createDssObject
startDdm OUTOVR
writeBytes "0x0676D0" // length 6, trip type NGDA, SQLDTAGRPLID
writeBytes "0x300001" // output type char, length 1
writeBytes "0x0971E0540001D00001" //SQLCADTA_RLO
writeBytes "0x0671F0E00000" //SQLCADTA_RLO
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint QRYDTA // just check that we get to QRYDTA for now
skipBytes
endTest
//
DISPLAY "Test too large value for QRYRELSCR codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYRELSCR
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYRELSCR
endTest
//
DISPLAY "Test invalid value for QRYRELSCR codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYRELSCR 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYRELSCR
endTest
//
DISPLAY "Test too large value for QRYROWSNS codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYROWSNS
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYROWSNS
endTest
//
DISPLAY "Test invalid value for QRYROWSNS codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYROWSNS 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYROWSNS
endTest
//
DISPLAY "Test too large value for QRYBLKRST codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKRST
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYBLKRST
endTest
//
DISPLAY "Test invalid value for QRYBLKRST codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYBLKRST 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYBLKRST
endTest
//
DISPLAY "Test too large value for QRYRTNDTA codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYRTNDTA
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 QRYRTNDTA
endTest
//
DISPLAY "Test invalid value for QRYRTNDTA codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYRTNDTA 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYRTNDTA
endTest
//
DISPLAY "Test invalid value for QRYRFRTBL codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYRFRTBL 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYRFRTBL
endTest
//
DISPLAY "Test too small value for NBRROW codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm NBRROW
writeByte 4
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 11 NBRROW
endTest
//
DISPLAY "Test too large value for NBRROW codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm NBRROW
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 NBRROW
endTest
//
DISPLAY "Test too small value for MAXBLKEXT codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm MAXBLKEXT
writeByte 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 11 MAXBLKEXT
endTest
//
DISPLAY "Test too large value for MAXBLKEXT codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm MAXBLKEXT
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 MAXBLKEXT
endTest
//
DISPLAY "Test too large value for RTNEXTDTA codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm RTNEXTDTA
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 RTNEXTDTA
endTest
//
DISPLAY "Test invalid value for RTNEXTDTA codepoint on CNTQRY"
include values1.inc
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte RTNEXTDTA 0
endDdm
endDss
flush
checkError SYNTAXRM 8 20 RTNEXTDTA
endTest
//
DISPLAY "Test missing QRYINSID from CLSQRY"
include values1.inc
createDssRequest
startDdm CLSQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 14 QRYINSID
endTest
//
DISPLAY "Test invalid PKGNAMCSN on CLSQRY"
include values1.inc
createDssRequest
startDdm CLSQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "wrongpkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 PKGNAMCSN
endTest
//
// Remove this test for now until JCC issue with JCC sending close twice
// resolved
DISPLAY "Test closing an already closed statement"
include values1.inc
createDssRequest
startDdm CLSQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
DISPLAY "Removing second close until JCC issue with sending double close is resolve"
// second close should fail
//createDssRequest
//startDdm CLSQRY
//startDdm PKGNAMCSN
//writePaddedString "wombat" 18
//writePaddedString "rdbcolid" 18
//writePaddedString "pkgid" 18
//writeBytes "0x0101010101010101"
//writeShort 1
//endDdm
//startDdm QRYINSID
//writeInt 0
//writeInt 1
//endDdm
//endDdm
//endDss
//flush
//skipDss // skip SQLCARD from first close
//readReplyDss
//readLengthAndCodepoint QRYNOPRM
endTest
//
// DERBY-1425: Perform a VALUES 1 statement without reading the final DSS
// with a QRYDTA. Stopping in the middle of a DSS chain used to get DDMReader
// into a bad state that reinitialization didn't get it out of, and it made
// the next test case hang.
DISPLAY "Execute VALUES 1 without reading final QRYDTA"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint OPNQRYRM
skipBytes
readReplyDss
readLengthAndCodepoint QRYDSC
skipBytes
// Don't read QRYDTA, instead just end test. This used to make the next
// test case hang because DDMReader got into a bad state.
//readReplyDss
//readLengthAndCodepoint QRYDTA
//skipBytes
endTest
//
DISPLAY "Test for too large value for OUTEXP in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm OUTEXP
writeShort 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 9 OUTEXP
endTest
//
DISPLAY "Test for invalid OUTEXP in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm OUTEXP
writeByte 10
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 OUTEXP
endTest
//
DISPLAY "Test for too small value for NBRROW in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm NBRROW
writeByte 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 11 NBRROW
endTest
//
DISPLAY "Test for too large value for NBRROW in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm NBRROW
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 9 NBRROW
endTest
//
DISPLAY "Test for invalid QRYBLKSZ in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm QRYBLKSZ
writeInt 10486784
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 20 QRYBLKSZ
endTest
//
DISPLAY "Test for too small value for MAXRSLCNT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm MAXRSLCNT
writeByte 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 11 MAXRSLCNT
endTest
//
DISPLAY "Test for too large value for MAXRSLCNT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm MAXRSLCNT
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 9 MAXRSLCNT
endTest
//
DISPLAY "Test for too small value for MAXBLKEXT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm MAXBLKEXT
writeByte 1
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 11 MAXBLKEXT
endTest
//
DISPLAY "Test for too large value for MAXBLKEXT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm MAXBLKEXT
writeInt 1
writeInt 2
writeInt 3
endDdm
endDdm
endDss
flush
checkerror SYNTAXRM 8 9 MAXBLKEXT
endTest
//
DISPLAY "Test for invalid value for RDBCMTOK in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte RDBCMTOK 2
endDdm
endDss
flush
checkError SYNTAXRM 8 20 RDBCMTOK
endTest
//
DISPLAY "Test for too large value for OUTOVROPT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm OUTOVROPT
writeInt 4 // valid values are 1 and 2
endDdm
endDss
flush
checkError SYNTAXRM 8 9 OUTOVROPT
endTest
//
DISPLAY "Test for invalid value for OUTOVROPT in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm OUTOVROPT
writeByte 4 // valid values are 1 and 2
endDdm
endDss
flush
checkError SYNTAXRM 8 20 OUTOVROPT
endTest
//
DISPLAY "Test for invalid value for QRYROWSET in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYROWSET
writeInt 40000 // maximum is 32767
endDdm
endDss
flush
checkError SYNTAXRM 8 20 QRYROWSET
endTest
//
DISPLAY "Test for invalid codepoint in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
startDdm MGRLVLLS
endDdm
endDss
flush
checkError SYNTAXRM 8 29 MGRLVLLS
endTest
//
DISPLAY "Test for missing PKGNAMCSN in EXCSQLSTT"
include connect.inc
createDssRequest
startDdm EXCSQLSTT
endDdm
endDss
flush
checkError SYNTAXRM 8 14 PKGNAMCSN
endTest
//
DISPLAY "Test for too large value for RTNSQLDA in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm RTNSQLDA
writeInt 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 RTNSQLDA
endTest
//
DISPLAY "Test for invalid value for RTNSQLDA in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm RTNSQLDA
writeByte 4 // invalid value
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 RTNSQLDA
endTest
//
DISPLAY "Test for too large value for TYPSQLDA in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm TYPSQLDA
writeInt 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 TYPSQLDA
endTest
//
DISPLAY "Test for invalid value for TYPSQLDA in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm TYPSQLDA
writeByte 10 // invalid value
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 TYPSQLDA
endTest
//
DISPLAY "Test for invalid codepoint in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm MGRLVLLS
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 29 MGRLVLLS
endTest
//
DISPLAY "Test for missing required SQLSTT in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm TYPDEFNAM
writeString "QTDSQLASC"
endDdm
endDss
flush
checkError SYNTAXRM 8 14 SQLSTT
endTest
//
DISPLAY "Test for invalid SQLATTR in PRPSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
startDdm SQLATTR
writeByte 0 // null indicator
writeEncodedLDString "not an attribute" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkError SYNTAXRM 8 20 SQLATTR
endTest
//
DISPLAY "Test for missing PKGNAMCSN in DSCSQLSTT"
include connect.inc
createDssRequest
startDdm DSCSQLSTT
endDdm
endDss
flush
checkerror SYNTAXRM 8 14 PKGNAMCSN
endTest
//
DISPLAY "Test for too large value for TYPSQLDA in DSCSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm DSCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm TYPSQLDA
writeInt 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 9 TYPSQLDA
endTest
//
DISPLAY "Test for invalid value for TYPSQLDA in DSCSQLSTT"
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
createDssRequest
startDdm DSCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm TYPSQLDA
writeByte 10 // invalid value
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 TYPSQLDA
endTest
//
DISPLAY "Test for invalid codepoint in DSCSQLSTT"
include connect.inc
createDssRequest
startDdm DSCSQLSTT
startDdm MGRLVLLS
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 29 MGRLVLLS
endTest
//
DISPLAY "Test for non-existant prepared statement in DSCSQLSTT"
include connect.inc
createDssRequest
startDdm DSCSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 20 PKGNAMCSN
endTest
//
DISPLAY "Test exception is thrown when specifying non-null indicator for both MBCS and SBCS in SQLSTT"
//This covers DRDAConnThread.agentError method
include connect.inc
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // non-null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 0 // non-null indicator
endDdm
endDss
flush
//Network server throws a DRDAProtocolException
//It does not send back anything
endTest
//
DISPLAY "Test for missing SQLSTT in EXCSQLSET - PKGNAMCT is ignored"
include connect.inc
createDssRequest
startDdm EXCSQLSET
startDdm PKGNAMCT
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalarString TYPDEFNAM QTDSQLASC
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
writeScalar2Bytes CCSIDMBC 1208
endDdm
endDdm
endDss
flush
checkError SYNTAXRM 8 29 TYPDEFNAM
endTest
//
include connect.inc
createDssRequest
startDdm EXCSQLIMM
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x444E430101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "drop schema test restrict" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss "0x40"
createDssRequest // send commit
startDdm RDBCMM
endDdm
endDss
flush
skipDss // RDBUPDRM
checkSQLCard 0 " "
skipDss // ENDUOWRM
skipDss //SQLCARD for commit
endTest
//
DISPLAY "Test explicitly closing implicitly closed cursor"
include connect.inc
// prepare statement
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
// execute query
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYCLSIMP 1
startDdm QRYBLKSZ
writeInt 32767
endDdm
writeScalar2Bytes QRYBLKCTL FRCFIXROW
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint OPNQRYRM
skipBytes
readReplyDss
readLengthAndCodepoint QRYDSC
skipBytes
// fetch data
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 32767
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint QRYDTA
skipBytes
// all rows are fetched, cursor is implicitly closed on server
// close result set explicitly
createDssRequest
startDdm CLSQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
flush
// DRDA says QRYNOPRM is to be expected here
//readReplyDss
//readLengthAndCodepoint QRYNOPRM
// but JCC expects SQLCARD and we're nice guys...
checkSQLCard 0 " "
endTest
//
DISPLAY "Test with 65535 query block size QRYBLKSZ - DERBY-959"
include values64kblksz.inc
endTest
//
DISPLAY "Test 2 with 65535 query block size QRYBLKSZ - DERBY-959"
include connect.inc
// prepare statement
createDssRequest
startDdm PRPSQLSTT
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
endDdm
endDss
createDssObject
startDdm SQLSTT
writeByte 0 // null indicator
writeEncodedLDString "values(1)" "UTF-8" 4
writeByte 255 // null indicator
endDdm
endDss
flush
checkSQLCard 0 " "
// execute query
createDssRequest
startDdm OPNQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
writeScalar1Byte QRYCLSIMP 1
startDdm QRYBLKSZ
writeInt 65535
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint OPNQRYRM
skipBytes
readReplyDss
readLengthAndCodepoint QRYDSC
skipBytes
// fetch data
createDssRequest
startDdm CNTQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYBLKSZ
writeInt 65535
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
flush
readReplyDss
readLengthAndCodepoint QRYDTA
skipBytes
// all rows are fetched, cursor is implicitly closed on server
// close result set explicitly
createDssRequest
startDdm CLSQRY
startDdm PKGNAMCSN
writePaddedString "wombat" 18
writePaddedString "rdbcolid" 18
writePaddedString "pkgid" 18
writeBytes "0x0101010101010101"
writeShort 1
endDdm
startDdm QRYINSID
writeInt 0
writeInt 1
endDdm
endDdm
endDss
flush
// DRDA says QRYNOPRM is to be expected here
//readReplyDss
//readLengthAndCodepoint QRYNOPRM
// but JCC expects SQLCARD and we're nice guys...
checkSQLCard 0 " "
endTest
// --
DISPLAY "Test UNICODEMGR at level 1208 while sending UTF8 characters in RDBNAM"
// this include file has all the protocol needed to make a connection
// to the wombat database at sqlam 7
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
writeCodePoint4Bytes UNICODEMGR 1208
endDdm
endDdm
endDss
flush
switchToUtf8CcsidManager // tell ProtocolTest.java to switch DDMReader/Writer to UTF8
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 4 // userid password
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 4 // userid password
// %UTF8TestString% will be replaced on runtime by ProtocolTest.java/getString()
writeScalarString RDBNAM "%UTF8TestString%;create=true"
writeScalarString USRID test
endDdm
endDss
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
writeScalar2Bytes CCSIDMBC 1208
endDdm
endDdm
endDss
flush
skipDss // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM so just skip
deleteDatabase "%UTF8TestString%" // clean up the UTF8 database
endTest
// --
DISPLAY "Test UNICODEMGR at level 1208 while sending UTF8 characters in USRID and PASSWORD"
// this include file has all the protocol needed to make a connection
// to the wombat database at sqlam 7
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
writeCodePoint4Bytes UNICODEMGR 1208
endDdm
endDdm
endDss
flush
switchToUtf8CcsidManager // tell ProtocolTest.java to switch DDMReader/Writer to UTF8
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // userid password
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
// %UTF8TestString% will be replaced on runtime by ProtocolTest.java/getString()
writeScalarString RDBNAM "%UTF8TestString%;create=true"
writeScalarString USRID "%UTF8TestString%"
writeScalarString PASSWORD "%UTF8TestString%"
endDdm
endDss
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
writeScalar2Bytes CCSIDMBC 1208
endDdm
endDdm
endDss
flush
skipDss // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM so just skip
deleteDatabase "%UTF8TestString%" // clean up the UTF8 database
endTest
// --
DISPLAY "Test setting RDBNAM at ACCSEC **and** at SECCHK"
// this include file has all the protocol needed to make a connection
// to the wombat database at sqlam 7
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
endDdm
endDdm
endDss
flush
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 4 // userid password
// the string below will be replaced on runtime by ProtocolTest.java/getString()
writeScalarString RDBNAM "newname;create=true"
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 4 // userid password
writeScalarString RDBNAM "newname;create=true"
writeScalarString USRID test
endDdm
endDss
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "DNC01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
writeScalar2Bytes CCSIDMBC 1208
endDdm
endDdm
endDss
flush
skipDss // don't care about SECCHKRM so just skip
skipDss // don't care about ACCRDBRM so just skip
deleteDatabase "newname" // delete database created outside ProtocolTest.java
endTest
// Try connect with SQL PRDID. Should reject. DERBY-5565
createDssRequest
startDdm EXCSAT
writeScalarString EXTNAM "test"
startDdm MGRLVLLS
writeCodePoint4Bytes SQLAM 7
endDdm
endDdm
endDss
flush
createDssRequest
startDdm ACCSEC
writeScalar2Bytes SECMEC 3 // userid password
writeScalarString RDBNAM "wombat "
endDdm
endDss
flush
skipDss // don't care about the EXCSATRM so just skip
skipDss // don't care about the ACCSECRD so just skip
createDssRequest
startDdm SECCHK
writeScalar2Bytes SECMEC 3 // userid password
writeScalarString RDBNAM "wombat "
writeScalarString USRID test
writeScalarString PASSWORD test
endDdm
endDss
createDssRequest
startDdm ACCRDB
writeScalar2Bytes RDBACCCL SQLAM
writeScalarBytes CRRTKN "0xd5c6f0f0f0f0f0f14bc7c3c2f600ec774aa60e"
writeScalarString PRDID "SQL01000"
writeScalarString TYPDEFNAM "QTDSQLASC"
startDdm TYPDEFOVR
writeScalar2Bytes CCSIDSBC 1208
writeScalar2Bytes CCSIDMBC 1208
endDdm
endDdm
endDss
flush
skipDss // don't care about SECCHKRM so just skip
checkError SYNTAXRM 8 20 PRDID
endTest
//
//
//
completeTest
//
//
//
//
completeTest
//