ddtl.exe MBM Command I. The DDTL MBM Diagnostic Command The ddtl MBM command is a diagnostic exerciser for collections and structures. It is one component of the MBM Test Suite which consists of: . The MBM Test DB and its data; . The MBM attach DB and its data; . DDTL Procedures; . The DDTL MBM Command; The full MBM test consists of almost 20,000 different tests. The term MBM is the acronym for Memory Based Bitmap. The Memory Based Bitmap is the third of three collection types. It was at this point of the development that this test suite was begun; hence the name. The MBM Command is itself a command processor with 46 sub-commands. The MBM sub-commands are divided into three categories: . Category I: . test all collection types singly and in combination; . test all boolean operations; . test all structure types; . Category II: . iterators for Category I commands; . Category III: . test MATCH for all collection types and structure types; II. DDTL MBM Database Definition The MBM Database Schema contains ten tables; eight of which contain specially designed data patterns for construting queries with predictable results. The ninth table, which is named TT contains a list of MBM sub-command parameters for the Category II iterator sub commands [see below]. The schema for the MBM TT Table [from the file MBM.dbd] is: DG TT 100 records Operand1 X(8); Operand2 X(8); Operand3 X(8); Operator X(12); Result X(12); Result2 X(12); Result3 X(12); Result4 X(12); Result5 X(12); The data for the MBM TT Table is located in the document MbmData.htm. The tenth table, which is named TR, contains a historical record for each MBM command that is performed. The MBM Application Interface contains definitions for additional collections and collection types. The additional collections are: {AM, BM, CM, DM, EM} - MBM Only, no MEMCOLL {AW, BW, CW, DW, EW} - Raw (File based bitmap), no MEMCOLL {AWM, BWM, CWM, DWM, EWM} - Raw Only, no MEMCOLL [Note that "Raw Only, no MEMCOLL" is the collection type for the ^R system collection.] The MBM Application Interface also contains two Record Descriptions [RDs]. III. DDTL MBM Command Sub-command Definitions In the following MBM Command definitions, each skeleton is followed by its internal explosion. <cx1>, <cx-2>, <cx-3> are collections; <opcode> is {AND, OR, XOR, EXCEPT, NOTAND} <result> is the count of records in the correct result; wrt Category II commands, Table TT is part of the MBM DB schema. It contains predefined sets of Category I parameters that are executed by the Category II commands. If the count of the actual result is not equal <result>, an error message is printed. If either the ALIAS modifier or the ATTACH modifier is specified, an alternate table name is used in the explosion: . No modifier: T1 . ALIAS only: T1S . ATTACH only: T1A . ALIAS and ATTACH: T1AS A. Category I MBM Commands 1) FAND [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3 EQ 100001 FIND <cx-2> T1 where F5 EQ 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 2) FANDC [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3 EQ 100001 FIND <cx-2> T1 where F5 EQ 100004 FIND/C2000 <cx-3> T1 where <cx-1> <opcode> <cx-2> 3) RTLAND [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3rtl EQ 100001 FIND <cx-2> T1 where F5rtl EQ 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 4) RTBAND [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3rtb EQ 100001 FIND <cx-2> T1 where F5rtb EQ 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 5) FANDNE [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3 NE 100001 FIND <cx-2> T1 where F5 NE 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 6) RTLANDNE FIND <cx-1> T1 where F3rtl NE 100001 FIND <cx-2> T1 where F5rtl NE 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 7) RTBANDNE [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3rtb NE 100001 FIND <cx-2> T1 where F5rtb NE 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 8) FANDNE [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3 NE 100001 FIND <cx-2> T1 where F5 NE 100004 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 9) INDEXBMAND [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where #F3-100001.cx FIND <cx-2> T1 where #F5-100004.cx FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 10) INDEXLSTAND [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where #F40-100001.cx FIND <cx-2> T1 where #F50-100004.cx FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 11) FAND3 [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3 EQ 100001,100002 FIND <cx-2> T1 where F5 EQ 100003,100004,100005 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 12) RTLAND3 [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3rtl EQ 100001,100002 FIND <cx-2> T1 where F5rtl EQ 100003,100004,100005 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 13) RTBAND3 [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> FIND <cx-1> T1 where F3rtb EQ 100001,100002 FIND <cx-2> T1 where F5rtb EQ 100003,100004,100005 FIND <cx-3> T1 where <cx-1> <opcode> <cx-2> 14) FANDN [ALIAS] [ATTACH] <cx-1> <opcode> <result> FIND/N <cx-1> T1 where F3 EQ 100001 <opcode> F5 EQ 100004 15) FANDGLOBAL [ALIAS] [ATTACH] <cx-1> <opcode> <result> FIND/N <cx-1> where F3 EQ 100001 <opcode> F5 EQ 100004 16) RTLANDGLOBAL <cx-1> <opcode> <result> FIND/N <cx-1> where F3rtl EQ 100001 <opcode> F5rtl EQ 100004 17) RTBANDGLOBAL <cx-1> <opcode> <result> FIND/N <cx-1> where F3rtb EQ 100001 <opcode> F5rtb EQ 100004 18) FANDSTART [ALIAS] [ATTACH] <cx-1> <cx-2> <cx-3> <opcode> <result> TALLY/X <cx-1> T1 PICK/X <cx-3> T1 100 10000 FIND <cx-2> T1 <cx-2> <opcode> <cx-3> TALLY/X <cx2> T1 B. Category II MBM Commands 19) FLOOP [ALIAS] [ATTACH] [<TT-StartRec> [TT-EndRec>]] Perform FAND for each item in TT (Test Table) 20) FLOOPC [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform FANDC for each item in TT (Test Table) 21) RTLLOOP [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTLAND for each item in TT (Test Table) 22) RTBLOOP [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTBAND for each item in TT (Test Table) 23) FLOOPNE [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform FANDNE for each item in TT (Test Table) 24) RTLLOOPNE [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTLANDNE for each item in TT (Test Table) 25) RTBLOOPNE [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTBANDNE for each item in TT (Test Table) 26) INDEXBMLOOP [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform INDEXBMAND for each item in TT (Test Table) 27) INDEXLSTLOOP [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform INDEXLSTAND for each item in TT (Test Table) 28) FLOOP3 [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform FAND3 for each item in TT (Test Table) 29) RTLLOOP3 [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTLAND3 for each item in TT (Test Table) 30) RTBLOOP3 [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTBAND3 for each item in TT (Test Table) 31) FLOOPN [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform FANDN for each item in TT (Test Table) 32) FLOOPGLOBAL [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform FANDGLOBAL for each item in TT (Test Table) 33) RTLLOOPGLOBAL [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTLANDGLOBAL for each item in TT (Test Table) 34) RTBLOOPGLOBAL [ALIAS] [ATTACH] [<TT-StartRec> [<TT-EndRec>]] Perform RTBANDGLOBAL for each item in TT (Test Table) C. Category III MBM Commands 35) MTEST1 <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3 with T1 TALLY/X <cx> T1 36) MTEST1 ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3 with T1S TALLY/X <cx> T1S 37) MTEST2 <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 MATCH/<Option> <cx> T1 thru F3 with T1 TALLY/X <cx> T1 38) MTEST2 ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 MATCH/<Option> <cx> T1S thru F3 with T1 TALLY/X <cx> T1 39) MTEST3 <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3 with V1 on G3 TALLY/X <cx> V1 40) MTEST3 ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1S MATCH/<Option> <cx> T1 thru F3 with V1S on G3 TALLY/X <cx> V1S 41) MTEST4 <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3 with V1 on G3 TALLY/X <cx> V1 42) MTEST4 ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1S thru F3 with V1 on G3 TALLY/X <cx> V1 43) MTEST1RTL <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3rtl with T1 TALLY/X <cx> T1 44) MTEST1RTL ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3rtl with T1S TALLY/X <cx> T1S 45) MTEST2RTL <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 MATCH/<Option> <cx> T1 thru F3rtl with T1 TALLY/X <cx> T1 46) MTEST2RTL ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 MATCH/<Option> <cx> T1S thru F3rtl with T1 TALLY/X <cx> T1 47) MTEST3RTL <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3rtl with V1 on G3rtl TALLY/X <cx> V1 48) MTEST3RTL ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1S MATCH/<Option> <cx> T1 thru F3rtl with V1S on G3 TALLY/X <cx> V1S 49) MTEST4RTL <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3rtl with V1 on G3rtl TALLY/X <cx> V1 50) MTEST4RTL ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1S thru F3rtl with V1 on G3 TALLY/X <cx> V1 51) MTEST1RTB <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3rtb with T1 TALLY/X <cx> T1 52) MTEST1RTB ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3rtb with T1S TALLY/X <cx> T1S 53) MTEST2RTB <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 MATCH/<Option> <cx> T1 thru F3rtb with T1 TALLY/X <cx> T1 54) MTEST2RTB ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 MATCH/<Option> <cx> T1S thru F3rtb with T1 TALLY/X <cx> T1 55) MTEST3RTB <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3rtb with V1 on G3rtb TALLY/X <cx> V1 56) MTEST3RTB ALIAS <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 6 CLEAR <cx> V1S MATCH/<Option> <cx> T1 thru F3rtb with V1S on G3 TALLY/X <cx> V1S 57) MTEST4RTB <cx> [<Option>] PICK <cx> T1 3 PICK/R <cx> T1 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1 thru F3rtb with V1 on G3rtb TALLY/X <cx> V1 58) MTEST4RTB ALIAS <cx> [<Option>] PICK <cx> T1S 3 PICK/R <cx> T1S 5 CLEAR <cx> V1 MATCH/<Option> <cx> T1S thru F3rtb with V1 on G3 TALLY/X <cx> V1 59) MTEST1D <cx> <Option> PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3 F4 with T1 TALLY/X <cx> T1 60) MTEST1D ALIAS <cx> <Option> PICK <cx> T1 3 PICK/R <cx> T1 6 MATCH/<Option> <cx> T1 thru F3 F4 with T1S TALLY/X <cx> T1S IV. DDTL MBM Top Level Procedures . All1.u - perform [Multiple iterations] FLOOP FLOOPC FLOOPNE RTLLOOP RTLLOOPNE RTBLOOP RTBLOOPNE INDEXBMLOOP INDEXLSTLOOP . All3.u - perform [Multiple iterations] FLOOP3 RTLLOOP3 RTBLOOP3 . AllA.u - same as All1.u plus ATTACH modifier [Multiple iterations] . AllA1.u - same as All1.u plus ALIAS modifier [Multiple iterations] . AllAS.u - same as All1.u plus ALIAS and ATTACH modifiers [Multiple iterations] . AllAS1.u - same as All1.u plus ALIAS and ATTACH modifiers [Single iterations] . AllGlobal.u - perform [Multiple iterations] FLOOPGLOBAL RTLLOOPGLOBAL RTBLOOPGLOBAL . AllM.u - perform [Multiple iterations] Mtest1 cx {%1} - for cx = {A, AM, AW, AWM} Mtest1rtl cx {%1} - for {A, AM, AW, AMW} Mtest1rtb cx {%1} - for {A, AM, AW, AMW} Mtest2 cx {%1} - for {A, AM, AW, AMW} Mtest2rtl cx {%1} - for {A, AM, AW, AMW} Mtest2rtb cx {%1} - for {A, AM, AW, AMW} Mtest3 cx {%1} - for {A, AM, AW, AMW} Mtest3rtl cx {%1} - for {A, AM, AW, AMW} Mtest3rtb cx {%1} - for {A, AM, AW, AMW} Mtest4 cx {%1} - for {A, AM, AW, AMW} Mtest4Rtl cx {%1} - for {A, AM, AW, AMW} Mtest4Rtb cx {%1} - for {A, AM, AW, AMW} Mtest1D cx {%1} - for {A, AM, AW, AMW} V. Additional tests needed as of TB API 8.0.123 . Unary NOT on FIND; . MatchEx . Cross Data Types on MATCH & MatchEx
Copyright © 2019 , WhamTech, Inc. All rights reserved. This
document is provided for information purposes only and the contents hereof are
subject to change without notice. Names may be
trademarks of their respective owners.