github.com/qiwihui/DBShield@v0.0.0-20171107092910-fb8553bed8ef/dbshield/dbms/mssql_test.go (about) 1 package dbms_test 2 3 import ( 4 "bytes" 5 "errors" 6 "io" 7 "testing" 8 9 "github.com/nim4/DBShield/dbshield/dbms" 10 "github.com/nim4/mock" 11 ) 12 13 var sampleMSSQL = [...][]byte{ 14 { 15 0x12, 0x01, 0x00, 0x29, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x15, 0x00, 16 0x06, 0x01, 0x00, 0x1b, 0x00, 0x01, 0x02, 0x00, 0x1c, 0x00, 0x01, 0x03, 17 0x00, 0x1d, 0x00, 0x04, 0xff, 0x08, 0x00, 0x01, 0x55, 0x00, 0x00, 0x00, 18 0x00, 0x33, 0x00, 0x00, 0x00, 19 }, //Client 20 { 21 0x04, 0x01, 0x00, 0x25, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x15, 0x00, 22 0x06, 0x01, 0x00, 0x1b, 0x00, 0x01, 0x02, 0x00, 0x1c, 0x00, 0x01, 0x03, 23 0x00, 0x1d, 0x00, 0x00, 0xff, 0x0e, 0x00, 0x01, 0x95, 0x00, 0x00, 0x00, 24 0x00, 25 }, 26 { 27 0x12, 0x01, 0x00, 0x8a, 0x00, 0x00, 0x00, 0x00, 0x16, 0x03, 0x01, 0x00, 28 0x7d, 0x01, 0x00, 0x00, 0x79, 0x03, 0x01, 0x58, 0xe0, 0x1c, 0x92, 0x11, 29 0xd8, 0x8b, 0x54, 0x35, 0x61, 0x51, 0x35, 0x9c, 0xd9, 0x67, 0x01, 0xd3, 30 0xae, 0xfd, 0x61, 0xfb, 0x8e, 0x46, 0xf1, 0x4a, 0x05, 0x34, 0x91, 0xf0, 31 0xde, 0xa8, 0x25, 0x00, 0x00, 0x20, 0xc0, 0x0a, 0xc0, 0x09, 0xc0, 0x08, 32 0xc0, 0x14, 0xc0, 0x13, 0xc0, 0x12, 0x00, 0x35, 0x00, 0x84, 0x00, 0x2f, 33 0x00, 0x41, 0x00, 0x0a, 0x00, 0x39, 0x00, 0x88, 0x00, 0x33, 0x00, 0x45, 34 0x00, 0x16, 0x01, 0x00, 0x00, 0x30, 0x00, 0x17, 0x00, 0x00, 0x00, 0x16, 35 0x00, 0x00, 0x00, 0x05, 0x00, 0x05, 0x01, 0x00, 0x00, 0x00, 0x00, 0xff, 36 0x01, 0x00, 0x01, 0x00, 0x00, 0x23, 0x00, 0x00, 0x00, 0x0a, 0x00, 0x0c, 37 0x00, 0x0a, 0x00, 0x17, 0x00, 0x18, 0x00, 0x19, 0x00, 0x15, 0x00, 0x13, 38 0x00, 0x0b, 0x00, 0x02, 0x01, 0x00, 39 }, 40 { 41 0x12, 0x01, 0x04, 0xbd, 0x00, 0x00, 0x00, 0x00, 0x16, 0x03, 0x01, 0x04, 42 0xb0, 0x02, 0x00, 0x00, 0x51, 0x03, 0x01, 0x58, 0xe0, 0x1c, 0xbb, 0x62, 43 0x3c, 0x46, 0x84, 0x07, 0x4c, 0x72, 0xf5, 0x7c, 0x94, 0xaa, 0xeb, 0x3e, 44 0x21, 0xe8, 0x60, 0x2f, 0x65, 0x61, 0xa0, 0x36, 0x46, 0x8a, 0x54, 0x04, 45 0x81, 0xc9, 0xcf, 0x20, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 46 0x47, 0x3c, 0x79, 0x6e, 0xca, 0x05, 0xa3, 0xe6, 0xea, 0x4d, 0x34, 0x3a, 47 0x54, 0x71, 0xbf, 0x5b, 0x3e, 0x08, 0xc3, 0x1f, 0x1f, 0xb5, 0xbc, 0x72, 48 0xc0, 0x14, 0x00, 0x00, 0x09, 0x00, 0x17, 0x00, 0x00, 0xff, 0x01, 0x00, 49 0x01, 0x00, 0x0b, 0x00, 0x03, 0x08, 0x00, 0x03, 0x05, 0x00, 0x03, 0x02, 50 0x30, 0x82, 0x02, 0xfe, 0x30, 0x82, 0x01, 0xe6, 0xa0, 0x03, 0x02, 0x01, 51 0x02, 0x02, 0x10, 0x55, 0xf6, 0x58, 0xc8, 0x57, 0x53, 0x61, 0xb4, 0x4c, 52 0xe4, 0x1e, 0xbb, 0xb9, 0x6e, 0x4b, 0x0a, 0x30, 0x0d, 0x06, 0x09, 0x2a, 53 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 0x0b, 0x05, 0x00, 0x30, 0x3b, 54 0x31, 0x39, 0x30, 0x37, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x30, 0x00, 55 0x53, 0x00, 0x53, 0x00, 0x4c, 0x00, 0x5f, 0x00, 0x53, 0x00, 0x65, 0x00, 56 0x6c, 0x00, 0x66, 0x00, 0x5f, 0x00, 0x53, 0x00, 0x69, 0x00, 0x67, 0x00, 57 0x6e, 0x00, 0x65, 0x00, 0x64, 0x00, 0x5f, 0x00, 0x46, 0x00, 0x61, 0x00, 58 0x6c, 0x00, 0x6c, 0x00, 0x62, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6b, 0x30, 59 0x1e, 0x17, 0x0d, 0x31, 0x37, 0x30, 0x34, 0x30, 0x31, 0x31, 0x37, 0x33, 60 0x35, 0x31, 0x30, 0x5a, 0x17, 0x0d, 0x34, 0x37, 0x30, 0x34, 0x30, 0x31, 61 0x31, 0x37, 0x33, 0x35, 0x31, 0x30, 0x5a, 0x30, 0x3b, 0x31, 0x39, 0x30, 62 0x37, 0x06, 0x03, 0x55, 0x04, 0x03, 0x1e, 0x30, 0x00, 0x53, 0x00, 0x53, 63 0x00, 0x4c, 0x00, 0x5f, 0x00, 0x53, 0x00, 0x65, 0x00, 0x6c, 0x00, 0x66, 64 0x00, 0x5f, 0x00, 0x53, 0x00, 0x69, 0x00, 0x67, 0x00, 0x6e, 0x00, 0x65, 65 0x00, 0x64, 0x00, 0x5f, 0x00, 0x46, 0x00, 0x61, 0x00, 0x6c, 0x00, 0x6c, 66 0x00, 0x62, 0x00, 0x61, 0x00, 0x63, 0x00, 0x6b, 0x30, 0x82, 0x01, 0x22, 67 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01, 68 0x01, 0x05, 0x00, 0x03, 0x82, 0x01, 0x0f, 0x00, 0x30, 0x82, 0x01, 0x0a, 69 0x02, 0x82, 0x01, 0x01, 0x00, 0xda, 0x2b, 0xf1, 0xd1, 0xc1, 0xd2, 0x17, 70 0x23, 0xe1, 0xff, 0xa0, 0xdd, 0x91, 0x3d, 0xfb, 0x80, 0x8e, 0xec, 0x67, 71 0x45, 0x49, 0x03, 0x6b, 0xea, 0x4b, 0xbf, 0x4f, 0x5e, 0x77, 0xc1, 0x8e, 72 0x1e, 0xdc, 0xd8, 0x7f, 0x64, 0x03, 0xc3, 0x1d, 0xd3, 0x43, 0xe8, 0x6e, 73 0x7b, 0x1c, 0x9c, 0x08, 0x2d, 0x6b, 0x02, 0x7a, 0xc2, 0xed, 0x03, 0xb4, 74 0xab, 0x6e, 0x96, 0x18, 0xb3, 0x91, 0x48, 0xe0, 0xb4, 0xb6, 0x41, 0x00, 75 0xd6, 0x73, 0xc3, 0xa8, 0xe1, 0x98, 0xf0, 0x8b, 0xda, 0xfc, 0xf0, 0x50, 76 0x2b, 0xe5, 0x11, 0xb5, 0xef, 0xf3, 0xa5, 0xe3, 0x24, 0xc2, 0xeb, 0x1b, 77 0x3f, 0x96, 0x36, 0x3d, 0x18, 0x45, 0xfc, 0x22, 0x64, 0x77, 0x7d, 0x02, 78 0x1e, 0xe2, 0x98, 0xb7, 0xd1, 0x2f, 0x16, 0xe6, 0x0e, 0xa3, 0x45, 0x33, 79 0x7d, 0x43, 0x54, 0x3c, 0x2c, 0xa0, 0xfb, 0x78, 0x71, 0x9d, 0x8e, 0xde, 80 0x87, 0x59, 0x5a, 0x2c, 0xc8, 0xcc, 0x30, 0x4d, 0xb3, 0x87, 0xb0, 0xab, 81 0x72, 0xb1, 0x24, 0x37, 0x57, 0xc0, 0xd7, 0x20, 0x4a, 0x77, 0xa5, 0xe2, 82 0x93, 0xa6, 0x43, 0x98, 0x58, 0xeb, 0x51, 0x45, 0x19, 0x4e, 0x86, 0x9b, 83 0xa5, 0x7a, 0x2e, 0xc5, 0xe4, 0x91, 0xa2, 0x51, 0x20, 0xe3, 0x29, 0x82, 84 0xb7, 0x75, 0x7e, 0x4c, 0xa8, 0x6d, 0x64, 0x7a, 0x60, 0x4d, 0xb4, 0x8c, 85 0xed, 0x52, 0x37, 0xb6, 0x75, 0x07, 0x7f, 0x4e, 0xca, 0x2a, 0x58, 0x1d, 86 0xfa, 0xad, 0xc3, 0x99, 0x65, 0x04, 0x6f, 0x25, 0x43, 0x3c, 0xc2, 0x3e, 87 0x06, 0xc0, 0x7e, 0x87, 0xd6, 0x1e, 0x3a, 0x55, 0x1f, 0x70, 0xd3, 0x65, 88 0xe3, 0xfc, 0xfe, 0x0b, 0x42, 0xb8, 0x02, 0x71, 0x13, 0x86, 0x1f, 0xe0, 89 0xdd, 0x13, 0xb9, 0x60, 0xc7, 0xdb, 0x96, 0x45, 0xe0, 0x12, 0xe3, 0xcd, 90 0xf5, 0x41, 0x20, 0x68, 0x56, 0xd1, 0x9d, 0x95, 0x01, 0x02, 0x03, 0x01, 91 0x00, 0x01, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 92 0x01, 0x01, 0x0b, 0x05, 0x00, 0x03, 0x82, 0x01, 0x01, 0x00, 0x21, 0x2d, 93 0x3d, 0x77, 0x60, 0xed, 0x8d, 0x95, 0xb4, 0x73, 0xb6, 0x3e, 0xcb, 0x80, 94 0x40, 0x17, 0x1c, 0xd5, 0x5c, 0xf0, 0x7b, 0x92, 0x85, 0x17, 0xb3, 0x50, 95 0x79, 0x87, 0xe3, 0x36, 0xfc, 0x1d, 0xfd, 0x45, 0x5f, 0x59, 0x3f, 0xc2, 96 0xd2, 0x21, 0x6b, 0x32, 0xfd, 0xc9, 0xfc, 0x53, 0x22, 0x41, 0xed, 0x0a, 97 0xfb, 0xdb, 0xdb, 0x26, 0xef, 0xe9, 0x52, 0x53, 0xed, 0xff, 0x10, 0xf8, 98 0xd6, 0xaf, 0x43, 0x33, 0x5a, 0xf8, 0xe4, 0xd3, 0x70, 0x56, 0x00, 0x14, 99 0xca, 0xce, 0xe3, 0x9e, 0xf8, 0xe9, 0x60, 0xdd, 0xc1, 0x4b, 0x8e, 0x29, 100 0x14, 0x53, 0x96, 0xbd, 0x96, 0x15, 0x52, 0xf1, 0x2f, 0xb9, 0x02, 0xb1, 101 0x21, 0xe0, 0x0e, 0x61, 0xb7, 0xcd, 0x41, 0x6c, 0x68, 0x38, 0x79, 0xea, 102 0x4a, 0x16, 0x59, 0x5a, 0x1b, 0xaa, 0x8e, 0x32, 0x54, 0xae, 0xe3, 0x06, 103 0xa3, 0xe2, 0x58, 0x8b, 0xba, 0xda, 0xad, 0x6b, 0xf6, 0xdc, 0x94, 0x47, 104 0x64, 0x53, 0xf5, 0x94, 0x0a, 0x6e, 0x39, 0xc5, 0x61, 0xd2, 0xeb, 0xc5, 105 0xbe, 0x42, 0x77, 0x9a, 0xf1, 0x89, 0x25, 0x11, 0x5d, 0x23, 0x9c, 0xc2, 106 0x7e, 0xe0, 0x57, 0xee, 0xa6, 0x85, 0x86, 0x90, 0x1d, 0x95, 0x1b, 0x80, 107 0x05, 0xee, 0xc9, 0x9a, 0xed, 0xbc, 0x2d, 0x3d, 0x89, 0xf8, 0xde, 0x2b, 108 0x99, 0x0a, 0x87, 0xa8, 0x63, 0x8b, 0xe5, 0xbf, 0x57, 0xf1, 0xf4, 0x3c, 109 0xe6, 0xaa, 0xbf, 0xe8, 0x6a, 0xe3, 0xa7, 0x82, 0x79, 0x99, 0x8e, 0x76, 110 0xa3, 0x32, 0x66, 0xb0, 0xfd, 0x05, 0xca, 0xeb, 0x13, 0x56, 0x50, 0xb5, 111 0x33, 0x84, 0x93, 0xe0, 0x99, 0x53, 0x37, 0xa0, 0x30, 0x42, 0xc7, 0xf2, 112 0xe2, 0x61, 0xe6, 0xc6, 0xbd, 0xbf, 0xdd, 0xbd, 0x14, 0xd3, 0x21, 0x8e, 113 0x28, 0xb1, 0xc5, 0xfe, 0xf5, 0x9c, 0x3c, 0x2a, 0x6d, 0x26, 0xe8, 0x03, 114 0x4b, 0xf0, 0x0c, 0x00, 0x01, 0x47, 0x03, 0x00, 0x17, 0x41, 0x04, 0xc4, 115 0x12, 0x3b, 0x5a, 0x3d, 0x6e, 0x3a, 0xac, 0x10, 0xd5, 0xee, 0xff, 0x13, 116 0xad, 0x8d, 0xdf, 0x90, 0x34, 0x0d, 0x40, 0xe5, 0x54, 0x98, 0x39, 0x3b, 117 0xd5, 0xab, 0xe8, 0x47, 0x64, 0xb9, 0x47, 0xad, 0x85, 0x9e, 0x42, 0x8e, 118 0x77, 0xec, 0x25, 0x90, 0xed, 0x88, 0x87, 0x02, 0x80, 0x46, 0x3b, 0x18, 119 0x5f, 0xf1, 0xa0, 0xde, 0x1b, 0x4c, 0x9d, 0xb8, 0x7d, 0x3c, 0x5a, 0x55, 120 0x95, 0x14, 0xf9, 0x01, 0x00, 0x3c, 0x28, 0x0e, 0xbf, 0x03, 0x0f, 0x2e, 121 0x44, 0x41, 0x7c, 0x20, 0xa0, 0xd0, 0xf2, 0x42, 0xaf, 0x6b, 0x0b, 0x1d, 122 0x9f, 0xa4, 0x7b, 0xce, 0x4e, 0xfa, 0x19, 0x68, 0x08, 0x95, 0x8d, 0x34, 123 0x1d, 0x9a, 0x63, 0x05, 0x22, 0xa4, 0xb0, 0x2e, 0x59, 0xaa, 0x45, 0x22, 124 0x55, 0x68, 0x62, 0x6a, 0xab, 0xeb, 0x9a, 0xa6, 0x37, 0xb8, 0x41, 0x2a, 125 0x12, 0xd8, 0xa3, 0x87, 0x86, 0x06, 0x9d, 0xb5, 0x16, 0x13, 0xa9, 0x92, 126 0xb8, 0x0d, 0xc2, 0x06, 0x5b, 0xa0, 0xde, 0x4d, 0x64, 0x93, 0x97, 0xab, 127 0x23, 0x59, 0xd5, 0x2e, 0xb9, 0x31, 0xe0, 0xf7, 0x99, 0x71, 0x93, 0xc3, 128 0xce, 0xb8, 0xa1, 0x9f, 0xd7, 0x0a, 0xb0, 0x0e, 0x1d, 0xd8, 0xae, 0xea, 129 0xb7, 0x15, 0xfd, 0xde, 0x57, 0xb8, 0xc2, 0x92, 0x89, 0x15, 0xed, 0xf8, 130 0x30, 0x57, 0x7b, 0x74, 0x8b, 0xdf, 0xfb, 0x8f, 0xc8, 0xf5, 0x95, 0x82, 131 0x12, 0x77, 0x7a, 0x0f, 0xe3, 0x78, 0x47, 0x0b, 0x25, 0x87, 0xc8, 0xcd, 132 0xbf, 0x3d, 0xd1, 0x1f, 0x5b, 0xc4, 0x7f, 0x18, 0x67, 0x12, 0x38, 0x8d, 133 0x77, 0xb5, 0x60, 0xbb, 0xde, 0x78, 0x1c, 0x59, 0xc3, 0x00, 0x0b, 0x39, 134 0x15, 0x4a, 0x2e, 0xdf, 0x15, 0x6a, 0x97, 0x24, 0x63, 0x80, 0xc3, 0xa1, 135 0xae, 0x37, 0x66, 0x46, 0xc2, 0xc0, 0x73, 0xe5, 0xb8, 0x70, 0x7a, 0x83, 136 0x81, 0x06, 0xc5, 0x81, 0xd3, 0x1e, 0xe0, 0xcc, 0x84, 0x25, 0x6e, 0x9e, 137 0xb9, 0x54, 0x9b, 0x4e, 0x3b, 0x07, 0x1d, 0xd5, 0x6e, 0xd1, 0x59, 0xd8, 138 0xed, 0x9d, 0xce, 0x86, 0xe0, 0x08, 0xdb, 0xbb, 0xb7, 0x9c, 0x79, 0x7b, 139 0xb0, 0x9c, 0x26, 0x0a, 0x9a, 0x21, 0xce, 0x45, 0x6d, 0x74, 0x42, 0x3d, 140 0x34, 0x85, 0x5f, 0x6c, 0x1f, 0x3d, 0x1b, 0x4d, 0x2a, 0xaf, 0x02, 0x19, 141 0xe4, 0xc5, 0x76, 0x28, 0x8d, 0x2d, 0xe4, 0xf5, 0x77, 0x0e, 0x00, 0x00, 142 0x00, 143 }, 144 { 145 0x12, 0x01, 0x00, 0x8e, 0x00, 0x00, 0x00, 0x00, 0x16, 0x03, 0x01, 0x00, 146 0x46, 0x10, 0x00, 0x00, 0x42, 0x41, 0x04, 0x50, 0xf1, 0xf7, 0x5d, 0x67, 147 0x4b, 0xb1, 0x87, 0x38, 0x6c, 0x5d, 0x67, 0x17, 0xdf, 0x8f, 0x84, 0x26, 148 0xab, 0x23, 0x4d, 0x09, 0x9c, 0xe7, 0x7a, 0x00, 0xc3, 0x67, 0x9f, 0xfb, 149 0x37, 0x71, 0xe7, 0x73, 0xbf, 0x96, 0x6e, 0x12, 0x21, 0x56, 0x3f, 0xfc, 150 0xb2, 0xc2, 0xff, 0xb9, 0x59, 0x18, 0x52, 0x40, 0x3d, 0xf9, 0x04, 0x95, 151 0xdd, 0xbb, 0x1a, 0xe4, 0xd9, 0x3b, 0xe2, 0x93, 0xf6, 0xe9, 0xbb, 0x14, 152 0x03, 0x01, 0x00, 0x01, 0x01, 0x16, 0x03, 0x01, 0x00, 0x30, 0xd6, 0xbf, 153 0x92, 0x46, 0xed, 0x89, 0xd3, 0x01, 0x60, 0x47, 0xae, 0xad, 0xfb, 0x36, 154 0x29, 0xe9, 0xf3, 0x82, 0x81, 0xc0, 0x0c, 0x25, 0xb9, 0x6a, 0x82, 0xa4, 155 0x72, 0xbc, 0x64, 0xde, 0xa4, 0x0f, 0x42, 0x02, 0x52, 0x69, 0x44, 0x95, 156 0xa4, 0x9e, 0x83, 0xba, 0xcd, 0xf9, 0xd9, 0x28, 0xa1, 0x89, 157 }, 158 { 159 0x12, 0x01, 0x00, 0x43, 0x00, 0x00, 0x00, 0x00, 0x14, 0x03, 0x01, 0x00, 160 0x01, 0x01, 0x16, 0x03, 0x01, 0x00, 0x30, 0x41, 0x48, 0xea, 0x44, 0xcb, 161 0xed, 0x85, 0x85, 0xeb, 0x1e, 0xa8, 0x2e, 0xf5, 0xec, 0xf3, 0xfe, 0x2c, 162 0xb7, 0x3b, 0x2c, 0x1e, 0xed, 0xac, 0xd8, 0x66, 0x8e, 0x12, 0x01, 0x57, 163 0x00, 0xcc, 0x13, 0xe5, 0xa1, 0xb1, 0x9d, 0x7c, 0x7c, 0x56, 0x25, 0x7d, 164 0x39, 0x7e, 0x11, 0x09, 0x84, 0x9a, 0x33, 165 }, 166 { 167 0x17, 0x03, 0x01, 0x00, 0xd0, 0x7e, 0x3a, 0xf5, 0xc4, 0x5b, 0x67, 0x81, 168 0x8f, 0xee, 0xd0, 0x67, 0x72, 0x9a, 0x1b, 0xfa, 0xc5, 0x2a, 0x13, 0x6f, 169 0x3e, 0x61, 0xe5, 0x8c, 0x3d, 0xd4, 0x32, 0x81, 0x70, 0xc3, 0xc8, 0x3c, 170 0x68, 0x90, 0x71, 0x9c, 0xf1, 0xc9, 0x8f, 0x62, 0x6d, 0xb4, 0xb3, 0xff, 171 0x8a, 0x18, 0x99, 0x72, 0x3b, 0x10, 0x8e, 0x80, 0xaf, 0x5e, 0xe6, 0xe9, 172 0x67, 0x96, 0x4c, 0x2f, 0xfe, 0x69, 0xb0, 0x1c, 0xa8, 0xd9, 0x89, 0xb7, 173 0x78, 0x2c, 0x82, 0xb5, 0x4e, 0x39, 0x17, 0x1d, 0x4b, 0x28, 0xe8, 0x05, 174 0x09, 0x18, 0x8d, 0x1f, 0xaa, 0xf7, 0x7e, 0x25, 0xf6, 0x2e, 0xc2, 0x8c, 175 0x2e, 0x16, 0xd8, 0xfe, 0xe0, 0x78, 0x70, 0x17, 0x74, 0x6b, 0x9b, 0x29, 176 0x14, 0xae, 0xbd, 0x82, 0x7d, 0x13, 0x78, 0x90, 0x28, 0x31, 0xf5, 0x9c, 177 0x37, 0x66, 0xb4, 0x1b, 0x2f, 0x9a, 0x9f, 0xe7, 0xe0, 0x7c, 0x39, 0x79, 178 0x5b, 0x71, 0xa3, 0xa1, 0x21, 0xbd, 0xbb, 0x69, 0xd8, 0x59, 0x6c, 0x56, 179 0x5a, 0x5d, 0xea, 0x88, 0x30, 0xf3, 0x39, 0xe2, 0x8a, 0x44, 0x62, 0x7a, 180 0x43, 0xb3, 0x06, 0xc6, 0x88, 0x49, 0x80, 0x5c, 0x30, 0x0c, 0xe5, 0xc8, 181 0x44, 0xd6, 0x89, 0x08, 0x41, 0x8c, 0x2a, 0x1b, 0x73, 0x12, 0xe7, 0x97, 182 0xbb, 0x1a, 0x08, 0x6b, 0xbf, 0xd6, 0x6e, 0xde, 0x70, 0xc2, 0x60, 0x9f, 183 0x1c, 0x56, 0xda, 0xca, 0x59, 0x44, 0xfb, 0xb5, 0xc5, 0x92, 0xa4, 0x5e, 184 0x37, 0x5e, 0x55, 0x11, 0x7f, 0x74, 0x87, 0x5a, 0x83, 185 }, 186 { 187 0x04, 0x01, 0x01, 0x89, 0x00, 0x33, 0x01, 0x00, 0xe3, 0x1b, 0x00, 0x01, 188 0x06, 0x6d, 0x00, 0x61, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 189 0x00, 0x06, 0x6d, 0x00, 0x61, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 190 0x72, 0x00, 0xab, 0x6e, 0x00, 0x45, 0x16, 0x00, 0x00, 0x02, 0x00, 0x25, 191 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x65, 192 0x00, 0x64, 0x00, 0x20, 0x00, 0x64, 0x00, 0x61, 0x00, 0x74, 0x00, 0x61, 193 0x00, 0x62, 0x00, 0x61, 0x00, 0x73, 0x00, 0x65, 0x00, 0x20, 0x00, 0x63, 194 0x00, 0x6f, 0x00, 0x6e, 0x00, 0x74, 0x00, 0x65, 0x00, 0x78, 0x00, 0x74, 195 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 0x00, 0x20, 0x00, 0x27, 0x00, 0x6d, 196 0x00, 0x61, 0x00, 0x73, 0x00, 0x74, 0x00, 0x65, 0x00, 0x72, 0x00, 0x27, 197 0x00, 0x2e, 0x00, 0x0c, 0x39, 0x00, 0x31, 0x00, 0x66, 0x00, 0x63, 0x00, 198 0x30, 0x00, 0x35, 0x00, 0x62, 0x00, 0x30, 0x00, 0x33, 0x00, 0x66, 0x00, 199 0x63, 0x00, 0x31, 0x00, 0x00, 0x01, 0x00, 0xe3, 0x08, 0x00, 0x07, 0x05, 200 0x09, 0x04, 0xd0, 0x00, 0x34, 0x00, 0xe3, 0x17, 0x00, 0x02, 0x0a, 0x75, 201 0x00, 0x73, 0x00, 0x5f, 0x00, 0x65, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x6c, 202 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x00, 0xab, 0x72, 0x00, 0x47, 203 0x16, 0x00, 0x00, 0x01, 0x00, 0x27, 0x00, 0x43, 0x00, 0x68, 0x00, 0x61, 204 0x00, 0x6e, 0x00, 0x67, 0x00, 0x65, 0x00, 0x64, 0x00, 0x20, 0x00, 0x6c, 205 0x00, 0x61, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x75, 0x00, 0x61, 0x00, 0x67, 206 0x00, 0x65, 0x00, 0x20, 0x00, 0x73, 0x00, 0x65, 0x00, 0x74, 0x00, 0x74, 207 0x00, 0x69, 0x00, 0x6e, 0x00, 0x67, 0x00, 0x20, 0x00, 0x74, 0x00, 0x6f, 208 0x00, 0x20, 0x00, 0x75, 0x00, 0x73, 0x00, 0x5f, 0x00, 0x65, 0x00, 0x6e, 209 0x00, 0x67, 0x00, 0x6c, 0x00, 0x69, 0x00, 0x73, 0x00, 0x68, 0x00, 0x2e, 210 0x00, 0x0c, 0x39, 0x00, 0x31, 0x00, 0x66, 0x00, 0x63, 0x00, 0x30, 0x00, 211 0x35, 0x00, 0x62, 0x00, 0x30, 0x00, 0x33, 0x00, 0x66, 0x00, 0x63, 0x00, 212 0x31, 0x00, 0x00, 0x01, 0x00, 0xad, 0x36, 0x00, 0x01, 0x71, 0x00, 0x00, 213 0x01, 0x16, 0x4d, 0x00, 0x69, 0x00, 0x63, 0x00, 0x72, 0x00, 0x6f, 0x00, 214 0x73, 0x00, 0x6f, 0x00, 0x66, 0x00, 0x74, 0x00, 0x20, 0x00, 0x53, 0x00, 215 0x51, 0x00, 0x4c, 0x00, 0x20, 0x00, 0x53, 0x00, 0x65, 0x00, 0x72, 0x00, 216 0x76, 0x00, 0x65, 0x00, 0x72, 0x00, 0x00, 0x00, 0x00, 0x00, 0x0e, 0x00, 217 0x01, 0x95, 0xe3, 0x13, 0x00, 0x04, 0x04, 0x34, 0x00, 0x30, 0x00, 0x39, 218 0x00, 0x36, 0x00, 0x04, 0x34, 0x00, 0x30, 0x00, 0x39, 0x00, 0x36, 0x00, 219 0xfd, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 220 }, 221 { 222 0x01, 0x01, 0x00, 0x18, 0x00, 0x00, 0x01, 0x00, 0x53, 0x00, 0x45, 0x00, 223 0x4c, 0x00, 0x45, 0x00, 0x43, 0x00, 0x54, 0x00, 0x20, 0x00, 0x31, 0x00, 224 }, 225 { 226 0x04, 0x01, 0x00, 0x1f, 0x00, 0x33, 0x01, 0x00, 0x81, 0x01, 0x00, 0x00, 227 0x00, 0x20, 0x00, 0x38, 0x00, 0xd1, 0x01, 0x00, 0x00, 0x00, 0xfd, 0x10, 228 0x00, 0xc1, 0x00, 0x01, 0x00, 0x00, 0x00, 229 }, 230 } 231 232 var mssqlCount int 233 234 func mssqlDummyReader(c io.Reader) (buf []byte, err error) { 235 if mssqlCount < len(sampleMSSQL) { 236 buf = sampleMSSQL[mssqlCount] 237 mssqlCount++ 238 } else { 239 err = errors.New("EOF") 240 } 241 return 242 } 243 244 func TestMSSQL(t *testing.T) { 245 mssqlCount = 0 246 var m = dbms.MSSQL{} 247 port := m.DefaultPort() 248 if m.DefaultPort() != 1433 { 249 t.Error("Expected 1433, got ", port) 250 } 251 err := m.SetCertificate("", "") 252 if err == nil { 253 t.Error("Expected error") 254 } 255 m.SetReader(mssqlDummyReader) 256 var s mock.ConnMock 257 m.SetSockets(&s, &s) 258 err = m.Handler() 259 if err != nil && err.Error() != "EOF" { 260 t.Error("Got error", err) 261 } 262 m.Close() 263 } 264 265 func BenchmarkMSSQL(b *testing.B) { 266 b.ReportAllocs() 267 b.ResetTimer() 268 var s mock.ConnMock 269 var m = dbms.MSSQL{} 270 m.SetReader(mssqlDummyReader) 271 m.SetSockets(&s, &s) 272 for i := 0; i < b.N; i++ { 273 mssqlCount = 0 274 err := m.Handler() 275 if err != nil { 276 b.Fatal(err) 277 } 278 m.Close() 279 } 280 } 281 282 // func TestMSSQLGetUsernameDB(t *testing.T) { 283 // 284 // u, d := dbms.MSSQLGetUsernameDB([]byte{ 285 // 5, 162, 43, 0, 1, 0, 0, 0, 45, 0, 0, 0, 286 // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 287 // 0, 0, 0, 0, 119, 112, 0, 20, 220, 242, 53, 124, 75, 14, 62, 51, 288 // 39, 210, 196, 162, 213, 205, 209, 232, 229, 71, 70, 62, 109, 121, 115, 113, 289 // 108, 95, 110, 97, 116, 105, 118, 101, 95, 112, 97, 115, 115, 119, 111, 114, 290 // 100, 0, 291 // }) 292 // if string(u) != "wp" { 293 // t.Error("Expected 'wp' username got", string(u)) 294 // } 295 // if len(d) != 0 { 296 // t.Error("Expected empty db name got", string(d)) 297 // } 298 // 299 // u, d = dbms.MSSQLGetUsernameDB([]byte{ 300 // 13, 162, 43, 0, 1, 0, 0, 0, 45, 0, 0, 0, 301 // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 302 // 0, 0, 0, 0, 119, 112, 0, 20, 0, 205, 124, 7, 125, 243, 111, 168, 303 // 162, 10, 54, 115, 147, 159, 57, 126, 109, 123, 162, 138, 119, 112, 0, 109, 304 // 121, 115, 113, 108, 95, 110, 97, 116, 105, 118, 101, 95, 112, 97, 115, 115, 305 // 119, 111, 114, 100, 0, 306 // }) 307 // 308 // if string(u) != "wp" { 309 // t.Error("Expected 'wp' username got", string(u)) 310 // } 311 // if string(u) != "wp" { 312 // t.Error("Expected 'wp' db name", string(d)) 313 // } 314 // 315 // u, d = dbms.MSSQLGetUsernameDB([]byte{ 316 // 13, 162, 43, 0, 1, 0, 0, 0, 45, 0, 0, 0, 317 // 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 318 // 0, 0, 0, 0, 319 // }) 320 // 321 // if len(u) != 0 || len(d) != 0 { 322 // t.Error("Expected empty username & db name got", string(u), string(d)) 323 // } 324 // } 325 326 func TestMSSQLReadPacket(t *testing.T) { 327 const maxPayloadLen = 1<<24 - 1 328 var buf [maxPayloadLen]byte 329 reader := bytes.NewReader(buf[:]) 330 b, err := dbms.MSSQLReadPacket(reader) 331 if err != nil { 332 t.Error("Got error", err) 333 } 334 if bytes.Compare(b, buf[:]) != 0 { 335 t.Error("Unexpected output") 336 } 337 var eofReader bytes.Buffer 338 _, err = dbms.MSSQLReadPacket(&eofReader) 339 if err != nil { 340 t.Error("Got error", err) 341 } 342 } 343 344 func BenchmarkMSSQLReadPacket(b *testing.B) { 345 var buf [1024]byte 346 for i := 0; i < b.N; i++ { 347 s := bytes.NewReader(buf[:]) 348 dbms.MSSQLReadPacket(s) 349 } 350 }